【Meta Quest 3開発】HMD・手・コントローラーのトラッキング

前回

【Meta Quest 3開発】環境構築とプロジェクトの設定

はじめに

前回はUnityの環境構築とプロジェクトの準備を行いました。今回からVR/MRの開発を進めていきます。まずは、HMD、手、コントローラーのトラッキングをして、VRの世界で動けるようになりましょう。

ヘッドトラッキング

カメラの追加

まずはVR用のカメラを用意しましょう。
Packages/Meta XR Core SDK/Prefabs/OVRCameraRigをHierarchy上にドラッグ&ドロップして追加します。そして不要になったMain Cameraを削除。これだけで頭のトラッキングができるようになります。

カメラの設定変更

ついでに、OVRCameraRigの[Tracking Origin Type]をFloor Levelにしましょう。この[Tracking Origin Type]というのはカメラの基準点に関する設定です。追加直後のカメラ位置はおそらく高さ0の位置にいると思います。この設定を変えることで「カメラの高さを目線の高さとする」のか、「カメラの高さを床の位置とする」のかを変更できます。

つまり、カメラの位置をY=0に置いてからFloor Levelに設定することで、間接的に床の高さをY=0に設定することができるのです。

  • Eye Level:HMDと床からの距離をとってそこをカメラの位置とする。
  • Floor Level:ガーディアン設定時の床の位置をカメラの位置とする。
  • Stage:位置はFloor Levelと同じだが、正面の向きがアプリ起動時に固定されます。
    (リセンターで再度調整しても正面は変わりません)

ハンドトラッキング

手の追加

続いてハンドトラッキングをするための設定をしていきましょう。
Packages/Meta XR Core SDK/Prefabs/OVRHandPrefabを先ほど追加したHierarchy上にあるOVRCameraRig/TrackingSpaceにあるLeftHandAnchorRightHandAnchorに追加します。

手の設定変更

初期設定は左手の設定になっているので、右手として追加したOVRHandPrefabを選択して設定を変更しましょう。

  • OVR Hand
    • Hand Type = Hand Right
  • OVR Skeleton
    • Skeleton Type = Hand Right
  • OVR Mesh
    • Mesh Type = Hand Right

コントローラートラッキング

コントローラーの追加

最後にコントローラートラッキングの設定をしていきましょう。
Packages/Meta XR Core SDK/Prefabs/OVRControllerPrefabを先ほど追加したHierarchy上にあるOVRCameraRig/TrackingSpace/LeftHandAnchor(RightHandAnchor)にあるLeftControllerAnchor(RightControllerAnchor)に追加します。

コントローラーの設定変更

次に各コントローラーをどちらの手に持つかを設定しましょう
先ほど追加したOVRControllerPrefabを片方ずつ設定していきます。

  • OVR Controller Helper
    • Controller = L/R Touch

起動画面

問題「マテリアルがピンク色になってしまう」

SDKに同梱されているマテリアルがURPに対応していないのか、URPへの変換が必要な場合があります。
「Render Pipeline Converter」を使用してURPでも扱えるようにしましょう。

手順

  1. Assets以下にMetarials/ControllerMaterials/Handフォルダを作成する
  2. マテリアルをAssets以下にコピー
    • Packages/com.meta.xr.sdk.core/Materials/BasicHandMaterial.matAssets/Materials/Handにコピー
    • Packages/com.meta.xr.sdk.core/Meshes/OculusTouchForRift/Materials/OculusTouchForRift_Material.matAssets/Materials/Controller/OculusTouchForRiftにコピー
  3. 『Render Pipeline Converter』を使用してURPでも使用できるように変換
    1. Window -> Rendering -> Render Pipeline Converter を開く
    2. Material Upgrade にチェックを入れる
    3. Initialize Converters ボタンをクリック
    4. Convert Assets ボタンをクリック
      この際、Selected項目の数字が増えていることを確認する
  4. 手とコントローラーのマテリアルを変更
    • OVRHandPrefabのコンポーネントにBasicHandMaterialを追加
    • OVRControllerPrefab/MetaQuestTouchPlus/left_oculus_controller_meshのコンポーネントにMetaQuestTouchPlusMATphong_leftを追加
    • etc.

参考

次回

【Meta Quest 3開発】Meta XR Interaction SDKを使用したハンドトラッキング

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です