本文へスキップ

XR8.AFrame

A-Frame (https://aframe.io) は、バーチャルリアリティ体験を構築するために設計されたウェブフレームワークである。 A-Frameプロジェクトに8th Wall Webを追加することで、ウェブ用の拡張現実 体験を簡単に構築できるようになりました。

Aフレームに8番目のウォールウェブを追加

クラウド・エディター

  1. head.htmlに "meta "タグを追加するだけで、プロジェクトに "8-Frame "ライブラリーを含めることができます。 もしあなたが8th WallのA-Frameベースのテンプレートやセルフホストプロジェクトからクローンしているのであれば、それはすでにそこにあるはずです。 また、AppKeyを手動で追加する必要もありません。

`

セルフ・ホスティング

8番目のウォールウェブは、簡単なステップでA-Frameプロジェクトに加えることができます:

  1. A-Frame("8-Frame "と呼ばれる)を少し修正したバージョンを含む:
`
  1. ページのHEADに以下のスクリプト・タグを追加する。 Xをアプリのキーに置き換えてください:
`

カメラの設定xrconfig`

カメラフィードを設定するには、xrconfigコンポーネントを a-scene に追加します:

`

xrconfig 属性(すべてオプション)

コンポーネントタイプデフォルト説明
カメラ方向文字列戻る使用したいカメラ backまたはfrontから選択する。 自撮りモードでは、cameraDirection: front;mirroredDisplay: true;を使用する。 ワールドトラッキングは cameraDirection: back;.`でのみサポートされていることに注意。
許可されたデバイス文字列モバイル・ヘッドセット対応デバイスクラス。 mobile-and-headsets'、'mobile'、'any'から選択してください。 any'を使用して、ウェブカメラが内蔵または接続されているラップトップまたはデスクトップタイプのデバイスを有効にします。 ワールドトラッキングは 'mobile-and-headsets' または mobile でのみサポートされていることに注意してください。
ミラーディスプレイブーリアンfalse`trueの場合、出力ジオメトリの左右を反転し、カメラの送り方向を逆にする。 自分撮りモードでは、'mirroredDisplay: true;''cameraDirection: front;'を使用します。 ワールドトラッキング(SLAM)が有効になっている場合は有効にしない。
disableXrTabletブーリアンfalse`没入型セッションでは、タブレットを表示しないようにする。
xrTabletStartsMinimizedブーリアンfalse`タブレットは最小化された状態で起動します。
disableDefaultEnvironmentブーリアンfalse`デフォルトの「ボイドスペース」背景を無効にする。
disableDesktopCameraControlsブーリアンfalse`WASDとマウスによるカメラ操作を無効にする。
disableDesktopTouchEmulationブーリアンfalse`デスクトップのフェイクタッチを無効にする。
ディスエイブルXrTouchEmulationブーリアンfalse`コントローラーのレイキャストに基づくタッチイベントをシーンに出さない。
disableCameraReparentingブーリアンfalse`カメラ→コントローラーのオブジェクト移動を無効にする
デフォルト環境フロアスケール番号1床の質感を縮めたり、大きくしたりする。
デフォルト環境床テクスチャ資産タイル張りの床の代替テクスチャアセットまたはURLを指定します。
デフォルト環境床色ヘックスカラー1A1C2A`。床の色を設定する。
デフォルト環境霧強度番号1フォグ濃度を増減する。
デフォルト環境天頂色ヘックスカラーBDC0D6`。ユーザーの真上にある空の色を設定する。
デフォルト環境空の底の色ヘックスカラー1A1C2A`。地平線に空の色を設定する。
defaultEnvironmentSkyGradientStrength(デフォルト環境スカイグラデーションの強さ番号1空のグラデーションがどの程度シャープに変化するかをコントロールする。

注釈

  • cameraDirection:xrwebを使用してワールドトラッキング(SLAM)を行う場合、backカメラのみ 。 frontカメラを使用する場合は、xrwebdisableWorldTracking: true` を設定してワールドトラッキングを無効にする必要があります。

ワールドトラッキング、イメージターゲット、ライトシップ VPS: xrweb

ワールドトラッキングイメージターゲットやライトシップVPSが必要な場合は、a-scenexrwebコンポーネントを追加してください:

`

xrweb 属性(すべてオプション)

コンポーネントタイプデフォルト説明
スケール文字列反応するresponsive'または'absolute'のどちらか。 'responsive' は [XR8.XrController.updateCameraProjectionMatrix()](../xrcontroller/updatecameraprojectionmatrix) で定義された原点にフレーム1のカメラが来るように値を返します。 absolute'はカメラ、イメージターゲットなどをメートル単位で返す。 デフォルトは'responsive'である。 absolute'を使用する場合、開始ポーズのx-position、z-position、rotationは、スケールが推定されると、[XR8.XrController.updateCameraProjectionMatrix()`](../xrcontroller/updatecameraprojectionmatrix)で設定されたパラメータを尊重します。 y-positionは接地面からのカメラの物理的な高さに依存する。
ディスエイブルワールドトラッキングブーリアンfalse`もしtrueなら、効率化のためにSLAMトラッキングをオフにする。
イネーブルVpsブーリアンfalse`もしそうなら、プロジェクト・ロケーションとメッシュを探す。 返されるメッシュはプロジェクト・ロケーションとは関係なく、プロジェクト・ロケーションが設定されていなくても返されます。 VPS を有効にすると、scaledisableWorldTracking の設定が上書きされる。
プロジェクトウェイスポット配列[]カンマで区切られたプロジェクトロケーション名の文字列。 未設定または空の文字列が渡された場合、近くにあるすべてのプロジェクト所在地をローカライズします。

注釈

  • xrwebxrface`は同時に使用することはできない。
  • xrwebxrlayersは同時に使用することができる。 その際には xrconfig` を使用しなければならない。
    • ベストプラクティスは常に xrconfig を使用することです。しかし、xrfacexrlayersxrconfig を使わずに xrweb を使用すると、自動的に xrconfig が追加されます。 このとき、xrwebで設定された 属性はすべて xrconfig に渡される。
  • cameraDirection:ワールドトラッキング(SLAM)はbackカメラでのみサポートされる。 frontカメラを使っている場合は、disableWorldTracking: true`を設定してワールドトラッキングを無効にする必要があります。
  • ワールドトラッキング(SLAM)はモバイルデバイスでのみサポートされています。

スカイエフェクトxrlayersxrlayerscene`

スカイ・エフェクトが欲しいなら:

  1. xrlayersコンポーネントをa-scene` に追加する。
  2. xrlayersceneコンポーネントをa-entityに追加し、そのa-entity`の下に空に表示したいコンテンツを追加する。
<a-scene xrconfig xrlayers>
<a-entity xrlayerscene="name: sky; edgeSmoothness:0.6; invertLayerMask: true;">
<!-- Add your Sky Effects content here. -->
</a-entity>
</a-scene>

xrlayers 属性

なし

注釈

  • xrlayersxrface`は同時に使用することはできない。
  • xrlayersxrwebは同時に使用することができる。 その際には xrconfig` を使用しなければならない。
    • しかし、xrfacexrwebxrconfig を使用せずに xrlayers を使用すると、自動的に xrconfig が追加されます。 このとき、xrweb で設定されたすべての属性は xrconfig に渡される。

xrlayerscene 属性

コンポーネントタイプデフォルト説明
名称文字列''レイヤー名。 XR8.LayersController](../layerscontroller/layerscontroller.md) のレイヤに対応する必要があります。 現在サポートされているレイヤーは sky` だけである。
レイヤーマスクの反転ブーリアンfalse`Trueに設定すると、シーンに配置したコンテンツが空以外の領域をオカールドします。 Falseの場合、シーンに配置したコンテンツが空の領域をオカドゥルします。
エッジの滑らかさ番号0レイヤーの端を滑らかにする量。 有効な値は0~1。

フェイスエフェクトxrface`

フェイス・エフェクトをトラッキングしたい場合は、a-scenexrfaceコンポーネントを追加してください:

`

xrface 属性

コンポーネントタイプデフォルト説明
メッシュジオメトリ配列['顔']`面メッシュのどの部分に三角形のインデックスを返すかを設定するカンマ区切りの文字列。 顔'、目'、虹彩'、口'の任意の組み合わせが可能である。
maxDetections [オプション]番号1検出する顔の最大数。 選択肢は1、2、3のいずれか。
uvType [オプション]文字列XR8.FaceController.UvType.STANDARD]`。フェーススキャンとフェースローディングのイベントで返されるuvを指定する。 オプションは[XR8.FaceController.UvType.STANDARD、XR8.FaceController.UvType.PROJECTED]`。
enableEars [オプション]ブーリアンfalse`trueの場合、Face Effectsと同時に耳検出を実行し、耳のアタッチメントポイントを返す。

注釈

  • xrfacexrweb`は同時に使用することはできない。
  • xrfacexrlayers`は同時に使用できない。
  • ベストプラクティスは常に xrconfig を使用することですが、xrconfig を使用せずに xrface を使用すると、自動的に xrconfig が追加されます。 このとき、xrfaceに設定されたすべての属性がxrconfigに渡される。

ハンドトラッキング: xrhand

ハンドトラッキングが必要な場合は、xrhandコンポーネントを a-scene に追加してください:

`

xrhand 属性

コンポーネントタイプデフォルト説明
enableWrists [オプション]ブーリアンfalse`trueの場合、ハンドトラッキングと同時に手首の検出を実行し、手首のアタッチメントポイントを返します。

なし

注釈

  • xrhandxrweb` は同時に使用することはできない。
  • xrhandxrlayers` は同時に使用することはできない。
  • xrhandxrface` は同時に使用することはできない。

機能

機能説明
xrconfigComponentAFRAME.registerComponent()`で登録できるカメラ設定用のA-Frameコンポーネントを作成します。 通常、直接呼び出す必要はない。
xrwebComponentAFRAME.registerComponent()`で登録できる、ワールドトラッキングやイメージターゲットトラッキング用のA-Frameコンポーネントを作成します。 通常、直接呼び出す必要はない。
xrlayersComponentAFRAME.registerComponent()`で登録できるレイヤートラッキング用のA-Frameコンポーネントを作成します。 通常、直接呼び出す必要はない。
xrfaceComponentAFRAME.registerComponent()`で登録できるFace Effectsトラッキング用のA-Frameコンポーネントを作成します。 通常、直接呼び出す必要はない。
xrlayersceneComponentAFRAME.registerComponent()`で登録できるレイヤーのシーンにA-Frameコンポーネントを作成します。 通常、直接呼び出す必要はない。

例 - SLAM有効(デフォルト)

<a-scene xrconfig xrweb>

例 - SLAM無効(画像トラッキングのみ)

<a-scene xrconfig xrweb="disableWorldTracking: true">

例 - VPS {#example---enable-vps}を有効にする

<a-scene xrconfig xrweb="enableVps: true; projectWayspots=location1,location2,location3">

例 - フロントカメラ(画像トラッキングのみ)

<a-scene xrconfig="cameraDirection: front" xrweb="disableWorldTracking: true">

例 - フロントカメラ スカイエフェクト

<a-scene xrconfig="cameraDirection: front" xrlayers>

例 - Sky + SLAM

<a-scene xrconfig xrweb xrlayers>
<a-entity xrlayerscene="name: sky; edgeSmoothness:0.6; invertLayerMask: true;">
<!-- Add your Sky Effects content here. -->
</a-entity>
</a-scene>

例 - フェイス・エフェクト

<a-scene xrconfig xrface>

例 - 耳付きフェイスエフェクト

<a-scene xrconfig xrface="enableEars:true">

例 - ハンドトラッキング

<a-scene xrconfig xrhand>