--- title: XRTargetRayMode slug: Web/API/XRTargetRayMode tags: - 3D - API - AR - Enum - Enumerated Type - Input - Reality - Reference - Type - VR - Virtual - WebXR - WebXR API - WebXR Device API - XR - XRTargetRayMode - augmented - source - target translation_of: Web/API/XRTargetRayMode ---
{{APIRef("WebXR")}}
WebXR Device API の XRTargetRayMode
列挙型は、入力コントローラーのターゲティング光線を生成する方法を記述します。 ターゲティングは、視線追跡システムを使用してターゲットを見るか、ハンドコントローラー、グローブ、またはモーショントラッキングシステムを使用してターゲットを指すか、画面上で指やマウスを使用してターゲットをタップまたはクリックすることによって行うことができます。
通常、ターゲット光線は、ターゲティングシステムのソースから、ユーザーが見ている方向または指している方向にターゲット光線に沿って描画されます。 光線の終点を示す方法と同様に、光線のスタイルは一般的にあなた次第です。 ターゲットとなる点またはオブジェクトは、図形を描画するか、ターゲットとなる表面またはオブジェクトを強調表示することによって示される場合があります。
ターゲット光線は、単純な線(理想的には距離とともにフェードする)から、上のスクリーンショットに示されているサイエンスフィクションの「フェイザー」スタイルなどのアニメーション効果まで、何でもかまいません。
gaze
(視線)screen
(画面)tracked-pointer
(追跡ポインター)このコードの断片は、フレームごとに1回呼び出される関数の一部を示しています。 null
以外の {{domxref("XRInputSource.targetRaySpace", "targetRaySpace")}} を持つ入力を探します。 このプロパティの値を持つ入力は、ターゲット光線をユーザーから外側に投影する入力を表します。
このような入力ごとに、この例では、{{domxref("XRInputSource.targetRayMode", "targetRayMode")}} が tracked-pointer
である入力を探します。 これは、入力が実際には、視線入力デバイス、画面タップ、またはマウスクリックではなく、ターゲティングデバイスを表すことを目的としていることを示しています。 追跡ポインターの場合、関数 myRenderTargetRayAsBeam()
が呼び出され、入力コントローラーの仮想位置から、それが指している方向に外側にビームをレンダリングします。
コードは、仮想空間でのユーザーの手の位置を表すコントローラーや任意のオブジェクトの描画、その他の入力関連のタスクなどを引き続き実行する必要があります。
function updateInputSources(session, frame, refSpace) { for (let source of session.getInputSources()) { let targetRayPose = frame.getPose(inputSource.targetRaySpace, refSpace); if (targetRayPose) { if (source.targetRayMode == "tracked-pointer") { myRenderTargetRayAsBeam(targetRayPose); } } /* ... */ } }
詳細とより完全な例については、入力と入力ソースの記事を参照してください。
仕様 | 状態 | コメント |
---|---|---|
{{SpecName('WebXR','#enumdef-xrtargetraymode','XRTargetRayMode')}} | {{Spec2('WebXR')}} | 初期定義 |
{{Compat("api.XRTargetRayMode")}}