XR Device Simulator を利用してマウスキーボードでVRアプリ内の操作を行う【XR Interaction Toolkit】

XR Device Simulator を利用してマウスキーボードでVRアプリ内の操作を行います.

XR Device Simulator

XR Interaction Toolkit の Samples に XR Device Simulator があります.
VRHMDを持ってなくても,Unity Editor モードで VRモード操作のシミュレーションが出来ます.

こちらの機能は Input System Package を有効にしている場合に利用できます.これが Action-based の恩恵ですね.

xrdnk.hateblo.jp

導入方法

Package Manager の XR Interaction Toolkit の Samples から XR Device Simulator があるので,Import into Project を選択します.
f:id:xrdnk:20210212191031p:plain

Hierarchy に XR Device Simulator の Prefab を配置すると利用可能になります.

f:id:xrdnk:20210212191422p:plain

使用方法

XR Device Simulator のデフォルト設定を前提に話を進めます.
主なシミュレータ操作について記述します.

コントローラについて

  • Shift キー:左コントローラモード
  • Space キー: 右コントローラモード

コントローラのTransformを変更する

  • Shift キー + マウス操作:左コントローラのTransformを変更
  • Space キー + マウス操作:右コントローラのTransformを変更

gyazo.com

コントローラのRotateを調整する

  • Shift キー + スクロールボタン押下 + マウス操作:左コントローラのRotateを変更
  • Space キー + スクロールボタン押下 + マウス操作:右コントローラのRotateを変更

gyazo.com

また,同様に

  • Tボタン押下後にマウス操作:左コントローラのRotate変更モード
  • Yボタン押下後にマウス操作:右コントローラのRotate変更モード

になります.
モードを変更すると再度同じボタンを押下しないと解除しないので注意です.

コントローラのスティック操作

  • Shift + WASD キー:左コントローラのスティック操作
  • Space + WASD キー:右コントローラのスティック操作

今回,左コントローラのスティック操作には Continuous Move Provider が,
右コントローラのスティック操作には Continuous Turn Provider が適用されているので,
Shift + WASD で移動,Space + WASD で視点回転が行われます.

gyazo.com

ちなみに,IJKL キーを押下すると,Shift 押下時は 右コントローラのスティック操作を,
Space 押下時には 左コントローラのスティック操作を,というよりもう片方のスティック操作を行うことができます.

つまり,

  • Shift + IJKL キー:コントローラのスティック操作
  • Space + IJKL キー:コントローラのスティック操作

になります.また,

  • Shift + QE キー:コントローラの左右スティック操作
  • Space + QE キー:コントローラの左右スティック操作

を行うこともできます.

コントローラのボタン操作

左コントローラの操作は以下の通り.

  • Shift + 左マウスクリック:左トリガーボタン
  • Shift + Gボタン:左グリップボタン
  • Shift + Bボタン:Xボタン
  • Shift + Nボタン:Yボタン

右コントローラの操作は以下の通り.

  • Space + 左マウスクリック:右トリガーボタン
  • Space + Gボタン:右グリップボタン
  • Space + Bボタン:Aボタン
  • Space + Nボタン:Bボタン

終わりに

こんな感じですかね….
他に気になるシミュレーション操作があれば,XR Device Simulator Controls の中身を見てみるとよいです.

f:id:xrdnk:20210212194438p:plain

Oculus Quest / Quest 2 を持っているならば,Link ですぐにデバッグは出来るので,
XR Device Simulator は本当にXRデバイスを持ってなくて,Unity Editor で操作するしかない時にしか使わないかも.
簡単なデバッグには使えるか….