HoloLens 公式チュートリアル Holograms 230 Spatial Mapping 3章

こんにちは、ナレコム杉本です。
今回はMicrosoft公式にあるチュートリアルHolograms 230 第三章を進めていきます。

前回からの続きになるのでHoloLens公式チュートリアル 230 第一章から始めてください。

第三章 処理

目標
・アプリで使用するために空間マッピングデータを処理するテクニックを習得する。
・空間マッピングデータを分析して平面を探し、三角形を削除する。
・ホログラムの配置に平面を使用する。

手順

①Unityで、[Project]パネルのHologramsフォルダーで SpatialProcessing・SpaceCollectionに移動します。
②SpatialProcessing・SpaceCollectionをドラッグして、[Hierarchy]パネルにドロップします。
③[Hierarchy]パネルで、SpatialProcessing オブジェクトを選びます。
④[Inspector]パネルの[Play Space Manager (Script)]コンポーネントに移動し、PlaySpaceManager.cs をダブルクリックして Visual Studio で開きます。

ここでSpatialProsessingの解説をします。
SpatialProcessingオブジェクトには、空間マッピングデータを処理するためのコンポーネントが含まれています。
SurfaceMeshesToPlanes.cs は、空間マッピングデータに基づいて平面を見つけ生成します。
壁・床・天井を表現するためにアプリで平面を使用します。また、このオブジェクトには空間マッピングのメッシュから頂点を削除できる RemoveSurfaceVertices.csも含まれています。これはメッシュに穴を開けたり、必要なくなった余分な三角形を削除するのに使用できます。

PlaySpaceManager.csには、アプリ固有のコードを含みます。このスクリプトに機能を追加して以下の動作を実現します。
①スキャンの制限時間 (10 秒) を超えたら、空間マッピング データの収集を停止します。
②空間マッピング データを以下のように処理します。
 ・SurfaceMeshesToPlanes を使用して、(壁、床、天井などの) 面として、仮想世界の簡単な表現を作成します。
 ・RemoveSurfaceVertices を使用して、平面の境界内に収まる面の三角形を取り除きます。
③仮想世界のホログラムのコレクションを生成し、ユーザー近くの壁と床に配置します。

PlaySpaceManager.csの内容を全てコピー&ペーストしてください。

ビルドと配置
HoloLens に配置する前に、Unityで[Play]をクリックして、プレビューモードを開始します。

①ファイルから室内のメッシュが読み込まれたら、空間マッピングデータのメッシュで処理が始まるまで10秒間待ちます。
②処理が完了すると床・壁・天井などを表す面が表示されます。
③すべての面が見つかったら、カメラ近くの床のテーブル上に太陽系が表示されます。
④また、カメラ近くの壁にポスターが 2 枚表示されます。[Game]モードで表示されない場合は、[Scene]タブに切り替えます。
⑤再度 [Play]をクリックして、プレビュー モードを終了します。

いつものようにビルドして、HoloLens に配置します。
空間マッピング データのスキャンと処理が完了するのを待ちます。
各面が表示されたら、仮想世界で太陽系とポスターを確認します。

この記事を書いた人

azure-recipe-user