OpenVR コントローラーの入力
Daydream Controllers

Oculus の入力

Oculus Rift には 3 つの入力があります。Oculus Touch コントローラー 2 つと Oculus Remote です。ネイティブの Unity エディターが Oculus Rift の入力用ハードウェアをサポートするために、Unity の VR サブシステムはこれらの 3 つの入力にそれぞれ別のジョイスティックを使います。 UnityEngine.Input クラスを使用して、これらの入力の軸とボタンの値を読み取ります。

名前のきまりと検出

適切に設定され、オペレーティングシステムに接続されると、Oculus Touch コントローラーは UnityEngine.Input.GetJoystickNames() によって返されるリストに Oculus Touch - Left および Oculus Touch - Right と表示され、Oculus Remote は Oculus Remote と表示されます。Touch コントローラーと Remote を正しく設定する方法や接続する方法については、 Oculus Developer CenterPairing the Oculus Touch ControllersOculus サポートセンターOculus Remote を参照してください。

Unity スクリプトコードは、ジョイスティック名のリストで Oculus Touch コントローラーの存在を定期的にチェックして、それらが使用可能であるかをテストします。Touch コントローラーの電源がオフであったり、バッテリーが切れると、UnityEngine.Input.GetJoystickNames() によって返されるリストの名前が空の文字列に変わります。Touch コントローラーの電源を再びオンにすると、その名前がリストに再表示されます。

Unity 入力システムマッピング

Oculus Remote

(Image courtesy of developer.oculus.com)
(Image courtesy of developer.oculus.com)
Hardware Feature Unity Button ID Unity Axis ID Unity Axis Value when Pressed Xbox Controller Analogue
Button.DpadUp - 6 1.0 D-Pad Up
Button.DpadDown - 6 –1.0 D-Pad Down
Button.DpadLeft - 5 –1.0 D-Pad Left
Button.DpadRight - 5 1.0 D-Pad Right
Button.One 0 - - A Button
Button.Two 1 - - B Button

Oculus Touch コントローラー

ノート: 2 つの Touch コントローラーの制御は Xbox コントローラーのものとよく似ています。そのため、Unity の Oculus Touch コントローラーマッピングは Xbox コントローラーのそれを模倣しています。

(Image courtesy of developer.oculus.com)
(Image courtesy of developer.oculus.com)
ハードウェアの機能 操作 Unity Button ID Unity Axis ID Unity Axis 範囲 Xbox コントローラーアナログ
Button.One 押す 0 - - A ボタン
Button.One 接触 10 - - -
Button.Two 押す 1 - - B ボタン
Button.Two 接触 11 - - -
Button.Three 押す 2 - - X ボタン
Button.Three 接触 12 - - -
Button.Four 押す 3 - - Y ボタン
Button.Four 接触 13 - - -
Button.Start 押す 7 - - Start ボタン
Button.PrimaryThumbstick 押す 8 - - 左スティック 押下
Button.PrimaryThumbstick 接触 16 - - -
Button.PrimaryThumbstick 接近 - 15 接近が検知されるとき 1.0。そうでない場合 0.0 -
Button.SecondaryThumbstick 押す 9 - - 右スティック 押下
Button.SecondaryThumbstick 接触 17 - - -
Button.SecondaryThumbstick 接近 - 16 接近が検知されるとき 1.0。そうでない場合 0.0 -
Touch.PrimaryThumbRest 接触 18 - - -
Touch.PrimaryThumbRest 接近 - 15 接近が検知されるとき 1.0。そうでない場合 0.0 -
Touch.SecondaryThumbRest 接触 19 - - -
Touch.SecondaryThumbRest 接近 - 16 接近が検知されるとき 1.0。そうでない場合 0.0 -
Axis1D.PrimaryIndexTrigger 接触 14 - - -
Axis1D.PrimaryIndexTrigger 接近 - 13 接近が検知されるとき 1.0。そうでない場合 0.0 -
Axis1D.PrimaryIndexTrigger 握る - 9 0.0 から 1.0 左トリガーを握る
Axis1D.SecondaryIndexTrigger 接触 15 - - -
Axis1D.SecondaryIndexTrigger 接近 - 14 接近が検知されるとき 1.0。そうでない場合 0.0 -
Axis1D.SecondaryIndexTrigger 握る - 10 0.0 から 1.0 右トリガーを握る
Axis1D.PrimaryHandTrigger 握る - 11 0.0 から 1.0 -
Axis1D.SecondaryHandTrigger 握る - 12 0.0 から 1.0 -
Axis2D.PrimaryThumbstick 水平移動 - 1 –1.0 から 1.0 左スティックを動かす
Axis2D.PrimaryThumbstick 垂直移動 - 2 –1.0 から 1.0 左スティックを動かす
Axis2D.SecondaryThumbstick 水平移動 - 4 –1.0 から 1.0 右スティックを動かす
Axis2D.SecondaryThumbstick 垂直移動 - 5 –1.0 から 1.0 右スティックを動かす
OpenVR コントローラーの入力
Daydream Controllers