夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

MRTK3×HoloLensでSpatialMeshを実装する

本日はMRTK3枠です。

〇MRTKv2でのSpatialMeshの実装方法

 MRTKv2ではMRTKProfilerのSpatialAwarenessの項目から空間認識に関する設定を行っていました。

〇MRTK3でのSpatialMeshの実装方法

MRTK3ではシーンごとのProfilerの設定はなくなりました。

redhologerbera.hatenablog.com

また、OpenXRにのっとって提供されておりSpatialAwarenessも同様にOpenXRとして提供されているAPIに準じる形となります。

①シーンのMRTK XR Rigオブジェクトのなかに新規でゲームオブジェクトを作成します。

Camera Offsetの中にMainCameraと同階層になるように作成します。ここではARMeshManagerという名前を付けました。

②作成したゲームオブジェクトにAR Mesh Managerコンポーネントをアタッチします。

これはARFaundationで提供されているコンポーネントになります。

Mesh PrefabはデフォルトでMissingになっています。

③hierarchy上に新規でからのゲームオブジェクトを作成します。

ここではSpatialMeshと名付けています。 SpatialMeshに以下のコンポーネントをアタッチします。

・MeshCollider

・Mesh Renderer

・Mesh Filter

MeshFilterは通常描画するためのメッシュがアタッチされますが、今回の場合動的に生成されるためNoneのままで進めます。

Mesh RendererのマテリアルにMRTK_Wireframeのマテリアルをアタッチします。

これはPackages/MRTK StandardAssets/Materialsにあります。

このマテリアルは任意のマテリアルを使用することができ、ここで指定したマテリアルがSpatialMeshの描画に使用されます。

SpatialMeshオブジェクトをプレファブ化しAR Mesh Manager*のMesh Prefab**にアタッチします。

以上でMRTK3でSpatialMeshを実装することができました。

本日は以上です。