本日はMetaQuest3の技術調査枠です。
MRTKv2.xを使ってMetaQuest3向けのUnityプロジェクト作成を行う手順を記事にします。
本記事はアプリの背景にパススルー(複合現実)を設定する手順です。
前提条件
以下の記事で作成した Unity プロジェクトを基に設定を行います。
記事その1~その4までの作業を実施済みであることが前提になります。
bluebirdofoz.hatenablog.com
パススルーを利用する
パススルーを利用するには以下の作業が必要になります。
・OVRManager コンポーネントでパススルーの機能を有効化する
・OVRCameraRig オブジェクトにパススルーレイヤーのコンポーネントを設定する
・メインカメラの背景に透明色を設定する
これらの設定は全てMRTKのプロファイルで管理します。
パススルー用プロファイルの作成
最初にパススルー用のカスタムプロファイルを作成します。
シーン内の[MixedRealityToolkit]オブジェクトを選択してプロファイルの情報をInspectorに表示します。
[Copy & Customize]をクリックして現在のプロファイルをベースに新規プロファイルを作成します。
これでプロファイルが編集可能になります。
[Input]タグを開き、InputSystem 設定のプロファイルを[Clone]して編集可能にします。
更に[Input Data Providers]パネル内の[XR SDK Oculus Device Manager]を開きます。
こちらのプロファイルも[Clone]して編集可能にします。
一見Cloneしなくても[XR SDK Oculus Device Manager]の設定が編集可能に見えますが、Cloneを行わないと編集内容が保存されません。
パススルー用CameraRigの作成
パススルー用のCameraRigオブジェクトを作成します。
[OvrCameraRigPrefab]からデフォルトで参照されている[MRTK-Quest_OVRCamearRig]を開きます。
MRTKをFeatureToolを使ってインポートしている場合、これらのファイルはPackages配下にインポートされているため直接編集はできません。
Assets配下にフォルダを作成し、そちらにファイルをドラッグしてMRTK-Quest_OVRCamearRigのコピーを作成します。
コピーしたOVRCamearRigファイルを選択してInspectorビューを開きます。
Assets配下にコピーしたことで編集が可能になっているのでパススルー用の設定を行います。
最初に[OVRManager]コンポーネントでパススルーの機能を有効化します。以下の通り設定を変更します。
・[Quest Features -> Passthrough Support]を[Supported]または[Required]に設定する
・[Insight Passthrough -> Enable Passthrough]にチェックを入れる
Tips(v66時のUI)
次にパススルーレイヤーのコンポーネントを設定します。
[Add Component]から[OVR Passthrough Layer]コンポーネントを検索して追加します。
[OVR Passthrough Layer]コンポーネントが追加されたら[Placement]の設定を[Underlay]に設定しておきます。
これでパススルーの映像のレイヤーが最背面に設定されるので、透過されたシーンの背景にパススルーが映るようになります。
これでパススルー用のCameraRigオブジェクトが作成できました。
作成したCameraRigオブジェクトをプロファイルの[OvrCameraRigPrefab]参照にドラッグして参照を差し替え、プロファイルを保存します。
これでシーン再生時にパススルー用のCameraRigオブジェクトが利用されるようになります。
メインカメラの背景に透明色を設定
MRTK 2.8.3ではMetaQuest3はOpaque(不透過)デバイスとして判定されるため、本設定に透明色を設定する必要があります。
[Camera]タグを開き、カメラ設定のプロファイルを[Clone]して編集可能にします。
[Display Settings]パネルの[Opaque]の設定に透明色の背景を設定します。
[Transparent]と同じ設定にしておけば透明色の設定になります。
プロジェクト設定
パススルーは特定のConfiguration設定下でのみ動作します。パススルーが正常に動作しない場合は以下の設定を確認してください。
メニューから[Edit -> ProjectSettings..]を開き、[Player]タブの[AndroidSettings -> OtherSettings]を開きます。
以下の通り設定を変更します。
・[Configuration -> ScriptingBackend]を[IL2CPP]に変更する
・[Configuration -> TargetAchitectures]で[ARM64]のみのチェックに変更する
ビルドと動作確認
これでパススルーの設定は完了です。
以下の記事を基にプロジェクトのビルドとQuest3へのデプロイを実行してください。
bluebirdofoz.hatenablog.com
Quest3でデプロイしたアプリを起動すると、以下の通り現実世界のカメラ映像が背景に映りました。