概要
MRTK v2.5.0が公開され、Oculus Questがサポートされるようになりました。
同時期にOculus Quest 2も発売され、MRTKをOculus Quest 2で動かしてみるか!と思った方も多いのではないでしょうか。
MRTKをOculus Quest用のプロジェクトに導入する方法は公式ドキュメントで図付きで解説されており、他の方のQiita記事もありますので特に迷うことはないでしょう。
『特に迷うことはないでしょう』とは言っても環境構築はよく失敗します。
この記事はMRTKをOculus Quest 2で動かすまでのトラブルと解決を書いておきます。(随時追加予定)
環境構築の参考記事
- How to configure Oculus Quest in MRTK using the XRSDK pipeline (公式ドキュメント)
- Oculus Quest 2でMRTK使って豆腐と戯れる最小手順
トラブル
カメラがトラッキングされていない
状態
- 頭を動かしても視点が変わらず、HMDがただのディスプレイになっている
- 👌でホームメニューを出すQuestの基本操作はできる
原因
シーンにOVRCameraRigがない- OculusXRSDKDeviceManagerProfileのPrefab Referencesが未設定になっている
Universal Render Pipelineを使っているプロジェクトだと発生する様子
解決方法
- MRTKに付属しているOVRCameraRig(とLocal Avatar)のPrefabをOculusXRSDKDeviceManagerProfileにセットします。
PrefabはAssets/MRTK/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs
またはPackages/com.microsoft.mixedreality.toolkit.foundation/Providers/Oculus/XRSDK/MRTK-Quest/Prefabs
にあります。
追記
- mac環境でやったら発生しなかったので、URPが原因ではなさそう
ポインターが表示されない
状態
原因
解決方法
- 「Upgrade MRTK Standard Shader for Lightweight Render Pipeline」を実行する(公式ドキュメント)
シェーダーをアップグレードすると、ポインターと手のボーンが見えるようになります。(下図)
オブジェクトの残像が出続ける
状態
- 顔を動かすと、手やシーン内のオブジェクトの残像が青い線のように出る
- 静止しているオブジェクトも、カメラが動くことによって相対的に残像が出る
- ある程度の時間が経過すると残像は消えるが、また残像が発生する
原因
- OVRCameraRig以外にシーン内にカメラがある
- 新規シーンにOVRCameraRigを追加して、元々あったMain Cameraを消し忘れた
解決方法
- OVRCameraRigだけ残すようにしましょう
OvrAvatarの手が描画されない
状態
- ハンドトラッキングでなくコントローラを持った時、影は出るのに手のモデルは描画されない
-
Edit > Render Pipeline > Universal Render Pipeline > Upgrade Project Materials to UniversalRP Materials
を実行しても直らない - 環境
- URP10.5.1
- MRTK 2.7.2
- Unity 2020.3.13f1
原因
- OvrAvatarが動的に生成する手のモデルが使用するシェーダーがURP対応していない
解決方法
- シェーダーの
Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader
をURP用に書き換える。具体的には、上記の.shaderファイル内のTags { "LightMode" = "ForwardBase" }
をTags{"LightMode" = "UniversalForward"}
に書き換えればよし。(参考記事)
実機で青い平面と緑の平面が表示される
状態
-
エディタ再生(Oculus Link)では表示されず、実機ビルドで発生する
-
青い平面にはテレポートできない
-
青い平面はガーディアン境界に沿って表示されているっぽい
-
環境
- URP10.5.1
- MRTK 2.7.2
- Unity 2020.3.13f1
原因
- Boundary Systemの設定が原因
解決方法
手の甲からポインターが出る
状態
-
実機ビルドで発生する
-
本来掌のあたりから出るポインターが、手の甲から垂直に伸びる
-
環境
- MRTK 2.8.0
- Unity 2020.3.25f1
原因
- 不明
解決方法
-
adb uninstall
して再度ビルドしたものをインストールしたら直った