Unity の xR 入力
OpenVR コントローラーの入力

Windows Mixed Reality の入力

Windows Mixed Reality モーションコントローラーを使用すると、Mixed Reality アプリケーションで相互作用が可能になり、有効視野 (FOV) 内で低遅延で正確な動きの追跡が可能になります。これは、ヘッドセットに内蔵されているセンサーによって実現されています。

もともと Unity エディターでは Windows Mixed Reality 入力ハードウェアをサポートできるように、Unity VR サブシステムでは 3 つの入力を別々のジョイスティックとして認識します。UnityEngine.Input クラスを使用して、これらの入力の軸とボタンの値を読みます。

コントローラーの命名規則と検出

適切に設定され、コンピューターに接続されると、モーションコントローラーは UnityEngine.Input.GetJoystickNames() のリストに Spatial Controller - LeftSpatial Controller - Right として表示されます。モーションコントローラーを適切に設定して接続する方法については、アニメーション コント ローラーに関する Microsoft のドキュメント を参照してください。

Unity では、スクリプトを通してジョイスティックの名前がリストにあるかどうかを定期的にチェックすることによって、コントローラーが使用可能かをチェックすることができます。コントローラーの電源を切るか、バッテリーを取り外すと、UnityEngine.Input.GetJoystickNames() によって返されるリストの名前が空の文字列に変わります。コントローラーの電源を入れると、その名前がリストに再表示されます。

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

下の図は Windows Mixed Reality コントローラーで使用可能なボタンを示しています。

Windows Mixed Reality コントローラーボタン (画像提供 developer.microsoft.com)
Windows Mixed Reality コントローラーボタン (画像提供 developer.microsoft.com)

下の表は、相互作用のタイプ、ボタンの ID、軸、コントローラーによって Unity に入力される値の範囲を示しています。

ハードウェアの機能 操作 Unity Button ID Unity Axis ID Unity Axis 値の範囲
Touchpad 接触 Left: 18
Right: 19
- -
Touchpad 押す Left: 16
Right: 17
- -
Touchpad 水平移動 - Left: 17
Right: 19
–1.0 から 1.0
Touchpad 垂直移動 - Left: 18
Right: 20
–1.0 から 1.0
Thumbstick 押す Left: 8
Right: 9
- -
Thumbstick 水平移動 - Left: 1
Right: 4
–1.0 から 1.0
Thumbstick 垂直移動 - Left: 2
Right: 5
–1.0 から 1.0
Select Trigger 押す Left: 14
Right: 15
- -
Select Trigger 握る - Left: 9
Right: 10
0.0 から 1.0
Grip button 押す Left: 4
Right: 5
- -
Grip button 握る - Left: 11
Right: 12
0.0 か 1.0*
Menu button 押す Left: 6
Right: 7
- -

Windows Mixed Reality コントローラーの Unity 向け入力の詳細

  • グリップはバイナリコントロールのため、0 か 1 の値のみが返され、中間の値はありません。

以下の表は、Window Mixed Reality コントローラーの入力時に使用可能なさまざまな軸と、各軸の正方向と負方向を示しています。

正の方向 負の方向
水平
垂直

Windows MR モーションコントローラーを Unity で使用する詳しい情報は、Windows Developer Center ドキュメントの Motion Controllers in Unity を参照してください。


  • 2017–11–21 編集レビュー を行ってパブリッシュされたページ

  • 2017.2 の新機能

Unity の xR 入力
OpenVR コントローラーの入力