tks_yoshinagaの日記

KinectやLeap motion, VRやARなどの技術を使ってやったことのメモとか

はじめようApple Vision Proアプリ開発

0. はじめに

Apple Vision ProのSDKとSimulatorが公開されたので、Swiftのテンプレートプロジェクトをベースに好きな3Dモデルを表示するまでの手順を紹介します。(2023年6月23日現在)
こんな感じのことをやります。

 

1.開発環境

Xcode 15.0 beta2をインストール。インストール時にシミュレーターを選択するタイミングがあるのでvisionOSを選択するタイミングがあるので、合わせてインストールしてください。

2.プロジェクトの作成

まずはプロジェクを作成しましょう。

(1) Xcode 15.0 beta 2を起動

(2) Create New Projectをクリック

(3) visionOSを選択
(4) Appを選択
(5) Nextをクリック

(6) Product Nameを設定

(7) TeamとOrganization Identiferは各自設定
  例:com.YourName

(8) Initial Sceneを選択 (本稿ではVolume。Appleによる詳細はこちら)

(9) Immersive Spaceを選択(本稿ではMixed。Appleによる詳細はこちら)

(10) Nextをクリックし、そのままCreate

 

3.プロジェクトの確認

プロジェクトが立ち上がるとリストとソース、そしてプレビューが表示されます。
プレビューを見ると球体とボタンが表示されているはずです。ボタンの機能は以下の通り。
[Enlarge RealityView Content]
クリックすると球が少し大きくなる。

[Show ImmersiveSpace]
AR⇔イマーシブモードで表示するオブジェクトの切り替え。

左のリストの項目で知っておくと良さそうな箇所は以下の3つ。

[ContentView]
ARモードで表示するオブジェクトの登録などを行う。
ボタンの挙動もここに記述されている。

[ImmersiveView]
イマーシブモードで表示するオブジェクトの登録を行う。
※本稿では特に編集したりはしない。

[RealityKitContent]
実際に表示するオブジェクトを管理。

 

4.プロジェクトの編集

テンプレートプロジェクトで表示されている球体を別のオブジェクトに差し替える手順をご紹介します。

(1) RealityKitContent内のPackateをクリック

(2) 画面右上に表示されるOpen In Reality Composer Proをクリック

(3) Reality Composer Proのファイル一覧の中のScene.usdaをダブルクリックで開く。
※ Scene.usdaはARモードで表示するオブジェクト用のシーン。Immersive.usdaはイマーシブモード用。

(4) 画面左のリストからSphereを削除

(5) 画面右上の + から好きなオブジェクトをダブルクリック。(本稿ではEarth)

余談:
Appleが提供するオブジェクトではなくご自身が持っている3Dオブジェクト(*.usdz)ファイルを表示したい場合にはProjectBrowser (Scene.usdaやImmersive.usdaのアイコンが表示されているエリア)にファイルを追加し、そのあと空間に3Dオブジェクトを追加してください。
ただし、容量が大きいとシミュレーターで実行した際に読み込みに時間がかかるので要注意です。

 

(6) command + sで保存

(7) Reality Composer Proは閉じてOK

(8) xCode内のContentViewをクリックして開く

(9) Reality Composer Proで設定したオブジェクトが表示されます
※ エラーにより表示されない場合はxCodeを再起動してください

 

5.動作確認

画面右側のプレビューでも動作確認は可能ですが、シミュレーターを使用することも可能です。
開発したアプリケーションをシミュレーターで動作させるためには、プロジェクトに変更を加えた際に画面上部に表示されている▶︎のプレイボタンをクリックしてビルドをしてください。
しばらくするとシミュレーターおよびアプリが起動します。なお、変更を加えていない場合はシミュレーターを起動するだけでOKです。

今回はオブジェクトの差し替えまでをご紹介しましたが、Reality Composerを使いこなせばアニメーションやマテリアルの設定も色々とできるため、よりリッチな表現ができそうです。
また、記事内でもご紹介した通り本プロジェクトではContentViewやImmersiveViewの中で各モードでの挙動が記述されています。それぞれ非常にシンプルなコードなので、Swiftを勉強する際のとっかかりにも使えそうだなという印象でした。
さらにAppleからもより詳しい解説が公開されているのでそちらも合わせて勉強すると理解が深まりそうです。

 

6/26に上記の内容を解説するイベントを開催しました。Swift以外にもQuick Lookにも言及しています。YouTubeで残しているのでご興味があればご視聴ください!

[QuickLookサンプル]

 

以上になります。
普段から趣味や仕事でARの開発をやっています。情報はTwitterにて#AR_Fukuokaハッシュタグで発信しているのでもしよろしければご覧ください。

また、ARコンテンツ作成勉強会というXR(AR/VR)開発のハンズオンを中心としたコミュニティも運営しています。これから開発を始めてみたい方はぜひご参加ください!