最近ちょっとHololens2のお仕事をしていたのですが、Hololens2の空間上で50mより先に配置したオブジェクトが表示されないという問題に直面しました。
Hololens2はまだ日本語の技術情報が少ないので、残しておいておくと後々助かる人がいるだろうと思ったので書き記しておきます。
UnityでビルドしたアプリをHololens2で動かせる状態になっている状態からやっていきます。
まだの人は公式チュートリアルがMSらしくなくそこそこ親切なので、参照してください。
https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-02
またmofmofでも環境構築時のブログが投稿されているのでこっちも参考までに。
チュートリアルどおりにやると以下のような空間認識meshみたいのが入ってしまうが、MixedRealityToolkitのプロファイルを変更し、Enable Spatial Awareness Systemのチェックボックスをオフにすれば消える。
HierarchyからMixedRealityToolkitを選択してInspectorのMixedRealityToolkitにてデフォルトのプロファイルをDefaultHololens2ConfigurationProfileに変更し、Cloneボタンを選択。
プロファイル名はなんでもいいので、50mObjectConfigrationProfileで作成する。
続いて空間に10m間隔で6つの豆腐(Cube)を以下の座標に配置していく。
- X:0, Y:0, Z:10
- X:-5, Y:0, Z:20
- X:-10, Y:0, Z:30
- X:-15, Y:0, Z:40
- X:-20, Y:0, Z:50
- X:-25, Y:0, Z:60
このように配置していくと、5つ目と6つ目の豆腐が表示されない。これはHololens2のデフォルトのカメラ設定が50m先までしか描画しないようになっているため。
再びMixedRealityToolkitを選択して、Inspector -> Camera -> Camera System Type のCloneボタンを選択。こちらもプロファイル名はなんでもいいので、50mObjectCameraProfileという名前にした。
そうするとInspector -> Camera -> Display Settings の値が変更可能になるので、Far Clipを100などに変更する。
再びビルドして表示すると、
できたああああああああ!ちゃんと豆腐が6つ表示されましたね!
この問題に直面した時、Far Clipっていう言葉を知らなかったので「hololens2 50 distance」などで検索しても見つからず、解決方法を探すのに手間取りました。たぶん3D関連の言葉なのかな。ググるにも関連技術の語彙も必要なんだなあ。