安全なコンテキスト用
この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。
XRInputSource
の targetRayMode
読み取り専用プロパティは、入力ソースのターゲット光線を生成する方法と、それをユーザーに提示する方法を示します。
構文
let rayMode = xrInputSource.targetRayMode;
値
XRTargetRayMode
列挙型から取得した DOMString
。 ターゲット光線を生成してユーザーに提示するときに使用する方法を示します。 可能な値は次のとおりです。
gaze
(視線)- ユーザーは、ユーザーが見ている方向を検出する視線追跡システム(または視線入力)を使用しています。 ターゲット光線は、ビューアーの目を起点として描画され、ビューアーが見ている方向に追従します。
screen
(画面)- ターゲット光線の方向は、タッチスクリーン、マウス、またはその他の触覚入力デバイスをタップして示します。
tracked-pointer
(追跡ポインター)- ターゲティングは、ユーザーがターゲットの方向に向けるハンドヘルドデバイスまたはハンドトラッキングシステムを使用して行われます。 ターゲット光線は、手(または手の中のオブジェクト)からターゲット方向に伸びます。 方向はプラットフォーム固有のルールを使用して決定されますが、そのようなルールが存在しない場合は、ユーザーが人差し指を手からまっすぐに向けていると仮定して方向が選択されます。
使用上の注意
入力ソースの targetRaySpace
は、ターゲット光線の位置と向きを示し、光線をレンダリングする場所を決定するために使用できます。
例
このコードの断片は、フレームごとに1回呼び出される関数の一部を示しています。 null
以外の targetRaySpace
を持つ入力を探します。 このプロパティの値を持つ入力は、ターゲット光線をユーザーから外側に投影する入力を表します。
このような入力ごとに、この例では、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);
}
}
/* ... */
}
}
詳細とより完全な例については、入力と入力ソースの記事を参照してください。
仕様
仕様 | 状態 | コメント |
---|---|---|
WebXR Device API XRInputSource.handedness の定義 |
草案 | 初期定義 |
ブラウザーの互換性
BCD tables only load in the browser
The compatibility table in this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.