tracked-controls コンポーネントは、追跡されたコントローラーとのインターフェースです。tracked-controls は、追跡されたコントローラーを扱うために Gamepad API を使用し、hand-controls コンポーネントvive-controlsoculus-touch-controlswindows-motion-controls および daydream-controlsコンポーネントによって抽象化されています。このコンポーネントは、適切なコントローラを選択し、エンティティにポーズを適用し、ボタンの状態を観察し、適切なイベントを発行します。daydream-controls などの非 6DOF コントローラでは、位置データをエミュレートするためにプリミティブアームモデルが使用される。

tracked-controlsは、VR用の異なるWeb APIバージョンを扱う2つのコンポーネントをセットにしています。

  • tracked-controls-webvr
  • tracked-controls-webxr

#

なお、最近のブラウザ固有の変更により、ViveコントローラはGamepad APIからid値が「OpenVR Gamepad」または「OpenVR Controller」で返されることがあるため、Vive / OpenVRコントローラにはidPrefixの使用を推奨しています。

<a-entity tracked-controls="controller: 0; idPrefix: OpenVR"></a-entity>

# プロパティ

Property 概要 デフォルト値
armModel アームモデルがない場合に、位置情報にアームモデルを使用するかどうか。 true
autoHide コントローラの接続時、切断時に自動的に表示を切り替えるかどうか。 true
controller ゲームパッドAPIが返す配列中のコントローラのインデックス。 0
id ゲームパッドAPIからコントローラを完全一致で選択します。
idPrefix ゲームパッドAPIから、プレフィックスマッチでコントローラを選択します。
headElement アームモデル用のヘッドエレメントを指定します (アクティブカメラでない場合)。
hand 腕のモデルが必要な場合に使用する手を指定します。(左は X を否定します) right
orientationOffset モデルの向きに適用するオフセット。 x: 0, y: 0, z: 0

# イベント

Event Name 概要
controllerconnected コントローラが接続され、設定されている。
controllerdisconnected コントローラが切断された。
axismove 軸が変更された(例:サムスティック、タッチパッドの場合)。イベント詳細のaxisaxesChangedを含む。 axis-1.0(左、下)から1.0(右、上)までの値の配列である。
buttonchanged ボタンがタッチまたは押されたときに発生する。
buttondown ボタンが押された。
buttonup ボタンが離された。
touchstart タッチ式ボタンがタッチされた。
touchend タッチ式ボタンが離された。

# 他のリソース