シミュレーション環境
Simulation environment (シミュレーション環境) は、現実世界のスナップショットとして機能するプレハブです。Simulation View (シミュレーションビュー) で、デバイスが検出可能なサーフェスや他のデータに対するコンテンツの反応をプレビューできます。
このセクションでは、シミュレーション環境のさまざまな部分とシミュレーション環境の用途について説明し、シンプルな環境を作成する方法と新しいシミュレーション環境をテストする方法について簡単に示します。
利用可能な環境の検索
Unity MARS では、"Environment" アセットラベルがタグ付けされたプロジェクト内のプレハブから、MARS 内で使用するシミュレーション環境のリストを生成します。Project ウィンドウでこれらの環境をすべて表示するには、l:Environment
を検索します。
シミュレーション環境の構造
前述のように、シミュレーション環境は現実世界のスナップショットとして機能するプレハブです。どのようなシミュレーション環境にも 3 つの主要要素が必要です。
- アセットプレハブに設定された
Environment Label
MARS Environment Settings
コンポーネントPlane Extraction Settings
コンポーネント
シミュレーション対象の環境がアパートの部屋、倉庫、博物館などの閉じた空間の場合は、必要に応じて、環境の操作時に壁の向こうを見やすくする XRay Region
コンポーネントや、環境内のコンテンツと相互作用できるようにする X Ray Collider
コンポーネントを追加します。
シミュレーション環境では、アニメーション化された要素 (回転するファンなど) がサポートされます。シミュレーション環境に含まれる PlayableDirector
は、Unity MARS のシミュレーションビューで使用すると自動的に開始されます。これらの要素が一時的なシミュレーション以外でアニメーション化され続けないようにする (エディターがアイドル状態になれるようにする) には、Director が含まれるゲームオブジェクトに SimulatedPlayable
を追加します。アニメーション化された要素を環境に追加する場合は、この方法をお勧めします。ベストプラクティスとして、アニメーション化された要素については、親を使用して初期オフセットを設定します。
環境の セッションの記録 (ウォークスルーの記録) を作成することで、検出動作のテストを自動化し、さらにワンショットのシミュレーション用に環境から平面を生成できます。
合成平面の生成
MARS は、周囲の環境をスキャンすると平面を生成します。MARS ではこれらの平面を使用して、プロキシの配置やコンテンツの整列、環境の把握を行います。シミュレーション環境を使用すると、データのスキャンのシミュレーションを行い、環境内で合成平面を生成できます。
任意のシミュレーション環境で合成平面を作成する方法は 2 つあります。Unity を設定して現在の環境内での自動レイキャスティングにより環境から平面を自動的に抽出するか、環境内でウォークスルーを作成して自分で平面をスキャンします。
環境から平面を自動的に抽出する
環境から平面を自動的に抽出するには、環境内の Plane Extraction Settings
コンポーネントが含まれるゲームオブジェクトを選択し、Extract Planes ボタンをクリックします。これにより、環境が処理され、合成平面が生成されます。
シミュレーションのウォークスルーから平面を保存する
(環境のオーサリング平面を作成する場合はこの方法を推奨)
プレハブモードでアクティブなシミュレーション環境を調べる場合、Save Planes From Simulation ボタンを使用すると、環境に含まれる生成済み平面をシミュレーションの現在の平面に置き換えることができます。これは、環境に含める平面を、環境全体にわたるランダムなレイキャスティングから作成されたものではなく、シミュレーションの Device View (デバイスビュー) で動的に検出したものにする場合に役立ちます (後述)。
シミュレーションの平面を記録するには、以下の手順に従います。
- 新しい空白のシーンを開き、Plane Visualizer (平面ビジュアライザー) を追加します。
- シミュレーションビューに環境をロードします。
MARS Panel の Environment Hierarchy ドロップダウンで、環境の右側にある矢印をクリックします。これにより、シーンビューにプレハブ単独で環境が開きます。
Device View を起動します。Unity のメインメニューから、Window > MARS > Device View の順に選択し、Device View の再生ボタンをクリックしてシミュレーションを開始します。
- シーンを探索し、すべてのサーフェスを自然な角度から見ます。Unity MARS で平面が検出されると、平面ビジュアライザーにそれらの平面のジオメトリが表示されます。
- (MARS Panel の Environment Hierarchy ではなく) プレハブ単独の Hierarchy で環境ルートを選択し、
MARSEnvironmentSettings
コンポーネントにある Save Planes From Simulation ボタンをクリックします。 - 任意: 平面を調べ、クリーンアップおよび調整します。平面は、GeneratedPlanes ルートの下の SynthesizedObject です。これらのオブジェクトは、デフォルトではシーン選択が無効になっています。
- プレハブを保存します。
シミュレートされたメッシュの作成
シミュレートされた環境を使用して、環境内の Mesh Filter のメッシュを組み合わせて生成したメッシュデータのスナップショットを提供できます。Simulated Mesh Classification
コンポーネントは、オブジェクトとその子を分類タイプでマークします。シミュレーションでは、環境で指定された固有の分類タイプごとに、その分類でマークされたオブジェクトから 1 つ以上のメッシュが生成されます。また、親の階層に Simulated Mesh Classification
コンポーネントがないオブジェクトからは、分類タイプのないメッシュが提供されます。
環境に XRay Region
コンポーネントが含まれている場合、シミュレーションメッシュには、MARS/Room X-Ray
シェーダーでレンダリングされる環境メッシュの外向きの外部三角形は含まれません。三角形が環境の XRay Region
によって定義された内部境界の外側にあり、内部境界の方を向いていない場合、その三角形は除外されます。この動作をオフにするには、Edit > Project Settings > MARS > Simulation の順に選択し、Simulated Meshing セクションで Exclude Exterior X Ray Geometry を無効にします。
現時点では、メッシュの継続的な検出はサポートされていません。
シミュレートされた環境の作成
このセクションでは、シミュレーション環境を作成して設定し、シミュレーションビューで作成済みの環境内を移動する方法について説明します。
MARS への新しいシミュレーション環境の追加
Project ウィンドウで右クリックし、Create > MARS > Simulated Environment Prefab の順に選択します。
作成したプレハブをダブルクリックして生成された環境を開きます。外部から見たときに環境を遮蔽する可能性のある壁を作成しない場合は、(
XRay Region
を含む) Clipping Region ゲームオブジェクトを無効にします。環境に床や構造物などのコンテンツを追加します。
環境のルートを選択し、
PlaneExtractionSettings
コンポーネントの Extract Planes ボタンをクリックして平面を抽出します。MARSEnvironmentSettings
コンポーネントの Add to Synthetic Environments ボタンをクリックします (このボタンが無効になっている場合、環境はロード済みで使用可能な状態です)。
または、環境プレハブを一から設定する場合は、以下の手順に従います。
- 目的に合わせてプレハブをレイアウトします。
- プレハブのルートに、
MARS Environment Settings
コンポーネントとPlane Extraction Settings
コンポーネントを追加します。 - "Environment" アセットラベルをプレハブに割り当てます。この操作は手動で行うか、または Add to Synthetic Environments ボタンをクリックしてアセットラベルを追加し、シミュレーション環境を更新します。
- シミュレーションビューに環境を表示するために、Unity のメインメニューで Window > MARS > Developer > Update Simulation Environments の順に選択します。これは、前の手順で Add to Synthetic Environments ボタンを使用しなかった場合にのみ必要です。
作成したシミュレーション環境のテスト
これで、作成された環境内を移動できるようになりました。移動するには、Device View を起動します。Unity のメインメニューから、Window > MARS > Device View の順に選択して、Device View ウィンドウを開きます。
Simulation ツールバーの環境ドロップダウンで新しい環境を見つけます。環境は、プレハブを含むフォルダーに基づく名前が付けられたサブヘッダーの下にあります。Device View の再生ボタンをクリックして、シミュレーションを開始します。
シーンを探索し、すべてのサーフェスを自然な角度から見ます。シーンに 平面ビジュアライザー が含まれている場合、Unity MARS が平面を検出すると、このビジュアライザーに平面のジオメトリが表示されます。