前回
【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
にあるLeftHandAnchor
とRightHandAnchor
に追加します。
手の設定変更
初期設定は左手の設定になっているので、右手として追加した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でも扱えるようにしましょう。
手順
- Assets以下に
Metarials/Controller
とMaterials/Hand
フォルダを作成する - マテリアルをAssets以下にコピー
Packages/com.meta.xr.sdk.core/Materials/BasicHandMaterial.mat
をAssets/Materials/Hand
にコピーPackages/com.meta.xr.sdk.core/Meshes/OculusTouchForRift/Materials/OculusTouchForRift_Material.mat
をAssets/Materials/Controller/OculusTouchForRift
にコピー
- 『Render Pipeline Converter』を使用してURPでも使用できるように変換
- Window -> Rendering -> Render Pipeline Converter を開く
- Material Upgrade にチェックを入れる
- Initialize Converters ボタンをクリック
- Convert Assets ボタンをクリック
この際、Selected項目の数字が増えていることを確認する
- 手とコントローラーのマテリアルを変更
OVRHandPrefab
のコンポーネントにBasicHandMaterial
を追加OVRControllerPrefab/MetaQuestTouchPlus/left_oculus_controller_mesh
のコンポーネントにMetaQuestTouchPlusMATphong_left
を追加- etc.