デバイスのメッシュ オブザーバーの構成 — MRTK2
このガイドでは、Windows Mixed Reality プラットフォーム (HoloLens など) をサポートする、MRTK ですぐに使用できる空間メッシュ オブザーバーの構成について説明します。 Mixed Reality Toolkit によって提供される既定の実装は、WindowsMixedRealitySpatialMeshObserver クラスです。 この記事の多数のプロパティは、他のカスタム オブザーバー実装にも適用されます。
プロファイルの設定
空間認識システムの空間メッシュ オブザーバー プロファイルを構成するときは、次の2つの項目を最初に定義する必要があります。
- 具象オブザーバー型の実装
- このオブザーバーを実行するためにサポートされているプラットフォームの一覧
Note
すべてのオブザーバーは、IMixedRealitySpatialAwarenessObserver インターフェイスを拡張する必要があります。
全般設定
起動の動作
起動の動作により、オブザーバーが最初にインスタンス化されたときに実行を開始するかどうかが指定されます。 次の 2 つのオプションがあります。
- 自動開始 - オブザーバーは初期化後に操作を開始します (既定値)
- 手動開始 - オブザーバーは指示されるまで操作の開始を待機します
手動開始を使用する場合、実行時にコードを使用してそれらを再開および中断する必要があります。
更新間隔
空間メッシュ データを更新するようにプラットフォームに要求する時間間隔 (秒)。 一般的な値は、0.1 秒から 5.0 秒の間です。
Is Stationary Observer (固定オブザーバー)
オブザーバーを固定状態のままにするか、ユーザーと共に移動して更新するかを示します。 True の場合、監視エクステントによって定義されたボリュームを持つオブザーバーのシェイプは、開始時に元の状態のままになります。 false の場合、オブザーバー空間はシェイプの原点としてユーザーの頭の後に続きます。
Is Stationary Observer、Observer Shape*、および Observation Extents プロパティで定義されているように、オブザーバー空間外の物理的な領域に対して、メッシュ データは計算されません。
オブザーバーのシェイプ
オブザーバーのシェイプは、メッシュ オブザーバーがメッシュを観察するときに使用するボリュームの種類を定義します。 サポートされているオプションは次のとおりです。
- Axis Aligned Cube (軸に沿ったキューブ) - アプリケーションの起動時に決定されたとおりに、ワールド座標系の軸に沿って固定された四角形の形状。
- User Aligned Cube (ユーザーに沿ったキューブ) - ユーザーのローカル座標系に合わせて回転する四角形の形状。
- 球 - ワールド空間の原点に中央がある球のボリューム。 監視エクステント プロパティの X 値が、球の半径として使用されます。
監視エクステント
監視エクステントは、メッシュが監視される監視ポイントからの距離を定義します。
物理設定
物理レイヤー
Unity の物理システムおよび RayCast システムと対話するために空間メッシュ オブジェクトが配置される物理層。
Note
Mixed Reality Toolkit では、空間認識オブザーバーで使用するために、既定でレイヤー 31 が予約されます。
法線の再計算
メッシュ オブザーバーが、観察後にメッシュの法線を再計算するかどうかを指定します。 この設定を使用して、メッシュで返されないプラットフォーム上の有効な正規データを含むメッシュをアプリケーションが確実に受信するようにすることができます。
詳細設定のレベル
詳細レベル
空間メッシュ データの詳細レベル (LOD) を指定します。 現在定義されている値は、粗、細、カスタムです。
粗 - アプリケーションのパフォーマンスへの影響を小さくし、ナビゲーション/プレーン検索に適しています。
中 - バランス取れた設定であり、大規模な機能、床、壁と、遮蔽の詳細の両方の環境を継続的にスキャンするエクスペリエンスに便利な場合がよくあります。
細 - 多くの場合、アプリケーションオンパフォーマンスにより多くの影響を及ぼし、遮蔽メッシュに最適なオプションです。
カスタム - アプリケーションで三角形/立方メートル プロパティを指定して、アプリケーションが空間メッシュ オブザーバーの精度とパフォーマンスの影響を調整できるようにする必要があります。
Note
すべての三角形/立方メートルの値がすべてのプラットフォームで使用できるとは限りません。 カスタム LOD を使用する場合は、実験とプロファイリングを行うことを強くお勧めします。
立方メートルあたりの三角形
詳細度のプロパティにカスタムを使用する場合に有効であり、空間メッシュの三角形の密度を指定します。
ディスプレイの設定
表示オプション
オブザーバーによって空間メッシュを表示する方法を指定します。 サポートされる値は次のとおりです。
- なし - オブザーバーはメッシュをレンダリングしません
- 表示 - メッシュ データは表示される素材を使用して表示されます
- オクルージョン - メッシュ データはオクルージョン マテリアルを使用してシーン内で遮断項目になります
空間オブザーバーはコードを使用して実行時に再開/中断できます。
警告
Display オプションをなしに設定しても、オブザーバーの実行は停止されません。 すべてのオブザーバーを停止する場合、アプリケーションで、CoreServices.SpatialAwareness.SuspendObservers()
を使用してすべてのオブザーバーを中断する必要があります。
表示される素材
空間メッシュを視覚化するときに使用する素材を示します。
オクルージョン素材
空間メッシュがホログラムをオクルージョンするために使用される素材を示します。