Version: Unity 6.0 (6000.0)
言語 : 日本語
XR パッケージ
Unity の VR 開発

Unity の AR 開発

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

Unity で典型的な AR シーンを開くと、シーンや Hierarchy ビューにあまり多くの 3D オブジェクトはありません。代わりに、シーン内のほとんどのゲームオブジェクトによって、アプリケーションの設定やロジックが定義されます。3D コンテンツは通常、プレハブとして作成され、AR 関連のイベントに応じてランタイムにシーンに追加されます。

Unity の一般的な AR シーン

Unity エディターでの一般的な AR シーン

AR シーンの基本要素

基本的な AR シーンには、以下のゲームオブジェクトとコンポーネントが含まれます。

XR Interaction Toolkit がインストールされている場合、AR アプリケーションの XR Origin オプションは XR Origin (AR) に変わり、ハンドヘルドコントローラーとツールキットコンポーネントを表現するためのゲームオブジェクトが追加されます。これはシーン内のオブジェクトとのインタラクションに必要です。

ヒント:

  • GameObject > XR メニューを使って、これらのゲームオブジェクトと関連コンポーネントをシーンに追加します(Hierarchy ウィンドウで右クリックすると、同様にメニューを開くことができます)。
  • 1 つのシーンで複数のアクティブな XR Origin を使用することはできません。

これらのセッションゲームオブジェクトに加えて、アプリケーションが使用する AR の各タイプの特徴に対応する、AR マネージャーのコンポーネントが必要です。

XR シーンの設定方法については、XR シーンの設定を参照してください。

AR アプリケーション作成について、シーンのセットアップなども含む詳細は、AR Foundation パッケージのドキュメントを参照してください。

AR パッケージ

Unity で AR アプリケーションをビルドするには、サポートする予定のデバイスの XR プロバイダープラグインと併せて、AR Foundation パッケージをインストールします。Apple Vision Pro デバイス用の AR/MR アプリケーションを開発するには、PolySpatial visionOS パッケージも必要です。Unity は、Unity MarsXR Interaction Toolkit などの追加パッケージを提供し、AR 体験をより簡単に、かつ短時間で開発できるようにしています。

AR プロバイダーのプラグイン

Unity がサポートする AR プロバイダープラグインには以下が含まれます。

XR Plug-in Management システムを使用してこれらのプラグインを 1 つ以上追加し、有効にします。手順については、XR プロジェクトの設定を参照してください。

注意プラットフォームやデバイスによっては、OpenXR と併せて追加のパッケージのインストールが必要となる場合があります。例えば、HoloLens 2 用の AR アプリケーションをビルドするには、Microsoft の Mixed Reality (複合現実) OpenXR プラグインをインストールする必要があります。

AR Foundation

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 パッケージのドキュメントを参照してください。

PolySpatial visionOS パッケージ

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

Unity Mars は、AR アプリケーションを作成するための専用のオーサリングツールと、優れたワークフローを提供します。

  • 平易な言語によるオーサリング: “すべての水平面に草を作成する” のような平易な言葉で表現できる簡単なルールを定義することで、アプリケーションのコンテンツがどのようにシーンを拡張するかを、ユーザーのデバイスで検出された AR 機能に基づいて指定できます。
  • プロキシベースのワークフロー: シーンにプロキシを追加して、リアルワールド AR の特徴を表現します。プロキシに条件とアクションを設定して、現実世界で一致するオブジェクトが検出されたときにアプリケーションがどのように反応するかを指定できます。例えば、合致する水平面が検出されるたびにアクティベートされるプロキシを、シーンに追加できます。
  • エディター内シミュレーション: Unity Mars にはシミュレーションモードがあり、あらかじめビルドされたサンプル環境とともに使用して、エディター内で AR ロジックをテストすることができます。
  • カスタマイズ可能なビルディングブロック: Unity Mars には、AR アプリケーションの全部または一部を作成するための、テンプレートやその他のビルディングブロックが用意されています。例えば、トレーニングテンプレートには、トレーニングのために一連のステップを通しでガイドする AR チュートリアルのビルドに使用するための、UI とロジックが用意されています。

Unity Mars には互換性のあるライセンスが必要です。Unity Pro、Unity Enterprise、Unity Industrial Collection プランには、Mars が含まれています。別のプランを利用している場合は、別途 Unity Mars のライセンスを取得することもできます。詳細は Unity Mars を参照してください。

XR Interaction Toolkit

Unity XR Interaction Toolkit には、AR インタラクションと VR インタラクションの両方をビルドするためのツールがあります。XR Interaction ツールキットによって提供される AR 機能としては、次のような機能があります。

  • スクリーンのタッチをジェスチャーイベントにマップする AR ジェスチャーシステム
  • 仮想オブジェクトを現実世界に配置するための AR placement Interactable コンポーネント。
  • 配置、選択、移動、回転、拡大縮小などのオブジェクト操作をサポートする AR Gesture Interactor コンポーネントと Interactable コンポーネント
  • 現実世界に配置された AR オブジェクトをユーザーに知らせる AR アノテーション
XR パッケージ
Unity の VR 開発