Snap Turn Provider (Device-based) を利用して VR 視点を回転させる【XR Interaction Toolkit】
XR Interaction Toolkit の Snap Turn Provider を使ってみた記事.
環境
- Unity 2019.4.17f1
- URP 7.5.2
- XR Interaction Toolkit 1.0.0-pre.1
Snap Turn Provider
XR Rig が付いたオブジェクト(大方プレイヤー視点になる)がコントローラ操作でカメラ移動できるようになるコンポーネントです. 今回 Device-based で説明します.
Device-based と Action-based の違い
従来の XR Interaction Toolkit は デフォルトが Device-based だったのですが, 0.10.0-preview.7 や 1.0.0-pre.1 あたりから Action-based 版が新しく追加されました. まずは Device-based の Interactable を一通り紹介してから,Action-based についてまとめて紹介する予定です.
過去の XR Interaction Toolkit 紹介記事
実装手順
XR Rig に Snap Turn Provider (Device-based) コンポーネントと Locomotion System コンポーネントをアタッチします. Locomotion System は Locomotion を行うために必要なコンポーネントです.XR Rig には XR Rig を当てはめてください.
プロパティ説明
System
XR Rig の System には Locomotion System を設定します.
Turn Input Source
Turn Input Source は Primary 2D Axis のままで構いません. もう一つ Secondary 2D Axis ありますが,Quest 2 では対象のジョイスティックがない認識です.
Controllers
回転操作を発動させるコントローラリスト. Controllers の Size を 1にして, XR Rig 配下にある Right Hand Controller をアタッチします. これで右手で回転操作が出来るようになります.左手でも行いたい場合は Size 2 にして,Element に Left を追加してください.
Turn Amount
回転角度を設定できます.
Dead Zone
回転イベントを発動できる閾値の設定が出来ます.デフォルトの0.75 が丁度よい認識です. 0だとちょっとだけジョイスティックを傾けただけで発動します.1だと逆に限界まで傾けないと発動しなくなります.
Enable Turn Left & Right
左右のジョイスティック押下で左右の回転操作を許可するか設定できます.
Enable Turn Around
下ジョイスティック押下で180度回転を許可するか設定できます. この機能は Oculus Integration の方ではない記憶….
Activation Timeout
再度回転操作が出来るようになるまでのインターバルです. デフォルトの0.5が体感いい秒間です.
実機確認
無事に動作できることを確認しました.
参考資料
Snap Turn Provider の基底クラス. docs.unity3d.com
Snap Turn Provider (Device-based) の説明. docs.unity3d.com