Apple Vision Pro で EasyAR の機能を使用する方法
このガイドでは、Unity と Xcode のプロジェクト設定を完了し、Apple Vision Pro アプリで Mega クラウドローカライズを含む EasyAR のすべての主要機能を利用できるようにする方法を説明します。
始める前に
- ヘッドセットサンプル の使い方を学習してください
- 開発環境が次の要件を満たしていることを確認してください:
- visionOS 2.0 以上
- 対応する visionOS バージョンの Xcode 16.0 以上、および visionOS simulator のインストール
- 推奨 Unity バージョンは 6000.0.23 以上の LTS バージョン
Apple Inc. にエンタープライズ API 許可を申請する
Apple Vision Pro 上でカメラ映像およびパラメーターを取得するには、entitlement が必要な エンタープライズ API を使用します。そのため、該当 entitlement を含む license ファイルを Apple Inc. に申請する必要があります。この license の申請および使用方法については、Building spatial experiences for business apps with enterprise APIs for visionOS を参照してください。
重要
Apple に申請して取得した entitlement 内の Bundle ID は、EasyAR Sense License Key 作成時に入力したものと完全に一致している必要があります。
visionOS App Mode の選び方
visionOS 上で動作する App は、Immersive Space の場合にのみ ARKit データを取得できます。一方、Unity エディターからビルドされる App は、Immersive Space ではレンダリングフローおよび API の違いに応じて、RealityKit with PolySpatial または Metal Rendering with Compositor Services モードを選択する必要があります。
Immersive Space の定義については、Apple の公式ドキュメントを参照してください。
Unity の App Mode の詳細については、Unity PolySpatial ドキュメントの visionOS Platform Overview を参照してください。
ヒント
App Mode の選択推奨
第一推奨:RealityKit with PolySpatial
visionOS に初めて触れる場合は、このモードを優先することを推奨します。visionOS のシステムレベルのレンダリング特性と深く統合でき、安定性が高く、レンダリング品質も良いことが利点です。 このモードはカスタムコードシェーダー(HLSL/ShaderLab)をサポートしていません。Shader Graph を使用する必要があり、PolySpatial 互換性チェック後の機能(MaterialX に変換される機能)のみをサポートします。
Unity 組み込みの
Standard (Built-in)とLit (URP)シェーダーは公式に事前対応済みで、そのまま使用できます。上級/特定要件:Metal Rendering with Compositor Services
既存の 3D アセットを大量に移行する必要がある場合、またはカスタムシェーダーを必ず使用する複雑なプロジェクトに適しています。 このモードでは Unity がすべてのレンダリングロジックを担当し、システムの RealityKit パイプラインを迂回するため、レンダリング結果は一般に RealityKit より劣り、予期しないレンダリング問題に遭遇する可能性があります。
EasyAR 導入の推奨:
EasyAR の導入を試す際は、必ず先に RealityKit with PolySpatial モードで基本フローを通してください。これにより変数を効果的に切り分け、Metal の低レイヤー対応問題と AR 関連問題が絡み合って原因特定が難しくなることを避けられます。
Unity プロジェクトでの設定
Unity プロジェクトでは次の設定が必要です。
Unity プロジェクトに必要な Package をインポートする
Unity 6(推奨):
com.unity.xr.visionos(2.0.4+)com.unity.polyspatial(2.0.4+)com.unity.polyspatial.visionos(2.0.4+)
重要
すべての Package のバージョン番号は厳密に一致している必要があります。
Unity 6 の使用を優先的に推奨します。一部の初期 Unity 2023.x バージョンは visionOS をまだサポートしていません。
Unity 2022.3:
com.unity.xr.visionos(1.2.3)com.unity.polyspatial(1.2.3)com.unity.polyspatial.visionos(1.2.3)
重要
すべての Package のバージョン番号は厳密に一致している必要があります。
1.3.x バージョンはサポートしていません。必ず 1.2.3 に固定してください。
Build Platform を選択する
メニューバーの File > Build Profiles をクリックし、Platform を visionOS に切り替えます。

Input System を設定する
新しい Input System Package を使用していることを確認します。
メニューバーの Edit > Project Settings > Player をクリックし、Active Input Handling 欄を Input System Package(New) に設定します。
その後、Unity がプロジェクトの再起動を要求する場合があります。Apply をクリックして変更を有効にします。

XR Plug-in Management を設定する
メニューバーの Edit > Project Settings > XR Plug-in Management をクリックし、visionOS タブの Plug-in Providers で Apple visionOS にチェックを入れます。

Apple visionOS プラグインを設定する
メニューバーの Edit > Project Settings > XR Plug-in Management > Apple visionOS をクリックします。
前述の説明に従って適切な App Mode を選択します。

注記
Windowed モードは Immersive Space で動作しないため、AR 機能を使用できません。
Hybrid モードは、開発者が Metal と RealityKit モードを手動で切り替える必要があることを意味します。使用方法が比較的複雑なため、推奨しません。詳細は Unity 公式のこのモードに関する説明 を参照してください。
続いて同じページで次の変更を行います。
World Sensing Usage Description 欄に説明文を追加します。
Metal Immersion Style を Mixed に設定します。
Reality Kit Immersion Style を Mixed に設定します。
IL2CPP Large Exe Workaround にチェックを入れます。

[RealityKit モードのみ必要] TextMesh Pro Essentials をインポートする
メニューバーの Edit > Project Settings > TextMesh Pro > Import TMP Essentials をクリックします。

注記
現在、RealityKit with PolySpatial モードでは TextMesh Pro テキストのみがサポートされます。インポートしない場合、文字をレンダリングできません。
[RealityKit モードのみ必要] PolySpatial 関連設定
メニューバーの Edit > Project Settings > PolySpatial をクリックし、このページで次の変更を行います。
Default Volume Camera Window Config を
Default Unbounded Configurationに設定します。Auto-Create Volume Camera にチェックを入れます。

別の Default Volume Camera Window Config を指定する必要がある場合、その Mode が Unbounded であることを必ず確認してください。

シーン内に Volume Camera が存在する場合は削除します。

警告
World Transformの値がidentityではないVolume Cameraはサポートしていません。- 特別な理由により、シーンに唯一のカスタム
Volume Cameraを追加する必要がある場合は、必ず次の条件を満たしてください。- その
World Transformをidentityに設定します。 - その
Volume Camera Window ConfigurationのModeをUnboundedに設定します。 - Unity 公式ドキュメントにおける意味と用途を完全に理解したうえで使用します。
- その
[Mega 使用時] Location Usage Description を追加する
注意
EasyAR 設定で Location 権限を有効にしている場合(Mega 機能を使用する場合)、権限説明情報を追加する必要があります。そうしないと Build は失敗します。
現在、Unity の Project Settings > Player > visionOS タブには Location Usage Description フィールドが表示されないため、以下の手順で設定してください。
- プラットフォームタブを切り替える:タブを一時的に iOS に切り替えます。
- 説明を入力する:Location Usage Description 欄に必要な権限用途説明を入力します。
- visionOS に戻す:タブを visionOS に戻します。先ほど入力した設定は自動的に保持され、有効になります。

Xcode プロジェクトでの設定
Unity でビルドして得られた Xcode プロジェクトでは、次の設定が必要です。
カメラデータ entitlement を設定する
申請して取得した
Enterprise.licenseファイルを Xcode プロジェクトファイルのディレクトリにコピーします。
Xcode プロジェクトファイルのディレクトリにある
Enterprise.licenseを Xcode プロジェクトにドラッグします。
Info.plist を変更してアプリがファイルを保存および転送できるようにする
アプリ内で EIF を録画し、visionOS のファイル App を通じてコンピューターまたは他のデバイスへ転送する必要がある場合、Info.plist に次のフィールドを追加して変更する必要があります。
LSSupportsOpeningDocumentsInPlaceを追加し、値をtrueに設定します。UIFileSharingEnabledを追加し、値をtrueに設定します。

ヒント
フィールドを追加した後、Xcode 画面上に表示される Key は手動で追加した文字列と異なります(たとえば LSSupportsOpeningDocumentsInPlace と入力しても Supports opening documents in place と表示されます)。これは正常です。