空間オブジェクト メッシュ オブザーバー — MRTK2
Unity エディターで環境メッシュ データを提供する便利な方法は、SpatialObjectMeshObserver
クラスを使用することです。 空間オブジェクト メッシュ オブザーバーは、空間認識システムのエディター専用データ プロバイダーであり、空間メッシュを表現する 3D モデル データのインポートを可能にします。 空間オブジェクト メッシュ オブザーバーの一般的な用途の 1 つは、Microsoft HoloLens を介してスキャンされたデータをインポートして、エクスペリエンスがさまざまな環境にどのように適応するかを Unity 内からテストすることです。
作業の開始
このガイドでは、空間オブジェクト メッシュ オブザーバーを設定する手順について説明します。 この機能を有効にするには、3 つの重要な手順があります。
- 空間オブジェクト メッシュ オブザーバーを空間認識システム プロファイルに追加します。
- 環境メッシュ データ オブジェクトを設定します。
- メッシュ オブザーバー プロファイルの残りのプロパティを構成する
空間オブジェクト メッシュ オブザーバーのプロファイルを設定する
目的の Mixed Reality ツールキット構成プロファイルを選択するか、シーン内の Mixed Reality ツールキット オブジェクトを選択します。
[空間認識システム] タブを開くか展開します。
[空間オブザーバーの追加] ボタンをクリックします。
SpatialObjectMeshObserver 型を選択します。
目的の空間メッシュ オブジェクトを選択します。 既定では、オブザーバーはサンプル モデルで構成されています。 このモデルは Microsoft HoloLens を使用して作成されていますが、新しいスキャン メッシュ オブジェクトを作成することもできます。
空間オブジェクト メッシュ オブザーバー プロファイルに関する注意事項
空間オブジェクト メッシュ オブザーバーは 3D モデルからデータを読み込むため、以下に示すメッシュ オブザーバーの標準設定は無視されます。
更新間隔
空間オブジェクト メッシュ オブザーバーは、モデルが読み込まれるときに、すべてのメッシュをアプリケーションに送信します。 更新間の時間差はシミュレートされません。 アプリケーションでは、myObserver.ClearObservation()
および myObserver.Resume()
を呼び出すことによって、メッシュ イベントを再受信できます。
固定オブザーバー
空間オブジェクト メッシュ オブザーバーでは、すべての 3D メッシュ オブジェクトが固定と見なされ、原点は無視されます。
オブザーバーの形状と範囲
空間オブジェクト メッシュ オブザーバーは、3D メッシュ全体をアプリケーションに送信します。 オブザーバーの形状と範囲は考慮されません。
詳細レベルと三角形/キューブ メーター
オブザーバーは、メッシュをアプリケーションに送信するときに、3D モデルの LOD の検索を試みません。
環境スキャンの取得
このセクションでは、空間オブジェクト メッシュ オブザーバーで使用する空間メッシュ オブジェクト ファイルを作成および収集するための追加情報を示します。
Windows デバイス ポータル
Windows デバイス ポータルを使用して、Microsoft HoloLens デバイスから .obj ファイルとして空間メッシュをダウンロードできます。
- HoloLens を装着し、目的の環境を歩いて表示することでスキャンします。
- Windows デバイス ポータルを使用して HoloLens に接続します。
- [3D ビュー] ページに移動します。
- [空間マッピング] セクションの [更新] ボタンをクリックします。
- [空間マッピング] セクションの [保存] ボタンをクリックして、obj ファイルを PC に保存します。
Note
HoloToolkit の .room ファイル
多くの開発者が、これまで HoloToolkit を使用して環境をスキャンし、.room ファイルを作成していました。 Mixed Reality ツールキットでは、Unity でこれらのファイルを GameObjects としてインポートし、オブザーバーで空間メッシュ オブジェクトとして使用できるようになりました。