XR Interaction Toolkit を Input System (Action-based) で利用する【XR Interaction Toolkit】

XR Interaction Toolkit を Input System で利用してみました.

Input System

マウス,キーボード,ゲームパッド等の各デバイスの操作について,Actionに纏め一括管理することが出来るパッケージです.
現行を Input Manager と呼ぶに対して,こちらは Input System と呼ばれます.

詳細についてはこちらの動画,資料が詳しいです.

www.youtube.com

hi-network.sakura.ne.jp

Action-based と Device-based

XR Interaction Toolkit は 0.9 までは Device-based (デバイス依存) 入力方式でしたが,
0.10 から Action-based という Input System 対応の入力方式が追加実装されました.

現時点では Device-based の方がとっかかりやすいですが,Action-based だと恩恵がある所もあるので,
勉強がてら Action-based を利用してみます.恩恵については後程別記事でまとめます.

Action-based と Device-based の二種類あるスクリプトコンポーネントは以下の通りです.

  • XR Controller
  • Continuous Move Provider
  • Continuous Turn Provider
  • Snap Turn Provider

コントローラ操作に関わる機能ですね.

準備

Input System にする

入力方式を Input Manager から Input System にします.

Project Settings > Player > Other Settings > Configuration|Active Input Handling で設定を行います.
Both か Input Manager (Old) か Input System Package (New) かで選択できますが,
今回は Input System Package 一本化にします.設定変更後 Unity が再起動します.

f:id:xrdnk:20210207210240p:plain:w500

Default Input Actions のインポート

まず,Package Manager の XR Interaction Toolkit の Samples に Default Input Actions があるのでインポートします.

f:id:xrdnk:20210207195123p:plain

これにより XR Interaction Toolkit の Input Actions 設定を入手できます.

f:id:xrdnk:20210207200450p:plain

Device-based を Action-based に置換

Action-based に切り替えたい場合は,Device-based から Action-based に置換する作業を行います.
地道な作業ですが,以下を Device-based から Action-based に替えます.
XR Controller は同じオブジェクトに1つしかアタッチできないので,Device-based は Remove する必要があります.

  • XR Controller

f:id:xrdnk:20210207195325p:plain:w500

  • Continuous Move Provider

f:id:xrdnk:20210207200657p:plain:w500

  • Continuous Turn Provider

f:id:xrdnk:20210207200733p:plain:w500

  • Snap Turn Provider

f:id:xrdnk:20210207200800p:plain:w500

各 Action-based スクリプトの設定

さて,Action-based に切り替えましたが,諸々設定箇所があります.
これらを一から設定するのは骨が折れるので,ここで先ほどインポートした Default Input Actions を利用します.
プリセット形式で提供されているので,Inspector に preset ファイルを D&D すれば各設定が完了します.

例えば,Left Hand Controller の XR Controller (Action-based) に XRI Default Left Controller を当てはめる場合は以下の感じです.

gyazo.com

これを Right Controller,Continuous Move / Turn,Snap Turn にも繰り返します.

Input Action Manager

Input Action Manager を設定します.これは忘れがちですが大事な作業です.
Action Assets には Default Input Actions の XRI Default Input Actions を設定します.

f:id:xrdnk:20210207201641p:plain:w500

ここまでで設定準備完了です.

動作確認

Device-based と同様な動作が出来ているか確認を行います.

youtu.be

Action-based でも同様な動作が出来ていました.