最近ちょっとHololens2のお仕事をしていたのですが、Hololens2の空間上で50mより先に配置したオブジェクトが表示されないという問題に直面しました。

Hololens2はまだ日本語の技術情報が少ないので、残しておいておくと後々助かる人がいるだろうと思ったので書き記しておきます。

UnityでビルドしたアプリをHololens2で動かせる状態になっている状態からやっていきます。

まだの人は公式チュートリアルがMSらしくなくそこそこ親切なので、参照してください。

https://docs.microsoft.com/ja-jp/windows/mixed-reality/develop/unity/tutorials/mr-learning-base-02

またmofmofでも環境構築時のブログが投稿されているのでこっちも参考までに。

HoloLens2&MRTK 環境構築する

チュートリアルどおりにやると以下のような空間認識meshみたいのが入ってしまうが、MixedRealityToolkitのプロファイルを変更し、Enable Spatial Awareness Systemのチェックボックスをオフにすれば消える。

20210126 200501 HoloLens

HierarchyからMixedRealityToolkitを選択してInspectorのMixedRealityToolkitにてデフォルトのプロファイルをDefaultHololens2ConfigurationProfileに変更し、Cloneボタンを選択。

プロファイル名はなんでもいいので、50mObjectConfigrationProfileで作成する。

スクリーンショット 2021-01-27 151321

続いて空間に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先までしか描画しないようになっているため。

20210126 220410 HoloLens

再びMixedRealityToolkitを選択して、Inspector -> Camera -> Camera System Type のCloneボタンを選択。こちらもプロファイル名はなんでもいいので、50mObjectCameraProfileという名前にした。

スクリーンショット 2021-01-27 151236

そうするとInspector -> Camera -> Display Settings の値が変更可能になるので、Far Clipを100などに変更する。

スクリーンショット 2021-01-27 151131

再びビルドして表示すると、

20210126 221709 HoloLens

できたああああああああ!ちゃんと豆腐が6つ表示されましたね!

この問題に直面した時、Far Clipっていう言葉を知らなかったので「hololens2 50 distance」などで検索しても見つからず、解決方法を探すのに手間取りました。たぶん3D関連の言葉なのかな。ググるにも関連技術の語彙も必要なんだなあ。