このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docs コミュニティーについてもっと知り、仲間になるにはこちらから。

View in English Always switch to English

XRRigidTransform()

利用可能性は限定的

この機能はベースラインではありません。最も広く使用されているブラウザーの一部で動作しません。

Want more browser support for this feature? Tell us why.

XRRigidTransform() コンストラクターは、点またはオブジェクトの位置と向きを表す新しい XRRigidTransform オブジェクトを作成して返します。 特に、XRRigidTransform は、空間を横断する座標系間で平行移動するための変換を提供するときに使用されます。

構文

let xrRigidTransform = new XRRigidTransform(position, orientation);

パラメーター

position 省略可

点またはオブジェクトが配置される座標を指定する DOMPointInit に準拠するオブジェクト。 これらの寸法はメートルで指定します。 このパラメーターが省略されているか、DOMPointInit と互換性がない場合、使用される位置は {x: 0, y: 0, z: 0, w: 1} であると見なされます。 w常に 1 でなければなりません。

orientation 省略可

オブジェクトが向いている方向を指定する DOMPointInit に準拠するオブジェクト。 向きのデフォルト値は {x: 0, y: 0, z: 0, w: 1} です。 指定された向きは、まだ正規化されていない場合は正規化されます。

戻り値

オブジェクトの位置と向きを原点から指定された position に調整し、orientation によって示される方向を向く変換行列を表すように初期化された新しい XRRigidTransform オブジェクト。

例外

TypeError

指定された positionw 座標の値が 1.0 ではありません。

この例では、シーンのアニメーションの開始が示されています。 特定のタイプの参照空間の要求から始まり、最初のアニメーションフレームを要求する前に、変換に基づいて座標系をシフトします。

js
let animationFrameRequestID = 0;

xrSession.requestReferenceSpace("local-floor").then((refSpace) => {
  xrReferenceSpace = refSpace.getOffsetReferenceSpace(
    new XRRigidTransform(viewerPosition, viewerOrientation),
  );
  animationFrameRequestID = xrSession.requestAnimationFrame(drawFrame);
});

local-floor タイプの参照空間を要求した後、返された promise は最終的に解決され、その時点で新しい参照空間オブジェクト refSpace を受け取ります。 ビューアーの初期位置と向きから XRRigidTransform を作成した後、新しい変換を getOffsetReferenceSpace() に渡しての参照空間を作成します。 オフセットして、その原点が viewerPosition によって指定された座標と同じ空間内の場所に配置されるようにします。 向きも同様に修正されます。

次に、requestAnimationFrame() が呼び出され、描画する新しいアニメーションフレームを要求します。 drawFrame() コールバックは、システムが次のフレームを描画する準備ができたときに実行されます。

移動、向き、モーションには、さらに多くの例があります。

仕様書

仕様書
WebXR Device API
# dom-xrrigidtransform-xrrigidtransform

ブラウザーの互換性