From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/xrreferencespace/index.html | 120 +++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 files/ja/web/api/xrreferencespace/index.html (limited to 'files/ja/web/api/xrreferencespace/index.html') diff --git a/files/ja/web/api/xrreferencespace/index.html b/files/ja/web/api/xrreferencespace/index.html new file mode 100644 index 0000000000..12222a3ab7 --- /dev/null +++ b/files/ja/web/api/xrreferencespace/index.html @@ -0,0 +1,120 @@ +--- +title: XRReferenceSpace +slug: Web/API/XRReferenceSpace +tags: + - API + - AR + - Augmented Reality + - Distances + - Interface + - Mixed Reality + - Offsets + - Reference + - Spaces + - VR + - Virtual Reality + - WebXR + - WebXR API + - WebXR Device API + - XR + - XRReferenceSpace + - matrix + - transform +translation_of: Web/API/XRReferenceSpace +--- +

{{APIRef("WebXR Device API")}}{{secureContext_header}}

+ +

WebXR Device API の XRReferenceSpace インターフェイスは、指定された追跡の振る舞いを使用して、仮想世界内の特定の追跡対象のエンティティまたはオブジェクトの座標系を記述します。 追跡の振る舞いは、選択した参照空間タイプによって定義されます。 いくつかの異なる追跡の振る舞いのサポートを追加し、追跡対象オブジェクトと世界の別の場所との間のオフセット変換を記述する新しい参照空間を要求することにより、基本クラス {{domxref("XRSpace")}} を拡張します。

+ +

すべての参照空間(制限付き参照空間を除く)は、XRReferenceSpace タイプを使用して記述されます。 制限付き空間は、{{domxref("XRBoundedReferenceSpace")}} オブジェクトとして実装されます。 これは、ビューアーが移動するのに「安全」な境界を確立できる特別な空間です。 実世界のカメラで移動を追跡するシステムなど、ユーザーが物理的に動き回ることができる XR システムの場合、この境界は、物理的な障害によるものか、XR ハードウェアの制限によるものかにかかわらず、ユーザーが動き回ることができる領域の縁を確立します。 ユーザーが物理的および仮想的な障害物と衝突しないようにするための境界の使用の詳細については、制限付き参照空間を使用したビューアーの保護の記事を参照してください。

+ +

プロパティ

+ +

{{domxref("XRSpace")}} から継承されたプロパティ(現時点では、ない)に加えて、XRReferenceSpace は {{domxref("EventTarget")}} のプロパティも継承します。 XRReferenceSpace は、追加のプロパティを定義しません。

+ +

メソッド

+ +

親インターフェイスである {{domxref("XRSpace")}} から継承されたメソッド(現時点では、ない)に加えて、XRReferenceSpace は {{domxref("EventTarget")}} からメソッドを継承します。 XRReferenceSpace は、次のメソッドも提供します。

+ +
+
{{domxref("XRReferenceSpace.getOffsetReferenceSpace", "getOffsetReferenceSpace()")}} 
+
メソッドを呼び出したものと同じ型(つまり、XRReferenceSpace または {{domxref("XRBoundedReferenceSpace")}})の新しい参照空間オブジェクトを作成して返します。 新しい参照空間を使用して、メソッドが呼び出されたオブジェクトの参照空間から別の座標空間に座標を変換できます。 これは、レンダリング中にオブジェクトを配置したり、3D 空間でビューアーの位置や向きを変更するときに必要な変換を実行したりするのに役立ちます。
+
+ +

イベント

+ +

{{domxref("XRSpace")}} または {{domxref("EventTarget")}} オブジェクトに送信される可能性のある他のイベントに加えて、以下も XRReferenceSpace オブジェクトに適用されます。

+ +
+
{{domxref("XRReferenceSpace.reset_event", "reset")}}
+
+

reset イベントは、ユーザーの環境または場所を基準にして追跡対象オブジェクトの原点で不連続性が発生したことをブラウザーが検出すると、{{domxref("XRReferenceSpace")}} オブジェクトに送信されます。 これは、例えば、ユーザーが XR デバイスを再調整した後や、追跡を失って回復した後にデバイスが原点を自動的に調整した場合に発生する可能性があります。

+ +

{{domxref("EventTarget.addEventListener", "addEventListener()")}} の使用に加えて、{{domxref("XRReferenceSpace.onreset", "onreset")}} イベントハンドラープロパティを設定することにより、reset イベントハンドラーを確立できます。

+
+
+ +

参照空間タイプ

+ +

{{page("/ja/docs/Web/API/XRReferenceSpaceType", "Values")}}

+ +

使用上の注意

+ +

XRReferenceSpace の作成

+ +

XRReferenceSpace を取得する必要がある状況は2つあります。 1つ目は、シーンを設定し、{{domxref("XRSession")}} の期間中、世界に対するユーザーの視点を表す参照空間を取得する必要がある場合です。 これを行うには、{{domxref("XRSession")}} のメソッド {{domxref("XRSession.requestReferenceSpace", "requestReferenceSpace()")}} を呼び出して、取得する参照空間タイプを指定します。

+ +
xrSession.requestReferenceSpace("local").then((refSpace) => {
+  xrReferenceSpace = refSpace;
+  /* ... */
+});
+ +

新しい参照空間を取得する必要があるもう1つの状況は、原点を新しい位置に移動する必要がある場合です。 これは通常、例えば、あなたのプロジェクトで、ユーザーが XR デバイスを介して接続されていないキーボード、マウス、タッチパッド、ゲームコントローラーなどの入力デバイスを使用して環境内を移動できる場合に行われます。 原点は通常、空間内のユーザーの位置であるため、原点を変更して、ユーザーの移動と方向の変更を反映する必要があります。

+ +

ユーザーの世界のビューを移動または回転するには、その視点を表すために使用される XRReferenceSpace を変更する必要があります。 ただし、XRReferenceSpace は不変であるため、代わりに、変更された視点を表す新しい参照空間を作成する必要があります。 これは、{{domxref("XRReferenceSpace.getOffsetReferenceSpace", "getOffsetReferenceSpace()")}} メソッドを使用して簡単に実行できます。

+ +
let offsetTransform = new XRRigidTransform({x: 2, y: 0, z: 1},
+                                           {x: 0, y: 1, z: 0, w: 1});
+xrReferenceSpace = xrReferenceSpace.getOffsetReferenceSpace(offsetTransform);
+ +

これにより、XRReferenceSpace を新しいものに置き換えます。 その原点と向きは、新しい原点を現在の原点に対して (2, 0, 1) に配置するように調整し、前の世界の向きに対してビューアーを真上に向けるように空間を向ける単位{{Glossary("quaternion","クォータニオン")}}を指定して回転します。

+ +

ジオメトリー

+ +

XRReferenceSpace のネイティブ原点は、+X が右側、+Y が上向き、+Z が「後方」またはユーザーに向かっていると見なされるように常に構成されています。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('WebXR','#xrreferencespace-interface','XRReferenceSpace')}}{{Spec2('WebXR')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.XRReferenceSpace")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf