webxr システムは、シーンの WebXR デバイスセットアップ、特に リクエストセッション呼び出し (opens new window)のオプショ ンを設定します。

これらのオプションを変更する場合、ブラウザのコンソールで、適切にリクエストせずに機能を使用しようとした場合などの診断メッセージに注意してください。

#

<a-scene webxr="requiredFeatures: hit-test,local-floor;
                optionalFeatures: dom-overlay,unbounded;
                overlayElement: #overlay;"></a-scene>

# プロパティ

Property 概要 デフォルト値
referenceSpaceType カメラとコントローラのためのシーンの参照空間タイプ local-floor
requiredFeatures 必須の WebXR セッション機能。 local-floor
optionalFeatures オプションの WebXR セッションの機能。 bounded-floor
overlayElement AR モードで WebXR DOM オーバーレイとして使用するための要素セレクタです。 null

注: シーンが初期化されると、これらのプロパティを変更することはできません。

# referenceSpaceType

シーンにデフォルトで使用される参照空間の名前で、参照空間名 (opens new window).のエントリの1つでなければなりません。

名前 概要
viewer カメラに固定され、カメラと共に移動/回転する。
local セッション開始時のユーザの頭の位置に近い任意の点。
local-floor 原点は、セッション開始時のユーザーの足元に近い任意の点です。
bounded-floor local-floorと同じですが、安全境界を設定したルームスケールトラッキングをサポートします。
unbounded localと同じですが、~5m/15feetを超える大規模な移動に対応します。

デフォルトの 'local-floor' はすべてのシステムでうまく機能するはずですが、3DoF VR システムやハンドヘルド AR では床の位置が大まかな推定値になる可能性があることに注意してください。正確な床位置が必要なARアプリケーションでは、タイプ local とワールドヒットテストまたは平面検出を使用することをお勧めします。

requiredFeaturesに参照空間名が含まれていることを確認します。(viewerlocal は自動的に使用できますが、その他は機能として要求する必要があります)。

アプリケーションは、内部的に追加の参照空間を自由に使用できますが、ビューア(カメラ)とコントローラの一貫性を保つことが重要です。

コンポーネントで使用する場合の一貫性のために、この名前は、sceneEl.systems.webxr.sessionReferenceSpaceTypeとして利用でき、対応する参照空間オブジェクトは、sceneEl.systems['tracker-controls-webxr'].referenceSpaceとしてXRセッション中に利用できます。

# requiredFeatures

アプリケーションが正常に動作するために必要な WebXR 機能名の配列 (カンマ区切りリスト)。いずれかの機能がシステムでサポートされていない場合、またはユーザーがその機能の使用に同意していない場合、セッションのリクエストは失敗します。

現在、利用可能な機能リストには、[参照空間名(https://immersive-web.github.io/webxr/#xrreferencespace)と、ARモード用の以下の追加機能が含まれています。

機能 概要
hit-test https://immersive-web.github.io/hit-test/
dom-overlay https://immersive-web.github.io/dom-overlays/

# オプション機能

アプリケーションが使用できる WebXR 機能名の配列 (カンマ区切りリスト)。これらの機能が使用できない場合、あるいはユーザーが使用を拒否した場合は、これらの機能を使用せずにセッションが作成されます。

利用可能な WebXR 機能名の詳細については 要求される機能 を参照してください。

# オーバーレイ要素

AR セッションで WebXR DOM オーバーレイとして使用する DOM 要素のセレクタです。現在、Android バージョン 82 以降の Chrome を使用したハンドヘルド AR でのみサポートされています。

これを使用するには、dom-overlay 機能をオプションまたは必須としてリクエストする必要があります。

この機能が利用できる場合、sceneEl.xrSession.domOverlayModeには、使用中のDOM Overlayの種類を示す文字列値が格納されます。これは現在、ハンドヘルド AR 用のスクリーンですが、フローティングやヘッドセットでのヘッドロックも可能です。また、Overlay 要素がアクティブな間は :xr-overlay 擬似クラスを持つので、CSS ルールでこれを使用して UI を表示/非表示にすることができます。