Apple Vision ProコンテンツをUnityで開発

Unityを用いてApple Vision Proのアプリやコンテンツを作る手順についてまとめました。
visonOSのシミュレーターで動作確認するところまでまとめています。

基本は公式マニュアルの通りではありますが、ところどころ躓くところもあったので備忘録としてスクショ多めで。

参考記事

名称

Unityで制作できるアプリのタイプの名称について一旦整理。

要件

要件はこちら

  • Xcode 15.2
  • Apple SiliconのMac
  • Unity 2022.3.18f1 以降
  • Unityのモジュールは「visionOS Build Support」と「iOS Build Support」の両方

環境構築とセットアップ

まずはXcode 15.2を入れる。

visionOSにチェック入れる。

Unityのバージョンは2022.3.18f1以降
2023は現時点ではLTSではないので2022を使う。
テンプレートは2022.3.18f1なので同じバージョンをインストールする。

Appleシリコン版の方をインストールする。

モジュールはvisonOSとiOSの両方を入れる。

1からMRのプロジェクトを作成する場合

パススルーを用いたMixed Reality(PolySpatial MR)のコンテンツを作成する場合の手順です。
VR(Fully Immersive)のコンテンツの場合については次項。

このマニュアルに従って作成する。

まずUnity2022.3.18f1で新規プロジェクト作成。
ビルトインシェーダーでも動作はするがMRのサンプルコンテンツはURPで作られているので特別な理由がなければURPで作るのが良さそう

Project SettingsでXR Plugin Managementをインストーする。

Apple visionOSを有効にする。

Yes

Unityが再起動される。

XR Plug-in ManagementのApple visionOSを開きMixed Realityを選択する。

Yes

このMixed Realityを選択したことで以下の3つのパッケージがインストールされた。
com.unity.polyspatial
com.unity.polyspatial.visionos
com.unity.polyspatial.xr

Usage Descriptionに適当な文章を記入する。

例)
Use hands tracking
Use world sensing

Project ValidationでFixしておく。

プラットフォームをvisionOSに切り替える。

環境構築は以上だが、サンプルシーンを使う場合は Packages > PolyStatial > Sample からインポートする。

インポートしたシーンはこちらにある。

各サンプルシーンの概要はこちら

プロジェクトの作成は以上。

続いて、実機ビルドせずに実行結果をUnityエディタ上で確認できるvisionOSシミュレーター「Play to Device」を設定しておくと便利です。こちらについては記事の後半に記しました。

1からFully Immersiveのプロジェクトを作成する場合

Fully Immersiveのプロジェクト。
つまりMRは使用しない、完全没入のVRのプロジェクトを作成する場合。

こちらのマニュアルに従って進める。

XR Plug-in ManagementのApple visionOSを開くところまでは前項目のMRのときと同様の手順。

Fully Immersiveの場合はここでVirtual Realityの方を選択する。

テンプレートからFully Immersiveアプリを作成する場合

前項目はUnityプロジェクトを1から構築する場合だったが、ここではテンプレートを使用する場合について。

テンプレートのzipを解答しUnityで開く。


プラットフォームをvisionOSに切り替える。

(テンプレートを使った場合はXR Plug-in ManagementのApple visionOSのチェックは既に入っている
(必要なパッケージも既に入っている

メニュー > Tutorial > Show Tutorials を選択。

表示されたウィンドウ内にある各ボタンをクリックすると、VRコンテンツを制作するためのチュートリアルが開始される。

visionOSシミュレーター Play to Device の設定

visionOSのシミュレーターの設定。

こちらのマニュアルを参考に進める。
ディスカッションページはこちら

1. macでの準備

PlayToDeviceHost-1.0.3.zipをダウンロードする。

zipを解凍する。

Xcodeを起動しSimulatorを起動する。(またはComannd+SpaceからSimulatorを実行)

ここでiPhoneのシミュレーターが立ち上がってしまった場合は、アプリ上のメニューからApple Vision Proを選択する。

ダウンロードしたPlayToDeviceHost.appをシミュレーター画面内にドラッグ&ドロップする。

シミュレーター内にインストールされる。

2. Unityでの設定

Play To Deviceウィンドウを開く。

Enabledにする。

3. シミュレーターの実行

visionOSのシミュレーターでPlay To Device Hostアプリを起動する。

待機状態になる。

この状態でUnityでPlayするとシミュレーター側に表示される。

以上。

Unityでのビルド

通常通りのビルドでOKだが、私の環境では以下のエラーが出てしまった。

Building Library/Bee/artifacts/iOS/AsyncPluginsFromLinker failed with output:
UnityEditor.Build.BuildFailedException: Burst compiler (1.8.12) failed running

stdout:
Internal burstc error:
Burst.Compiler.IL.Aot.AotLinkerException: Failed to determine xcode installation path - "xcode-select -p" is XCode installed? xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

こちらの記事を参考に対応しました。
ターミナルに以下のコマンドを実行です。
sudo xcode-select --switch /Applications/Xcode.app

これでエラーなくビルドできるようになりました。

以上!