本日はQuest枠です。
MetaQuestではMRモードと呼ばれるビデオ映像を通して現実世界とオブジェクトを対話するモードがあります。
この機能はもともとはVRでは周囲の環境が見えなくなるためにあらかじめ、どのくらい動き回れるスペースがあるのかを設定するガーディアンと呼ばれる設定を行うため搭載されていましたが、後にアプリケーション側からもビデオ映像のパスを使用することができるようになりました。
また以下の表のとおり、Quest3ではカラーで現実同様にビデオ映像を使用できるようになりました。
| --- | Quest | Quest2 | Quest3 | Quest Pro |
|---|---|---|---|---|
| 解像度 | 1440x1600 | 1832×1920 | 2064×2208 | 1800×1920 |
| パススルー | --- | モノクロ | カラー | カラー |
今回はQuest3を対象にMRTK3でこれを実装する方法を紹介します。(Quest2,Proでも同様に動きます。)
〇環境
・Unity2021.3.21f1
・URP
・MetaQuest3
・MRTK3
MRTK3の詳細パッケージは画像のようになります。

・MRTK3の導入が完了したMetaQuest向けのプロジェクト
〇MRTK3でQuest3向けにパススルーモードを実装する
〇OculusIntegrationの導入
MRTK3を使用することでOpenXRに乗っ取ってQuestを開発する際に導入することが多いOculusIntegrationを導入、使用せずにアプリケーションを作成できました。
しかしQuestのMRモードはOpenXRに依存していないデバイス固有の機能を使用するようで、この機能を使用するためにOculusIntegrationを導入します。
①UnityのプロジェクトからPackageManagerを開きます。

②PackagesのソートをMyAssetsに切り替えます。

MyAssetsのリストには自身がUnity AssetsStoreで購入したアセットが一覧表示されます。
このリストの中からOculusIntegrationを探します。

OculusIntegrationがない、もしくは過去に入手したことがない場合はUnityのAssetsストアから入手します。
OculusIntegrationの項目からImportを選択します。

③OculusIntegrationをImortします。

以前に使用していたバージョンによってはUpdateを求められることがあります。
必須ではないですがUpdateを行うことを推奨します。
④インポート中にいくつかのダイアログが表示されます。
・Send usage statisticsを選択します

・Enableを選択します。

・Restartを選択します。

・Show Assets(Recommended)を選択します。

・Clean Up Packageを選択します。

・Upgradeを選択します。

・Restartを選択します。

Unityが再起動するとOculusIntegrationの導入が完了します。
〇シーンの構成
①シーン上に配置してあるMRTK XR RigオブジェクトにOVR Managerコンポーネントを追加します。

②Target DevicesでQuest 3をチェックを入れ有効化します。

なおQuest3を対象にしていない場合はスキップしてもかまいません。
③Displayの設定からPassthrough Supportの項目でRequiredに設定します。

④Enable Passthroughを有効にします。

⑤OVR Passthrough LayerおよびEnable Unpremultiplied Alphaコンポーネントを追加します。

⑥OVR Passthrough LayerコンポーネントのPlacementをUnderlayに設定します。

⑦MainCameraを選択します。

⑧Camera Settings ManagerコンポーネントからOpaque DisplayのClear ModeをColorに設定し、Clear Colorの色設定からAlphaを0に設定します。

以上ですべての設定が完了しました。
アプリをビルドしてQuestで実行するとMRモードを確認できます。
本日は以上です。