HoloLensアプリ開発を便利にしてくれるMRTKのデモシーンをSpectatorViewで見れるようにしてみます.
SpectatorView
MixedRealityToolKit
- MixedRealityToolkit-Unity : https://github.com/microsoft/MixedRealityToolkit-Unity
環境
- 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
が利用できなくなっているため削除します.MixedReality-SpectatorView/src/SpectatorView.Unity/Assets/SpectatorView/Scripts/StateSynchronization/NetworkedComponents/TextMeshPro/TextMeshProBroadcasterBase.cs
MixedReality-SpectatorView/src/SpectatorView.Unity/Assets/SpectatorView/Scripts/StateSynchronization/NetworkedComponents/TextMeshPro/TextMeshProObserverBase.cs
- 修正例 : https://github.com/akihiro0105/MixedReality-SpectatorView/commit/43efa4e03787c59da8b9635c37926fc4936c09d1
MixedRealityToolkit(MRTK)
- MRTKはUnityPackageManager(UPM)をサポートしています.
- Unityのプロジェクトの
Packages/manifest.json
に以下を追記してMRTKをインポートします.
|
|
負荷調整
- 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から利用できるようにしています.
git submodule update --init --recursive
- SpectatorViewの設定 : SpactatorViewをUnity2019.4での利用+iOSでPeople Occlusion
利用しているMRTKのデモはUnityPackageManagerのMRTKには含まれていないので,別途UnityPackageをダウンロードしてUnityプロジェクトにインポートします.
Assets/SpectatorViewWithMRTK/Scenes/HoloLens2Demo
のシーンがHoloLens用のシーンになります.
akihiro0105/MixedReality-SpectatorViewWithMRTK
- 動作している様子
まとめ
- MRTKのアイコンやプレートの色などシェーダーの一部が正常に表示されていない(調査中)
- MRTKと共存できるのでMRTKを利用しているプロジェクトに簡単にSpectatorView機能を追加できるかもしれない.
- SpectatorViewで表示するオブジェクトが多かったり複雑に変化する場合には表示が重くなる場合があるので対処が必要.