XRRigidTransform()

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

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() コールバックは、システムが次のフレームを描画する準備ができたときに実行されます。

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

仕様

Specification
WebXR Device API
# dom-xrrigidtransform-xrrigidtransform

ブラウザーの互換性

BCD tables only load in the browser