LoginSignup
6
5

More than 1 year has passed since last update.

【Unity】MRTKをOculus Quest 2で動かすときの環境構築トラブル

Last updated at Posted at 2020-11-01

概要

MRTK v2.5.0が公開され、Oculus Questがサポートされるようになりました。
同時期にOculus Quest 2も発売され、MRTKをOculus Quest 2で動かしてみるか!と思った方も多いのではないでしょうか。

MRTKをOculus Quest用のプロジェクトに導入する方法は公式ドキュメントで図付きで解説されており、他の方のQiita記事もありますので特に迷うことはないでしょう。

『特に迷うことはないでしょう』とは言っても環境構築はよく失敗します。
この記事はMRTKをOculus Quest 2で動かすまでのトラブルと解決を書いておきます。(随時追加予定)

環境構築の参考記事

トラブル

カメラがトラッキングされていない

状態

  • 頭を動かしても視点が変わらず、HMDがただのディスプレイになっている
  • 👌でホームメニューを出すQuestの基本操作はできる

原因

  • シーンにOVRCameraRigがない
  • OculusXRSDKDeviceManagerProfileのPrefab Referencesが未設定になっている
    Universal Render Pipelineを使っているプロジェクトだと発生する様子
    image.png

解決方法

  • 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が原因ではなさそう

ポインターが表示されない

状態

  • ポインターが表示されない
  • オブジェクトを掴む操作はできる(ので、ポインターが描画されないだけで存在はしている様子)
    a40f9add7c07355efd26e654f0e67f4e.gif

原因

  • Universal Render Pipeline (URP)にMRTKのシェーダーが対応していない
  • この状態だとToolBoxから生成できるボタン等もピンク色になっている
    image.png

解決方法

  • 「Upgrade MRTK Standard Shader for Lightweight Render Pipeline」を実行する(公式ドキュメント
    image.png
    シェーダーをアップグレードすると、ポインターと手のボーンが見えるようになります。(下図)
    5ecd80ba377ad08a8619b31e65ad16e4.gif

オブジェクトの残像が出続ける

状態

  • 顔を動かすと、手やシーン内のオブジェクトの残像が青い線のように出る
  • 静止しているオブジェクトも、カメラが動くことによって相対的に残像が出る
  • ある程度の時間が経過すると残像は消えるが、また残像が発生する

原因

  • OVRCameraRig以外にシーン内にカメラがある
  • 新規シーンにOVRCameraRigを追加して、元々あったMain Cameraを消し忘れた

解決方法

  • OVRCameraRigだけ残すようにしましょう

OvrAvatarの手が描画されない

image.png

状態

  • ハンドトラッキングでなくコントローラを持った時、影は出るのに手のモデルは描画されない
  • 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対応していない

解決方法

image.png

  • シェーダーの Assets/Oculus/Avatar/Resources/Materials/Version1.5/Avatar_Mobile_SingleComponent.shader をURP用に書き換える。具体的には、上記の.shaderファイル内の Tags { "LightMode" = "ForwardBase" }Tags{"LightMode" = "UniversalForward"} に書き換えればよし。(参考記事

実機で青い平面と緑の平面が表示される

image.png

状態

  • エディタ再生(Oculus Link)では表示されず、実機ビルドで発生する

  • 青い平面にはテレポートできない

  • 青い平面はガーディアン境界に沿って表示されているっぽい

  • 環境

    • URP10.5.1
    • MRTK 2.7.2
    • Unity 2020.3.13f1

原因

解決方法

  • Boundary表示の✅を外す。
    初期設定でチェックが入っている場合はCloneしてから設定を変更しましょう。
    image.png

手の甲からポインターが出る

状態

  • 実機ビルドで発生する

  • 本来掌のあたりから出るポインターが、手の甲から垂直に伸びる

  • 環境

    • MRTK 2.8.0
    • Unity 2020.3.25f1

原因

  • 不明

解決方法

  • adb uninstallして再度ビルドしたものをインストールしたら直った
6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5