XR Simulation 環境
XR Simulation 環境は、環境のジオメトリと、シミュレーション動作を制御する事前設定済みのコンポーネントが含まれているプレハブです。AR Foundation は、あたかも XR Simulation 環境が物理空間であるかのように、XR Simulation 環境内の トラッカブル (平面、画像、点群など) を検出します。
XR Simulation 環境の作成と編集
XR Environment ビュー を使用して、XR Simulation 環境プレハブを作成、複製、編集できます。
XR Environment ビューにある環境の作成/編集のためのドロップダウン
環境プレハブの作成または編集
- Window > XR > AR Foundation > XR Environment の順に移動して XR Environment ビューを開きます。
- (任意) 環境を複製または編集する場合は、環境ドロップダウンで目的の環境を選択します。
- XR Environment オーバーレイの右端にある、環境の作成/編集のためのドロップダウンをクリックします。
- 以下のいずれかのオプションをクリックします。
- Create environment: デフォルトの XR Simulation 環境をテンプレートとして使用して、新しい環境を作成し、保存します。
- Duplicate environment: アクティブな環境のコピーを作成し、保存します。
- Edit environment: アクティブな環境を編集のために プレハブモード で開きます。
既存のプレハブへの環境の変換
- 任意のプレハブを編集のために プレハブモード で開きます。
- プレハブのルートゲームオブジェクトに Simulation Environment コンポーネント を追加します。XR Simulation の要件は、プレハブが 1 つだけルートゲームオブジェクトを持っていることです。
- アプリケーションの機能をテストする際の必要に応じて、Simulated Tracked Image コンポーネント など、追加の XR Simulation コンポーネントを任意で追加することができます。
- プレハブを保存します。
- Assets > Refresh XR Environment List の順に選択して、XR Environment ビューの環境リストを更新します。
Tip
XR Simulation 環境はプレハブであるため、Unity エディターの標準ツールを使用して作成および編集できます。プレハブが XR Simulation 環境と見なされるための唯一の要件は、ルートゲームオブジェクトに Simulation Environment コンポーネント がアタッチされていることです。
コンポーネントとシェーダー
AR Foundation には、XR Simulation 環境を作成するために使用できる以下のコンポーネントとシェーダーが含まれています。
コンポーネント/シェーダー | 説明 | |
Simulation Environment コンポーネント | プレハブのルートゲームオブジェクトに追加して、そのプレハブを XR Simulation 環境として指定します。XR Simulation により、自動的に環境プレハブが検出され、XR Environment ビューの環境リストに追加されます。 | |
Simulated Tracked Image コンポーネント | 画像トラッキング目的で XR Simulation 環境内のゲームオブジェクトに追加して、そのゲームオブジェクトを追跡対象シミュレーション画像として指定します。 | |
X レイレンダリング | X Ray Region コンポーネントと X レイシェーダーを XR Simulation 環境に追加すると、カメラが外壁に邪魔されるのを防止するのが簡単になります。 | |
X Ray Region コンポーネント | シーン内の X レイシェーダー用のアクティブな領域を定義します。 | |
X レイシェーダー | 外壁のサーフェスを無視し、カメラで壁の外側から内側の部屋を簡単に表示できるようにします。 |
Simulation Environment コンポーネント
プレハブのルートゲームオブジェクトに Simulation Environment コンポーネントを追加すると、そのプレハブが XR Simulation 環境として指定されます。このコンポーネントのプロパティは、以下のように Inspector ウィンドウで表示して編集できます。
Simulation Environment コンポーネント
プロパティ | 説明 |
---|---|
Camera Starting Pose | 再生モードに入ったときに、環境内でカメラをスポーンする位置と回転。このポーズは、XR Environment ビュー内でカメラを表す青色の線で描画されます。 |
Camera Movement Bounds | 環境内で移動可能な領域。 |
Default View Pose | XR Environment ビューで環境をプレビューする際の、デフォルトのシーンカメラの位置と向き。 |
Default View Pivot | XR Environment ビューで環境をプレビューする際の、シーンカメラのデフォルトのピボットの位置。 |
Default View Size | XR Environment ビューで環境をプレビューする際の、デフォルトのシーンカメラの軌道半径。 |
Render Settings | 環境をレンダリングするための RenderSettings オブジェクト。 |
Exclude From Selection UI | XR Environment ビュー の環境ドロップダウンメニューにこの環境が表示されないようにします。 |
Tip
他の環境の基となっているが、それ自体を使用するべきではないベースプレハブがプロジェクト内にある場合、Exclude From Selection UI を true
に設定します。このオプションを有効にすると、XR Environment ビューの環境ドロップダウンにそのプレハブが表示されなくなります。
Simulated Tracked Image コンポーネント
XR Simulation 環境内のゲームオブジェクトに Simulated Tracked Image コンポーネントを追加すると、そのゲームオブジェクトが 追跡対象シミュレーション画像 として指定されます。追跡対象シミュレーション画像は、AR Foundation の 画像トラッキング 機能のシミュレーションを行うものです。XR Simulation 環境内では、実際のデバイスと同じように 検出された画像に対応 できます。
Simulated Tracked Image コンポーネント
XR Simulation では、参照画像ライブラリ にテクスチャを含めていない場合でも、環境内で追跡対象シミュレーション画像すべてを検出して追跡できます。追跡対象シミュレーション画像は、必要に応じて参照画像ライブラリにバインドできます。それには、参照画像ライブラリでも使用するテクスチャアセットを参照するように、Simulated Tracked Image コンポーネントの Image フィールドを設定します。
参照画像ライブラリに含まれていない画像が XR Simulation で検出された場合、対応する ARTrackedImage トラッカブルには完全に初期化された referenceImage は含まれません。その代わり、referenceImage の guid
プロパティは 0 に設定され、texture
は null
に設定されます。
プロパティ | 説明 |
---|---|
Image | 画像の Texture2D アセットへの参照。必要に応じて、参照画像ライブラリ に含まれているテクスチャアセットに一致させることもできます。 |
Image Physical Size Meters | 環境内の画像のサイズ (メートル単位)。シミュレーションされたデバイスで画像を検出できる距離に影響します。この値は、現実世界における画像の想定サイズに設定します。 |
Simulated Tracked Image の設定
XR Simulation で画像を適切に追跡するには、追跡対象シミュレーション画像のトランスフォームの向きを設定する際に、ローカルの Y 軸 (緑の矢印) が画像の面法線と同じ方向を指す (画像平面に対して垂直に、画像の前方である正の方向を指す) ように設定する必要があります。同様に、追跡対象画像の Z 軸 (青の矢印) は、上方である画像の上部を指すようにする必要があります。参考として、以下の追跡対象シミュレーション画像の例を参照してください。
追跡対象シミュレーション画像の例。緑の矢印が前方を、青の矢印が上方を指しています。
環境内で追跡対象シミュレーション画像を可視化するには、追跡対象シミュレーション画像の子ゲームオブジェクトとしてクアッドを作成することをお勧めします。クアッドを X 軸に沿って 90 度回転させ、スケールを Simulated Tracked Image コンポーネントの Image Physical Size Meters プロパティに一致させます。この追跡対象シミュレーション画像の例で使用しているゲームオブジェクトの階層は、上のスクリーンショットのとおりです。
Note
XR Simulation 環境で追跡対象シミュレーション画像を視覚的に表示するかどうかは任意です。XR Simulation で画像の検出と追跡に使用されるのは Simulated Tracked Image コンポーネントだけです。環境内でレンダリングされたテクスチャ化メッシュは、検出と追跡には使用されません。
X-Ray レンダリング
XR Simulation には、プレイヤーが環境内を移動するときにカメラが外壁を透視できるようにする特殊な X-Ray (エックス線) シェーダーが用意されています。このエックス線透視を使用すると、プレイヤーが動き回るときにカメラビューが遮られることを防ぐため、アプリケーションのテストが簡単になります。
X-Ray シェーダーを使用して表示した寝室の環境
X-Ray レンダリングを有効にするには、外壁、天井、フロアで Simulation/Room X-Ray
シェーダーを使用します。また、環境内のゲームオブジェクトに X Ray Region コンポーネント を追加する必要もあります。
X-Ray シェーダー
AR Environment ビューで外壁を無視するには、囲まれた環境 (部屋など) の壁と天井に Simulation/Room X-Ray
シェーダーを追加します。Room X-Ray シェーダーは、Material アセットの Shader メニューの Simulation の下にあります。
シミュレーションシェーダーメニュー
Note
Legacy バージョンまたは URP バージョンのシェーダーを直接選択する必要はありません。Simulation/Room X-Ray
シェーダーは、必要に応じて URP バージョンまたは Legacy ビルトインバージョンにフォールバックします。
XR Simulation サンプル環境には、X-Ray シェーダーを使用するマテリアルが含まれています。サンプル環境をインストール 済みの場合、Assets フォルダーの UnityXRContent/ARFoundation/SimulationEnvironments/Common/Materials
に含まれているそれらのマテリアルを使用できます。
X Ray Region コンポーネント
X Ray Region コンポーネントは、X レイシェーダーで使用する情報を定義します。
X Ray Region コンポーネント
プロパティ | 説明 |
---|---|
Floor Height | ローカル座標におけるフロア。 |
Ceiling Height | ローカル座標における天井。 |
Clip Offset | カメラクリップ面がこの領域の中心から前方に移動する距離。 |
View Bounds | X レイクリップ領域のサイズ。 |
Tip
このサンプル環境で、X Ray Region コンポーネントがアタッチされているゲームオブジェクトは、"ClippingRegion" という名前です。