Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
5
Help us understand the problem. What are the problem?

posted at

updated at

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

概要

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
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
5
Help us understand the problem. What are the problem?