拡張現実 (AR) には、VR や従来のリアルタイム 3D アプリケーションと比較すると、デザイン上の新しい課題があります。定義上、拡張現実 (AR) アプリケーションは、ユーザーの周りの現実世界にコンテンツを重ね合わせます。現実世界にオブジェクトを配置するには、まず、どこに配置するかを決めなければなりません。例えば、物理的な壁に仮想の絵画を置く場合があります。仮想の鉢植えを物理的なテーブルや床に置くこともあるでしょう。AR アプリケーションは、平面の位置や、物体、人、顔などの検出といった、周辺環境に関する情報をユーザーのデバイスから受け取り、優れたユーザー体験を生み出すためにこれらの情報をどのように使用するかを決定します。
Unity で典型的な AR シーンを開くと、シーンや Hierarchy ビューにあまり多くの 3D オブジェクトはありません。代わりに、シーン内のほとんどのゲームオブジェクトによって、アプリケーションの設定やロジックが定義されます。3D コンテンツは通常、プレハブとして作成され、AR 関連のイベントに応じてランタイムにシーンに追加されます。

Unity エディターでの一般的な AR シーン
基本的な AR シーンには、以下のゲームオブジェクトとコンポーネントが含まれます。
XR Interaction Toolkit がインストールされている場合、AR アプリケーションの XR Origin オプションは XR Origin (AR) に変わり、ハンドヘルドコントローラーとツールキットコンポーネントを表現するためのゲームオブジェクトが追加されます。これはシーン内のオブジェクトとのインタラクションに必要です。
ヒント:
これらのセッションゲームオブジェクトに加えて、アプリケーションが使用する AR の各タイプの特徴に対応する、AR マネージャーのコンポーネントが必要です。
XR シーンの設定方法については、XR シーンの設定を参照してください。
AR アプリケーション作成について、シーンのセットアップなども含む詳細は、AR Foundation パッケージのドキュメントを参照してください。
Unity で AR アプリケーションをビルドするには、サポートする予定のデバイスの XR プロバイダープラグインと併せて、AR Foundation パッケージをインストールします。Apple Vision Pro デバイス用の AR/MR アプリケーションを開発するには、PolySpatial visionOS パッケージも必要です。Unity は、Unity Mars や XR Interaction Toolkit などの追加パッケージを提供し、AR 体験をより簡単に、かつ短時間で開発できるようにしています。
Unity がサポートする AR プロバイダープラグインには以下が含まれます。
XR Plug-in Management システムを使用してこれらのプラグインを 1 つ以上追加し、有効にします。手順については、XR プロジェクトの設定を参照してください。
注意プラットフォームやデバイスによっては、OpenXR と併せて追加のパッケージのインストールが必要となる場合があります。例えば、HoloLens 2 用の AR アプリケーションをビルドするには、Microsoft の Mixed Reality (複合現実) OpenXR プラグインをインストールする必要があります。
AR Foundation パッケージは、Unity での AR 開発をサポートします。
AR Foundation により、マルチプラットフォームの AR アプリケーションを Unity で作成できるようになります。AR Foundation プロジェクトでは、対応するマネージャーコンポーネントをシーンに追加することで、有効にする AR 機能を選択します。AR デバイスでアプリケーションをビルドして実行する場合、AR Foundation は、プラットフォームのネイティブ AR SDK を使用してこれらの機能を有効にします。そのため、一度作成すれば、世界の主要な AR プラットフォームにデプロイできます。
デバイスは、考えられる AR 機能すべてをサポートしなくても、AR 対応にすることができます。使用可能な機能は、デバイスプラットフォームと、その特定のデバイスに備わっている機能の両方に依存します。例えば Google の Android 用 AR プラットフォームである ARCore は、現在のところボディトラッキングをサポートしていません。そのため、Android プラットフォーム用にアプリケーションをビルドする場合は、ボディトラッキングを使用できません。同じプラットフォームでも、デバイスによって機能が異なることもあります。例えば、特定のデバイスモデルでは、世界方向のカメラで AR をサポートできますが、ユーザー方向のカメラでサポートできない場合があります。
AR Foundation の詳細については、AR Foundation パッケージのドキュメントを参照してください。
Apple Vision Pro デバイスの拡張現実 (AR) および複合現実 (MR) 開発には、visionOS プラットフォームに Unity PolySpatial アーキテクチャを実装するパッケージのセットが必要になります。
PolySpatial アーキテクチャは、Unity ゲームまたはアプリケーションを、2 つの論理的な部分、つまりシミュレーションコントローラーとプレゼンテーションビューに分割します。シミュレーションコントローラーは、MonoBehaviour やその他のスクリプト、UI 動作、アセット管理、物理演算など、アプリケーション固有のロジックをすべて実行します。ゲームの動作のほとんどすべてがシミュレーションに含まれます。プレゼンテーションビューは入力と出力の両方を処理します。これには、ディスプレイへのレンダリングやオーディオなど他の形式への出力が含まれます。ビューは、ピンチジェスチャや頭の位置など、OS から受け取った入力をシミュレーションに送信して、各フレームを処理します。各シミュレーションステップの後、ビューは画面へのピクセルのレンダリングや、オーディオバッファのシステムへの送信などを行い、表示を更新します。
visionOS プラットフォームでは、シミュレーション部分は Unity Player で実行され、プレゼンテーションビューは Apple の RealityKit で描画されます。シミュレーション内で可視化されているすべてのオブジェクトについて、対応するオブジェクトが RealityKit シーングラフに存在します。
注意: PolySpatial は、Apple Vision Pro の拡張複合現実 (AR/MR) にのみ使用されます。VR およびウィンドウ化されたアプリケーションは、Unity Playerで実行されます (Apple Metal グラフィックス API を使用します)。Unity Player によりレンダリングも制御されます。
Unity Mars は、AR アプリケーションを作成するための専用のオーサリングツールと、優れたワークフローを提供します。
Unity Mars には互換性のあるライセンスが必要です。Unity Pro、Unity Enterprise、Unity Industrial Collection プランには、Mars が含まれています。別のプランを利用している場合は、別途 Unity Mars のライセンスを取得することもできます。詳細は Unity Mars を参照してください。
Unity XR Interaction Toolkit には、AR インタラクションと VR インタラクションの両方をビルドするためのツールがあります。XR Interaction ツールキットによって提供される AR 機能としては、次のような機能があります。