[Unity]Meta Quest で部屋のメッシュを使う (SDK v59)

Meta Quest 3 + Meta XR Core SDK v59 で部屋のメッシュを使う方法のメモです。



概要

壁や床、バーチャル家具などを扱える Scene Model の機能を使い、特定の種類 (GLOBAL_MESH) のオブジェクトを部屋のメッシュに差し替えます。


手順

v57 からサンプルをコピー

v59 には壁や床のサンプルプレハブが入っていません。手でセットアップはできますが、不慣れな場合は v57 からサンプルプレハブを持ってきた方が楽かと思います。

Assets/Oculus/SampleFramework/Usage/SceneManager をコピーしておきます。


手で作るなら以下のページなどに情報があります。日本語だと違う内容になるので、ページ下の言語設定を English(US) にすることをおすすめします。


OVRManager の設定

OVRCameraRig > OVRManager の
  • Scene Support を Supported または Required に
  • Passthrough Support を Supported または Required に
  • Enable Passthrough にチェック


OVRSceneManager の配置

OVRSceneManager プレハブをシーンに置きます。

Plane Prefab と Volume Prefab を指定します。


ここまでで、部屋のメッシュ以外の壁や床は使えるようになります。

部屋のメッシュの使用

OVRSceneManager の Prefab Overrides を開いて、GLOBAL_MESH に Global Mesh Renderer Collider プレハブを指定します。


これで部屋のメッシュ表示とコライダができます。

プレハブを自分でセットアップする場合は以下が参考になります。日本語ページに情報はないので、ページ下の言語設定を English(US) にしてください。

Scene Mesh - Use OVRSceneManager: Unity | Oculus Developers

あとは適宜メッシュを非表示にしたり、オブジェクトの影だけ表示するシェーダーに差し替えるなどするとよいです。

こちらはサンプルの Unlit/WireframeShader をいじって透過にしたものです。


こちらはオクルージョンと影を表示したものです。


おしまい

コメント