夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK3×MetaQuestでパススルーモード(MR)を実装する方法

本日は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向けのプロジェクト

 

redhologerbera.hatenablog.com

〇MRTK3でQuest3向けにパススルーモードを実装する

〇OculusIntegrationの導入

MRTK3を使用することでOpenXRに乗っ取ってQuestを開発する際に導入することが多いOculusIntegrationを導入、使用せずにアプリケーションを作成できました。

しかしQuestのMRモードはOpenXRに依存していないデバイス固有の機能を使用するようで、この機能を使用するためにOculusIntegrationを導入します。

①UnityのプロジェクトからPackageManagerを開きます。

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

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

このリストの中からOculusIntegrationを探します。

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

assetstore.unity.com

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 DevicesQuest 3をチェックを入れ有効化します。

なおQuest3を対象にしていない場合はスキップしてもかまいません。

Displayの設定からPassthrough Supportの項目でRequiredに設定します。

Enable Passthroughを有効にします。

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

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

MainCameraを選択します。

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

以上ですべての設定が完了しました。

アプリをビルドしてQuestで実行するとMRモードを確認できます。

本日は以上です。