MRが楽しい

MRやVRについて学習したことを書き残す

MRTKを用いてSpatial Mappingによる空間認識を利用する

本日は HoloLens と MRTK の利用手順枠です。
MRTKを用いてSpatial Mappingによる空間認識を設定する方法を記事にします。

プロジェクトとシーンの準備

以下の記事を元にHoloLens(WindowsMR)プロジェクトを作成します。
bluebirdofoz.hatenablog.com

2019/4/13現在、MRTK 2017 の最新バージョンは 2017.4.3.0 です。
f:id:bluebirdofoz:20190414162238j:plain

Capabilityの設定

HoloLens で空間認識を利用する場合、Spatial Perception の Capability を設定する必要があります。
最新の MRTK では Apply Mixed Reality Project Settings を実行した時点で Capability が自動的に付与されます。

もし Spatial Mapping が正常に動作しない場合があれば、以下の手順で Capability が正常に設定されているか確認します。
メニューから MixedRealityToolkit -> Configure -> Apply UWP Capability Settings を選択します。
f:id:bluebirdofoz:20190414162248j:plain

[Spatial Perception]の Capability にチェックされていることを確認します。
チェックされていなければ、チェックを行って[Apply]ボタンをクリックします。
f:id:bluebirdofoz:20190414162301j:plain

SpatialMappingの追加

Assets の HoloToolkit/SpatialMapping/Prefabs フォルダを開きます。
SpatialMapping.prefab があるので、これを Hierarchy にドラッグします。
f:id:bluebirdofoz:20190414162315j:plain

SpatialMapping オブジェクトが追加できました。
f:id:bluebirdofoz:20190414162327j:plain

SpatialMapping には以下のスクリプトが付属していて、設定値を変えることでパフォーマンスや見た目などを調整できます。

・SpatialMappingObserver
 - TrianglesPerCubicMeter
  →1立方メートルあたりに作成する三角形の数
 - TimeBetweenUpdates
  →空間マッピングの更新間の待機時間(秒)
 - ObserverVolumeType
  →空間の形状タイプを指定します
   AxisAlignedBox:軸合わせされた立方体
   OrientedBox:指定方向に軸合わせされた立方体(Orientationで指定)
   Sphere:球体
 - Extents
  →認識範囲の大きさ(メートル)
 - Origin
  →認識範囲の原点位置
 - Orientation
  →OrientedBoxの場合に指定する軸方向
・SpatialMappingManager
 - PhysicsLayer
  →SpatialMappingに割り当てる物理レイヤーの番号
 - SurfaceMaterial
  →SpatialMappingの見た目を指定するマテリアル
   HoloToolkit/SpatialMapping/Materials フォルダにサンプルマテリアルがある
 - AutoStartObserver
  →空間認識を自動的開始するか否か
 - DrawVisualMeshes
  →SpatialMappingを表示するか否か
 - CastShadows
  →SpatialMappingを元に影を描写するか否か
・ObjectSurfaceObserver
 - RoomModel
  →UnityEditorで動作確認する場合にサンプルとして使用する部屋モデル
 - SimulatedUpdatePeriodInSeconds
  →UnityEditorで動作確認する場合の更新イベントの発生間隔(秒)
   RoomModelのモデルが利用されるため、実際には更新されない
   負の値を入力した場合、更新イベントは発生しない

HoloLensへのアプリのインストール

以下の手順に従ってアプリを HoloLens にインストールします。
bluebirdofoz.hatenablog.com

動作確認

HoloLens上でアプリを起動します。
壁や床などを見ると、認識した物体に白いラインでメッシュが貼られているのが確認できます。
f:id:bluebirdofoz:20190414162346j:plain