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 紹介記事

xrdnk.hateblo.jp

xrdnk.hateblo.jp

xrdnk.hateblo.jp

xrdnk.hateblo.jp

xrdnk.hateblo.jp

実装手順

XR Rig に Snap Turn Provider (Device-based) コンポーネントと Locomotion System コンポーネントをアタッチします.
Locomotion System は Locomotion を行うために必要なコンポーネントです.XR Rig には XR Rig を当てはめてください.

f:id:xrdnk:20210119073322p:plain

プロパティ説明

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が体感いい秒間です.

実機確認

youtu.be

無事に動作できることを確認しました.

参考資料

Snap Turn Provider の基底クラス.
docs.unity3d.com

Snap Turn Provider (Device-based) の説明.
docs.unity3d.com