概要
HoloLens 環境をベースにソフトウェアを開発しているときに、奇妙な問題に遭遇しました。
Unity でプロジェクトをビルドし、Mixed Reality Toolkit (MRTK) パッケージをインポートしました。公式サイトの指示に従い、City Engine から HoloLens に FBX モデルをエクスポートしたところ、Unity コンソールにエラーは表示されませんでした。
VS 2017 を使用して Hololens で提案されたプログラムをデバッグすると、HoloLens システムが終了し、HoloLens のインターフェイスに次の情報が表示されました。「周囲をマップしようとしています」(図 1)。
2018.11.15 更新このプロジェクトを再構築して Hololens Emulator にエクスポートすると、このエラーが発生しました。
If your machine has multiple graphics adapters, Unity may have created a WindowContext on the wrong adapter. If you experience a black screen when playing, please restart the Editor.
(Filename: C:\buildslave\unity\build\Runtime/VR/VRDevice.cpp Line: 218)
The referenced script on this Behaviour is missing!
(Filename: C:\buildslave\unity\build\Runtime/Mono/MonoBehaviour.cpp Line: 1510)
The referenced script on this Behaviour (Game Object 'International City_0') is missing!
(Filename: C:\buildslave\unity\build\Runtime/Mono/MonoBehaviour.cpp Line: 1753)
Setting up 1 worker threads for Enlighten.
Thread -> id: 550 -> priority: 1
UnloadTime: 6.645600 ms
Holographic Tracking State Lost. New State: 1
(Filename: C:\buildslave\unity\build\Runtime/VR/HoloLens/HoloLensWorldManager.cpp Line: 166)
Failed to get spatial stage statics - can't retrieve or interact with boundaries! Error code: '0x80040154'.
Hololens Emulator 表示画像の結果
ただし、HoloLens がクラッシュしたときに Unity コンソールにエラーが表示されないことに気付きました。そこで、この問題を解決するために次のテストを行いました。
1 このプロジェクトに基づいて、MRTK によって構成されたモデルとシーン (カメラ、カーソル、入力モジュール) のみを残して、すべてのスクリプトと他のモデルを削除しました。それは動作しません。
2 このプロジェクトに基づいて、FBX モデルをサンプルの CUBE モデルに置き換えましたが、他は変更されていません。修正したプロジェクトを HoloLens に投稿したところ、そのような問題は発生しませんでした。
3 最後に、MRTK パッケージを削除して、FBX モデルだけを残し、リリース モデルを Windows プラットフォームにコンパイルしようとしました。プログラムは正常に実行されており、エラーは報告されていません。
FBX モデルのサイズは約 27 MB です (図 2)。
これらの問題は、HoleLens と FBX モデル間の非互換性が原因ですか?
どうすればこの問題を解決できますか?
Unity エディター バージョン
2017.2.1f1
Mixed Reality Toolkit リリース バージョン
2017.2.1.4