スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

スポンサーリンク

HoloToolKit-Unity Spatial Mappingを紹介

はじめに

HoloToolkitーUnityとはHoloLens向けのアプリを効率的に開発するための機能を含んだツールキットです(前記事)。ここではその中でも周囲の環境(表面形状)をメッシュデータとして記録する機能であるSpatial Mappingに関するものを紹介します。
HoloToolkit-Unity github

HoloToolkit-Unity SpatialMapping github

HoloToolkit-Unity SpatialMapping では何ができるの?

HoloToolkit-Unity SpatialMappingには以下のような機能を実現するためのプレハブやスクリプトが含まれています。

  1. メッシュデータの利用 :HoloLens上でのSpatial Mappingデータへの可視化とアクセス。Windows Device Portalから取得した部屋のモデルの保存と読み込み(SpatialMapping.prefab)
  2. メッシュデータの処理:メッシュデータから平面を検出、分類(壁、床、天井など)、頂点の削除、Planeへの変換(SurfacePlane.prefabs)
  3. HoloLensとUnity間の処理HoloLensからUnityにメッシュデータを転送、保存、読み込み(RemoteMapping.prefab)
上記の機能以外に使いやすそうなスクリプトとして以下のようなものがあります。
  • TapToPlace.cs:アタッチしたオブジェクトをタップでメッシュ上に配置できる。Windows HolographicのWindowの配置で利用されている操作方法
使いやすそうなシェーダーとして以下のようなものがあります。
  • occulusion.shader :メッシュデータでHologramが隠れている表現をする
StandardShader.png OcculusionShader.png
Standard Shader(左)とoculusion.shader(右)。メッシュデータで隠れている領域を透過させることで、実物体に対してHologramの物体が遮蔽される表現ができる。

HoloToolkit-Unity SpatialMapping を実行してみる

ここではSpatial Mappingのテストシーンを動画を使って紹介します。
1.PlaneFinding

 あらかじめ用意されたメッシュデータから平面を推定します。このサンプルはメインスレッドで平面推定していますが、自分でアプリを開発する際はバックグラウンドで実行しなければなりません。このサンプルではUpdate関数で毎回平面を推定しているので処理が重くなっています。
 推定した平面のパラメータはUnityEditor上でギズモとして表示されるようになっています。そのため、HoloLensで実行しても特に何も起きません。
 表示されるパラメータはArea(面積)、Bounds(平面の中心から端までの距離)、N(法線)、D(原点から平面までの距離)です。平面推定のパラメータをリアルタイムに変更して確認することができます。


2.RemoteMapping
HoloLensでスキャンしたメッシュデータをPCで実行しているアプリに転送できる。また、転送したデータは保存、読み出しできる。HoloLensからPCにデータを送るには「Send Meshes」と言う。(Nキー押下でもできるはずだがうまく動作しなかった。)。Sキーで転送したデータを保存、Lキーで保存したデータを読み出しできる。保存場所はC:/Users/ユーザー名/AppData/LocalLow/DefaultCompany/HoloToolkit-Unity\roombackup.room

3.SpatialProcessing
SurfaceMeshesとRemoveSurfaceVertixesを使ったメッシュからPlaneへの変換と頂点の削除ができます。起動して15秒くらい経つと、メッシュの平面部分が平面に変換されます。その後、その平面に相当するメッシュの頂点データが削除されます。


4.TapToPlace
AirTapによってCubeを実世界に張り付けることができます。Windows HolographicのWindowの配置で利用されている操作方法を自分で作成したアプリに取り入れることができます。



おわりに

今回はHoloToolkit-Unityの機能のうちSpatialMappingに関するものを紹介しました。HoloLensの機能の中でも現実世界とインタラクションするための非常に重要な機能です。これを使いこなすことでただオブジェクトを表示するだけではない、効果的なMRのアプリが開発できるようになるのではないかと思います。

スポンサーサイト

スポンサーリンク

コメントの投稿

非公開コメント

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。