From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../ja/web/api/xrinputsource/gripspace/index.html | 97 ++++++++++++++++++ .../ja/web/api/xrinputsource/handedness/index.html | 77 +++++++++++++++ files/ja/web/api/xrinputsource/index.html | 109 +++++++++++++++++++++ files/ja/web/api/xrinputsource/profiles/index.html | 85 ++++++++++++++++ 4 files changed, 368 insertions(+) create mode 100644 files/ja/web/api/xrinputsource/gripspace/index.html create mode 100644 files/ja/web/api/xrinputsource/handedness/index.html create mode 100644 files/ja/web/api/xrinputsource/index.html create mode 100644 files/ja/web/api/xrinputsource/profiles/index.html (limited to 'files/ja/web/api/xrinputsource') diff --git a/files/ja/web/api/xrinputsource/gripspace/index.html b/files/ja/web/api/xrinputsource/gripspace/index.html new file mode 100644 index 0000000000..45e0b9a0c9 --- /dev/null +++ b/files/ja/web/api/xrinputsource/gripspace/index.html @@ -0,0 +1,97 @@ +--- +title: XRInputSource.gripSpace +slug: Web/API/XRInputSource/gripSpace +tags: + - API + - AR + - Augmented Reality + - Experimental + - Property + - Reference + - VR + - Virtual Reality + - WebXR + - WebXR Device API + - XRInputSession + - gripSpace +translation_of: Web/API/XRInputSource/gripSpace +--- +
{{securecontext_header}}{{APIRef("WebXR")}}
+ +

{{domxref("XRInputSource")}} の gripSpace 読み取り専用プロパティは、ネイティブの原点がユーザーの手(またはその一部)に保持しているように見える仮想オブジェクトのレンダリングに使用するポーズを追跡する {{domxref("XRSpace")}} を返します。 例えば、ユーザーが仮想の真っ直ぐな棒を持っている場合、この XRSpace のネイティブの原点は、ユーザーの拳のおおよその重心にあります。

+ +

構文

+ +
var xrSpace = xrInputSource.gripSpace;
+ +

+ +

仮想空間での入力デバイスの位置と向きを表す {{domxref("XRSpace")}} オブジェクト。 デバイスの画像をシーンにレンダリングするのに適しています。 入力ソースが本質的に追跡できない場合、gripSpacenull です。 例えば、{{domxref("XRInputSource.targetRayMode", "targetRayMode")}} が tracked-pointer である入力のみが gripSpace を提供します。

+ +

コントローラーがまっすぐな棒のような形をしていて、ユーザーの拳で握られていると想像してみてください。 グリップ空間の本来の原点は、ユーザーの拳の重心にあり、ユーザーの手の位置を追跡します。

+ +
+
+
+
左手のグリップ空間の座標系。
+ +
グリップ空間が、世界に対するプレーヤーの手のローカル座標系をどのように示しているかを示す図。
+
+
+ +
+
+
右手のグリップ空間の座標系。
+ +
グリップ空間が、世界に対するプレーヤーの手のローカル座標系をどのように示しているかを示す図。
+
+
+
+ +

上の図に示すように、座標系は次のように方向付けられています。

+ + + +

+ +

この例では、フレームレンダリングコールバックから取得した gripSpace を使用して、仮想環境でのコントローラーの位置と向きを表すメッシュをレンダリングします。

+ +
for (let source in xrSession.inputSources) {
+  if (source.gripSpace) {
+    let gripPose = frame.getPose(source.gripSpace, xrRefSpace);
+
+    if (gripPose) {
+      myDrawMeshUsingTransform(controllerMesh, gripPose.transform.matrix);
+    }
+  }
+}
+
+ +

このループは、gripSpace の値を持つ各入力ソースについて、gripSpace によって記述される位置と向きを表す {{domxref("XRPose")}} を取得します。 有効なポーズが返された場合、メソッド myDrawMeshUsingTransform() を呼び出して、グリップポーズの変換行列を使用して変換されたコントローラーのメッシュを描画します。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('WebXR','#dom-xrinputsource-gripspace','XRInputSource.gripSpace')}}{{Spec2('WebXR')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.XRInputSource.gripSpace")}}

diff --git a/files/ja/web/api/xrinputsource/handedness/index.html b/files/ja/web/api/xrinputsource/handedness/index.html new file mode 100644 index 0000000000..1095db5452 --- /dev/null +++ b/files/ja/web/api/xrinputsource/handedness/index.html @@ -0,0 +1,77 @@ +--- +title: XRInputSource.handedness +slug: Web/API/XRInputSource/handedness +tags: + - API + - AR + - Controller + - Handedness + - Input + - Property + - Read-only + - Reference + - VR + - WebXR + - WebXR API + - WebXR Device API + - XR + - XRInputSource + - hand + - left + - right +translation_of: Web/API/XRInputSource/handedness +--- +

{{APIRef("WebXR")}}{{securecontext_header}}

+ +

{{domxref("XRInputSource")}} の handedness 読み取り専用プロパティは、WebXR 入力ソースがユーザーのどの手に関連付けられているか、またはまったく関連付けられていないかを示します。

+ +

構文

+ +
let hand = xrInputSource.handedness;
+ +

+ +

入力コントローラーがユーザーの片方の手にあるかどうか、もしそうならどちらの手にあるかを示す {{domxref("DOMString")}}。 {{domxref("XRHandedness")}} 列挙型に由来する値は、次のいずれかです。

+ +

{{page("/ja/docs/Web/API/XRHandedness", "Values")}}

+ +

使用上の注意

+ +

入力ソースがユーザーの手に関連付けられたデバイスでない場合(握られているか、取り付けられているか、着用されているかに関係なく)、handedness の値は none です。 これは、例えば、ヘッドセットに組み込まれたコントロールや、頭や体に取り付けられた入力デバイスなど、ハンドヘルドではない入力ソースを示している場合があります。

+ +

+ +

{{page("/ja/docs/Web/API/XRHandedness", "Examples")}}

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('WebXR','#dom-xrinputsource-handedness','XRInputSource.handedness')}}{{Spec2('WebXR')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.XRInputSource.handedness")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/xrinputsource/index.html b/files/ja/web/api/xrinputsource/index.html new file mode 100644 index 0000000000..3e963169d6 --- /dev/null +++ b/files/ja/web/api/xrinputsource/index.html @@ -0,0 +1,109 @@ +--- +title: XRInputSource +slug: Web/API/XRInputSource +tags: + - API + - AR + - Augmented Reality + - Experimental + - Input + - Interface + - Reference + - VR + - Virtual Reality + - WebXR + - WebXR Device API + - XRInputSource + - control +translation_of: Web/API/XRInputSource +--- +
{{securecontext_header}}{{APIRef("WebXR Device API")}}
+ +

WebXR Device APIXRInputSource インターフェースは、ユーザーの WebXR 互換の仮想現実または拡張現実のシステムの一部であるコントロール入力の単一ソースを記述します。 デバイスは使用されているプラットフォームに固有ですが、それが向けられている方向を提供し、ユーザーがデバイスを使用してアクションを実行することをトリガーにした場合、オプションでイベントを生成することができます。

+ +

プロパティ

+ +
+
{{domxref("XRInputSource.gamepad", "gamepad")}} {{ReadOnlyInline}}{{experimental_inline}}
+
+

XR 入力ソースのボタンと軸の状態を説明する {{domxref("Gamepad")}} オブジェクト(ゲームパッドまたは同等のデバイスの場合)。 デバイスがゲームパッドのようなデバイスでない場合、このプロパティの値は NULL です。

+ +
: XRInputSourceGamepad API の {{domxref("Gamepad")}} インターフェイスを使用しますが、この入力デバイスは WebXR ハードウェアに厳密に関連付けられており、汎用のゲームデバイスではありません。
+
+
{{domxref('XRInputSource.gripSpace', 'gripSpace')}}{{readonlyInline}}
+
handedness で示された手に持っているように見えるオブジェクトをレンダリングするために使用するポーズを原点が追跡する {{domxref("XRSpace")}}。この空間の向きは、手がオブジェクトをつかんでいる角度を示します。 この空間の使用方法の詳細については、{{domxref("XRInputSource.gripSpace", "gripSpace")}} のメイン記事をお読みください。
+
{{domxref('XRInputSource.handedness', 'handedness')}}{{readonlyInline}}
+
この XRInputSource によって表されるデバイスを使用している手がある場合はそれを示す {{domxref("DOMString")}}。 値は、leftright、または none になります。
+
{{domxref('XRInputSource.profiles', 'profiles')}}{{readonlyInline}}
+
DOMString オブジェクトの配列。 それぞれが、この入力ソースの望ましい視覚的表現と振る舞いを説明する入力プロファイルの名前を指定します。
+
{{domxref('XRInputSource.targetRayMode', 'targetRayMode')}}{{readonlyInline}}
+
+

ターゲット光線を生成するために使用する方法を gazetracked-pointer、または screen で示す DOMString

+
+
{{domxref('XRInputSource.targetRaySpace', 'targetRaySpace')}}{{readonlyInline}}
+
ターゲット光線の原点とそれが伸びる方向を定義する {{domxref("XRSpace")}} オブジェクト。 この空間は、targetRayMode で定義された方法を使用して確立されます。
+
+ +


+ メソッド

+ +

XRInputSource インターフェイスはメソッドを定義しません。

+ +

使用上の注意

+ +

アクションとターゲット光線

+ +

デバイスがそれが向けられている方向を示す場合、これはターゲット光線(target ray)を使用して行われます。 これは、デバイスの位置から、デバイスが向けられている方向に外側に伸びる光線です。

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

デバイスにトリガーまたは他のスクイーズ可能な入力(ユーザーが拳を握ったことを認識するハンドジェスチャーデバイスなど)が含まれている場合、そのアクションはプライマリースクイーズアクション(primary squeeze action)と呼ばれます。 プライマリースクイーズアクションは、オブジェクトをつかんだり、ツールや武器のトリガーを押したりするなど、実際のグリップアクションに対応している必要があります。 ユーザーがトリガーを押したりグリップを締め付けたりするなどしてスクイーズアクションが開始されると、{{domxref("XRSession.squeezestart_event", "squeezestart")}} イベントが XRSession に送信されます。 アクションが完了し、ユーザーがトリガーまたはグリップを放すと、{{domxref("XRSession.squeeze_event", "squeeze")}} イベントが送信されます。 この後に {{domxref("XRSession.squeezeend_event", "squeezeend")}} が続き、アクションが完了ではなく中止された場合にも送信されます。

+ +

デバイスにボタンまたはその他の押すことができる入力コントロールがある場合、それはプライマリ入力ソース(primary input source)であり、このボタンはプライマリーアクション(primary action)です。 プライマリーアクションは、ユーザーがボタンを押すか、タッチパッドまたはサムスティックのトップボタンをクリックするか、ボタンのようなアクションを呼び出す手のジェスチャーまたは音声コマンドを使用するときに発生する可能性があります。 プライマリーアクションが開始されると、{{domxref("XRSession.selectstart_event", "selectstart")}} イベントが {{domxref("XRSession")}} に送信されます。 アクションが完了すると(ユーザーがボタンを離したときなど)、{{domxref("XRSession.select_event", "select")}} イベントが送信されます。 最後に、それが完了すると、またはユーザーがアクションを中止すると、{{domxref("XRSession.selectend_event", "selectend")}} イベントがセッションオブジェクトに送信されます。

+ +

アクションは、ユーザーがデバイス固有の方法で中止するか、アクションが完了する前に入力デバイスが切断された場合に中止される可能性があります。

+ +

ローカル座標系

+ +

各入力ソースには独自のローカル座標系があります。 これは、入力の座標系を世界座標系にマッピングするために使用する {{domxref("XRSpace")}} である {{domxref("XRInputSource.gripSpace", "gripSpace")}} プロパティによって記述されます。 次に、グリップ空間の座標系を使用してオブジェクトをレンダリングし、ユーザーの手に持っているように見せることができます。

+ +

GripSpace プロパティで定義された座標系を示す図

+ +

入力ソースの座標系の詳細については、{{domxref("XRInputSource.gripSpace", "gripSpace")}} プロパティについて詳しく説明している記事を参照してください。

+ +

仕様

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

ブラウザーの互換性

+ + + +

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

+ +

関連情報

+ + diff --git a/files/ja/web/api/xrinputsource/profiles/index.html b/files/ja/web/api/xrinputsource/profiles/index.html new file mode 100644 index 0000000000..4672470024 --- /dev/null +++ b/files/ja/web/api/xrinputsource/profiles/index.html @@ -0,0 +1,85 @@ +--- +title: XRInputSource.profiles +slug: Web/API/XRInputSource/profiles +tags: + - API + - AR + - Configuration + - Input + - Property + - Read-only + - Reference + - VR + - Virtual + - WebXR + - WebXR API + - WebXR Device API + - XR + - XRInputSource + - augmented + - profile +translation_of: Web/API/XRInputSource/profiles +--- +

{{APIRef("WebXR")}}{{securecontext_header}}

+ +

{{domxref("XRInputSource")}} の profiles 読み取り専用プロパティは、文字列の配列を返します。 各文字列は、入力ソースの構成プロファイルを記述します。 プロファイル文字列は、具体性の高い順にリストされ、最も具体的なプロファイルが最初にリストされます。

+ +
+

: WebXR セッションがインラインモードの場合、profiles リストは常に空です。

+
+ +

構文

+ +
let profileList = xrInputSource.profiles;
+ +

+ +

XRInputSource オブジェクトが表す入力デバイスの構成プロファイルをそれぞれ記述した {{domxref("DOMString")}} オブジェクトの配列。 各入力プロファイルは、入力ソースの好ましい視覚的表現と振る舞いを指定します。

+ +

使用上の注意

+ +

入力プロファイル名

+ +

入力プロファイル名は、入力ソースが使用するように構成できる視覚的表現と振る舞いを説明する文字列です。 各文字列は、

+ + + +

WebXR 入力プロファイルレジストリー(WebXR Input Profiles Registry)は、デバイス開発者とブラウザー開発者が、使用するブラウザーや他の{{Glossary("user agent","ユーザーエージェント")}}に関係なく、特定のデバイスが同じプロファイル文字列を報告するようにするために使用します。

+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('WebXR','#dom-xrinputsource-profiles','XRInputSource.profiles')}}{{Spec2('WebXR')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.XRInputSource.profiles")}}

+ +

関連情報

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