本日はツール調査枠です
HoloLensの開発ツールはMixedRealityToolkit(MRTK)以外にもMicrosoft Map-SDK for Untiyなど様々なものが提供されています。
今回はその中でSceneUnderStandingを使用していきます。
〇SceneUnderstandingとは?
SceneUnderstandingはMicrosoftによって提供されているMRTKの拡張ツールで、HoloLensによって取得する空間認識機能を拡張します。
次のGitリポジトリで公開されています。
旧MixedRealityToolkit(HoloToolkit)では[SpatialUnderstanding]と呼ばれる機能が提供されており、MRTKに同梱されていましたが、MRTKv2移行は2.51現在は別の機能として提供されています。
〇Spatial Mapping(SpatialAwareness)との違い
HoloLensの特徴として[SpatialAwareness(空間認識)]機能があります。
[SceneUnderstanging]も[Spatialmapping]もどちらもHoloLensデバイス自体のセンサーにアクセスしてAPI経由で情報を受けとりますが、二つには次のような違いがあります。
・[SpatialMapping]には検知エリアに制限がありますが、[SceneUnderstanding]には制限がありません。無制限で検出を行えます。
・SpatialMappingに比べ[SceneUnderstanding]は壁や床、オブジェクトを解析することができます。
〇SceneUnderstandingのサンプルプロジェクト
gitHubのページからサンプルプロジェクトを取得します。
①UnityHubを開き[リストへ追加]からダウンロードしたサンプルプロジェクトの[Assets]がある階層を選択してサンプルプロジェクトをリストに加え開きます。
今回はUnity2019.3.9f1を使用しています。
②[Assets]→[SceneUnderstanding]→[Examples] から[SceneUnderstandingSample]のサンプルシーンを開きます
UnityEditor上で実行するとサンプルを見ることができます。
このシーンでは[Wall]、[Platform]、[Background]、[Celling]、[Unknown]によってSpatiamMeshが区別されます。
③HoloLens用にビルド設定を行います。hierarchyウィンドウから[SceneunderstandingManager]オブジェクトを開き[Query Scene From Device]のチェックを外します。
④[BuildSettings]から[SceneUnderstandingSample]のscene以外のシーンをビルドから外し該当シーンのみをビルドしデバイスにデプロイします。
〇実機で確認
実機で確認します。
階段の一段一段しっかり認識して区別していることが確認できました。