なんかいろいろしてみます

Oct 26, 2020 - 1 minute read - HoloLens

SpectatorViewでMRTKのデモを見てみる

HoloLensアプリ開発を便利にしてくれるMRTKのデモシーンをSpectatorViewで見れるようにしてみます.

SpectatorView

MixedRealityToolKit

環境

  • Windows10 PC
  • Unity 2019.4.10f1
  • VisualStudio2019
  • HoloLens 2
  • iPhoneXS
  • MRTK v2.5.0

導入方法

MixedReality-SpectatorView

Unity 2019.4対応

  • Spectator側のiPhoneでPeopleOcclusionを利用したかったのでUnity 2019.4を利用します.
  • 公式ではUnity 2019.2に対応しているのでUnity 2019.4で動作するように修正します.
  • 修正方法については以下のページを参照してください.

TextMeshPro対応

  • SpectatorViewとMRTKで利用されているTextMeshProのバージョンが異なるためエラーが発生します.
  • 利用できるTextMeshProのパラメータが異なるため,エラーの出ているパラメータを修正します.
  • 以下のコードの ignoreRectMaskCullingが利用できなくなっているため削除します.

MixedRealityToolkit(MRTK)

  • MRTKはUnityPackageManager(UPM)をサポートしています.
  • Unityのプロジェクトの Packages/manifest.jsonに以下を追記してMRTKをインポートします.
 1 2 3 4 5 6 7 8 91011121314
   "scopedRegistries": [
    {
      "name": "Microsoft Mixed Reality",
      "url": "https://pkgs.dev.azure.com/aipmr/MixedReality-Unity-Packages/_packaging/Unity-packages/npm/registry/",
      "scopes": [
        "com.microsoft.mixedreality",
        "com.microsoft.spatialaudio"
      ]
    }
  ],
   "dependencies": {
    "com.microsoft.mixedreality.toolkit.examples": "2.5.0",
    "com.microsoft.mixedreality.toolkit.foundation": "2.5.0",
    "com.microsoft.mixedreality.toolkit.tools": "2.5.0",

負荷調整

  • MRTKデモのオブジェクトの状態を全てSpectatorViewで表示するとオブジェクト数が多いため表示が重くなってしまいます.
  • SpectatorViewの設定を変更してSpectatorViewの処理負荷をさげることができます.
  • メニューの SpectatorView/Edit Global Performance Parametersを選択してInspectorのDefault State Synchronization Performance Parametersを確認します.
  • Update Continuouslyは毎Update時にオブジェクトが変更されているか確認するため負荷が高くなります.
  • Update Once on Startに変更することでオブジェクト生成時のみオブジェクトの変更を確認するため負荷を低減できます.
  • 参考情報 : https://github.com/microsoft/MixedReality-SpectatorView/tree/master/src/SpectatorView.Unity/Assets/SpectatorView/Scripts/StateSynchronization

MRTKのデモをSpectatorViewで見るプロジェクトがこちら

  • SpectatorViewとMRTKをUnityPackageManagerでインポートして利用できるサンプルプロジェクトになります.
  • SpectatorViewはgitのsubmoduleから利用できるようにしています.
  • 利用しているMRTKのデモはUnityPackageManagerのMRTKには含まれていないので,別途UnityPackageをダウンロードしてUnityプロジェクトにインポートします.

  • Assets/SpectatorViewWithMRTK/Scenes/HoloLens2DemoのシーンがHoloLens用のシーンになります.

akihiro0105/MixedReality-SpectatorViewWithMRTK

  • 動作している様子

まとめ

  • MRTKのアイコンやプレートの色などシェーダーの一部が正常に表示されていない(調査中)
  • MRTKと共存できるのでMRTKを利用しているプロジェクトに簡単にSpectatorView機能を追加できるかもしれない.
  • SpectatorViewで表示するオブジェクトが多かったり複雑に変化する場合には表示が重くなる場合があるので対処が必要.