MRが楽しい

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

SpatialMappingのデータにNavMeshを適用する その1

本日は技術調査枠です。
実を言うと、おいかけっこアプリについて今月中には一旦コミットとしてしまいたいと考えています。
そして、一つだけ本アプリで試しておきたい技術があります、NavMesh です。
今回はその NavMesh の技術について学習します。
以下の記事を参考にします。
tarukosu.hatenablog.com

以下の NavMeshComponents リポジトリをサンプルとして利用します。
github.com

最終的な目標は、おいかけっこアプリへの反映を行うことです。
しかし、まずは技術の理解のため、新プロジェクトを作成して記事に沿う形で進めます。

まずは新規プロジェクトを作成します。
f:id:bluebirdofoz:20170809013021j:plain

次に、HoloToolkitをインポートします。
f:id:bluebirdofoz:20170809013032j:plain

Main Camera を削除し、以下のプレハブを追加します。
・HoloLensCamera
・InputManager
・CursorWithFeedback
・SpatialMapping
f:id:bluebirdofoz:20170809013042j:plain

NavMeshComponents に入っている以下のスクリプトをインポートします。
・LocalNavMeshBuilder.cs
・NavMeshSourceTag.cs
f:id:bluebirdofoz:20170809013103j:plain

NavigationManager オブジェクトを作成し、先ほどの LocalNavMeshBuilder.cs をアタッチします。
f:id:bluebirdofoz:20170809013115j:plain

新たに SpatialMappingNavMesh.cs というスクリプトファイルを作成します。
f:id:bluebirdofoz:20170809013128j:plain
コード内容は参考記事の SpatialMappingNavMesh.cs を参照ください。
SpatialMapping のSurfaceオブジェクトにNavMeshSourceTagをアタッチする処理を行います。

作成した SpatialMappingNavMesh.cs を NavigationManager オブジェクトにアタッチします。
f:id:bluebirdofoz:20170809013138j:plain

Inspector タブの SpatialMapping に SpatialMapping オブジェクトを設定します
f:id:bluebirdofoz:20170809013148j:plain

メニューから Windows -> Navigation で Navigation タブを開きます。
その中の Agents 設定を開き、移動物の大きさや乗り越えられる高さの設定を行います。
f:id:bluebirdofoz:20170809013159j:plain

設定を行い、シーンを再生してみると……。
f:id:bluebirdofoz:20170809013215j:plain
移動可能な範囲が水色でマッピングされました。成功です。
次回は NavMesh を用いたキャラクタの移動を試してみます。
bluebirdofoz.hatenablog.com