From 4543f7c8d94578285f14b27ca96165ffae9c7de9 Mon Sep 17 00:00:00 2001 From: Masahiro FUJIMOTO Date: Sat, 14 Aug 2021 03:42:07 +0900 Subject: conflicting/Web/API/XRInputSource 以下のファイルを元の場所に移動 (#1856) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 英語版で元の位置に戻されていたので、日本語版でも元の位置に戻した。 - https://github.com/mdn/translated-content/issues/1831 の一環 --- files/ja/web/api/xrhandedness/index.html | 85 +++++++++++++++++++++++ files/ja/web/api/xrtargetraymode/index.html | 102 ++++++++++++++++++++++++++++ 2 files changed, 187 insertions(+) create mode 100644 files/ja/web/api/xrhandedness/index.html create mode 100644 files/ja/web/api/xrtargetraymode/index.html (limited to 'files/ja/web/api') diff --git a/files/ja/web/api/xrhandedness/index.html b/files/ja/web/api/xrhandedness/index.html new file mode 100644 index 0000000000..c66cb6f7c6 --- /dev/null +++ b/files/ja/web/api/xrhandedness/index.html @@ -0,0 +1,85 @@ +--- +title: XRHandedness +slug: Web/API/XRHandedness +tags: + - API + - AR + - Enum + - Enumerated Type + - Handedness + - Reference + - Type + - VR + - WebXR + - WebXR Device API + - XRHandedness + - hand + - left + - right +translation_of: Web/API/XRHandedness +--- +

{{APIRef("WebXR")}}

+ +

WebXR の XRHandedness 列挙型は、使用している XR 入力デバイスに接続された特定の入力コントローラーを操作するために使用しているユーザーの手を識別する値を提供します。 XRHandedness は、{{domxref("XRInputSource")}} の {{domxref("XRInputSource.handedness", "handedness")}} プロパティの値として使用されます。

+ +

+ +
+
none
+
入力コントローラーは、ユーザーのいずれの手にも関連付けられていません。
+
left
+
入力コントローラーは、ユーザーの左手に握られているか、着用されているか、取り付けられています。
+
right
+
入力コントローラーは、ユーザーの右手に握られているか、着用されているか、取り付けられています。
+
+ +

+ +

handedness の重要な使用方法の1つは、コントローラーがどちらの手にあるかを判別して、仮想空間でその手(またはその手が制御しているデバイス)の表現を描画できるようにすることです。

+ +
function updateInputSources(session, frame, refSpace) {
+  for (let source of session.inputSources) {
+    if (source.gripSpace) {
+      let gripPose = frame.getPose(source.gripSpace, refSpace);
+
+      if (gripPose) {
+        myRenderHandObject(gripPose, inputSource.handedness);
+      }
+    }
+  }
+}
+
+ +

この関数は、すべてのアニメーションフレーム(または必要な滑らかさの程度とパフォーマンスの制約に応じて定期的に)で呼ばれ、入力ソースのリストをスキャンして、null ではない {{domxref("XRInputSource.gripSpace", "gripSpace")}} を持つものを探します。 gripSpace が存在する場合、それは入力ソースが何らかのハンドヘルドデバイスであることを意味するため、可能であれば視覚的にレンダリングする必要があります。

+ +

gripSpacenull 以外の場合、この関数は、現在の参照空間に変換された gripSpace のポーズを取得します。 それが有効であると仮定すると、myRenderHandObject() と呼ばれる関数が、グリップのポーズと handedness の値を使用して呼び出されます。 これらの値が手元にあれば(しゃれは意図していません)、myRenderHandObject() は、正しい手のために配置および形成された適切なモデルを描画できます。

+ +

仕様

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

ブラウザーの互換性

+ +

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

+ +

関連情報

+ + diff --git a/files/ja/web/api/xrtargetraymode/index.html b/files/ja/web/api/xrtargetraymode/index.html new file mode 100644 index 0000000000..7c9848eca4 --- /dev/null +++ b/files/ja/web/api/xrtargetraymode/index.html @@ -0,0 +1,102 @@ +--- +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 APIXRTargetRayMode 列挙型は、入力コントローラーのターゲティング光線を生成する方法を記述します。 ターゲティングは、視線追跡システムを使用してターゲットを見るか、ハンドコントローラー、グローブ、またはモーショントラッキングシステムを使用してターゲットを指すか、画面上で指やマウスを使用してターゲットをタップまたはクリックすることによって行うことができます。

+ +

通常、ターゲット光線は、ターゲティングシステムのソースから、ユーザーが見ている方向または指している方向にターゲット光線に沿って描画されます。 光線の終点を示す方法と同様に、光線のスタイルは一般的にあなた次第です。 ターゲットとなる点またはオブジェクトは、図形を描画するか、ターゲットとなる表面またはオブジェクトを強調表示することによって示される場合があります。

+ +
+
+
ハンドコントローラーから放出されるターゲット光線。
+ハンドコントローラーから放出されるターゲット光線を示すスクリーンショット
+
+ +

ターゲット光線は、単純な線(理想的には距離とともにフェードする)から、上のスクリーンショットに示されているサイエンスフィクションの「フェイザー」スタイルなどのアニメーション効果まで、何でもかまいません。

+ +

+ +
+
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")}}

+ +

関連情報

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