Apple Vision Pro を調査! Part2 〜Vision Pro アプリ開発〜
出典:ビジョンOS向けの設計
はじめに
こんにちは。モバイルソリューショングループ、入社1年目のozaki.kです。
2023年6月、Apple社はMR(複合現実)ヘッドセットデバイス「Apple Vision Pro」(以下Vision Pro)を発表しました。
こちらの端末について、Vision Proのアプリ開発のために必要な環境や、フレームワークについて紹介します。
Vision ProがどういうものかについてはPart1で紹介しています。
目次
開発環境
こちらでは開発端末の推奨スペックやフレームワークについて紹介します。
推奨スペック
端末環境
macOSはVentura 13.4 以降という記載がありましたが、他のスペックに関しては言及されていませんでした。
そこで、以下の2端末で実際にvisionOS のシミュレータを動かしてみました。
MacBook Pro
- OS:macOS Ventura 13.5.2
- プロセッサ:2 GHz クアッドコアIntel Core i5
- メモリ:16 GB
こちらはシミュレータ起動直後から動作が重く、特に3Dオブジェクトの正常な表示が困難でした。
MacBook Pro
- OS:macOS Ventura 13.5.2
- チップ:Apple M2 Pro
- メモリ:32 GB
こちらの端末では3Dオブジェクトを問題なく表示することができました。
しかし、バーチャル空間で3Dオブジェクト表示した場合には少し動作が固まることがありました。
以上の検証から、メモリは少なくとも32GB以上を推奨します。
可能であれば32GBより上のメモリを持つ端末で開発できると安心です。
サポート面での現状の問題点
visionOS のシミュレーターは Intel ベースの Mac ハードウェア (MacBook Pro、MacBook Air、Mac Mini を含む) ではサポートされていません。
また、visionOS のテストアクションはXcode Cloudではサポートされていません。
空間コンピューティング向けに拡張されたAppleのフレームワーク
SwiftUI
出典:visionOSの紹介
VisionOSアプリを新しく開発する場合も、既存のiPadOSアプリやiOSアプリを導入する場合も、ウインドウ、ボリュームの構築にはSwiftUIが最適です。
SwiftUIは新しく3D機能を備え、奥行き、ジェスチャ、エフェクト、イマーシブシーンに対応できます。
RealityKit
出典:visionOSの紹介
Appleの3DレンダリングエンジンであるRealityKitを使用して、3Dコンテンツ、アニメーション、ビジュアルエフェクトをアプリに組み込むことができます。
物理的な照明条件に合わせて自動で影を付けたり、バーチャル空間へのポータルを出現させたり、高度なビジュアルエフェクトを作成できます。
SwiftUIと緊密に統合されているため、3D空間の鮮明さかつ応答性に優れたインターフェイスの開発に役立ちます。
ARKit
出典:visionOSの紹介
ARKitはAR機能を容易に構築できるようにします。
デフォルトではARKitによってシステムのコア機能が駆動され、ユーザーがアプリの共有スペースにいる間、ARKitの恩恵を自動で受けます。
アプリがフルスペースに移動すると、平面推定、シーンの再構築/復元、ウィンドウやオブジェクトの固定配置、ワールドトラッキング、骨格ハンドトラッキングなどの強力なARKit APIを利用できるようになります。
水のしぶきを壁に散らしたり、床の上にボールを跳ねさせたりと、現実の世界とコンテンツを融合させることが可能です。
UIkitはSwiftUIとシームレスに連携しているため、visionOS向けのアプリ開発に最適です。
アクセシビリティ
出典:visionOSの紹介
VisionOSにはユーザーは目、声、またはその両方を使ってデバイスを操作できる機能があり、アクセシビリティを考慮して設計されています。
コンテンツ内の移動にはポインタコントロール機能も用意され、人差し指、手首、頭を代替ポインタとして選択できます。
従来のAppleプラットフォームでお馴染みのツールを使用して、アクセシビリティを重視したvisionOSアプリの制作が可能です。
開発に必要なツール
Xcode
出典:visionOSの紹介
visionOSの開発は、visionOS SDK対応のXcodeで既存のプロジェクトにvisionOSターゲットを追加するか、新規のアプリをビルドしてから、Xcodeプレビューでアプリのイテレーションを行います。
visionOSのシミュレータでアプリを操作し、さまざまな部屋のレイアウトや照明条件でアプリを動かすことができます。テストと視覚化を行い、空間コンテンツのコリジョン、オクルージョン、シーンの理解を深めることができます。
visionOS SDK対応のXcodeはこちらで取得可能です。
Xcodeの最新のベータ版をダウンロードする
Reality Composer Pro
出典:visionOSの紹介
visionOSアプリ向けに3Dコンテンツをプレビューして準備できるよう設計された、まったく新しいReality Composer Proが用意されており、3Dモデル、マテリアル、サウンドなどのアセットの読み込みや整理に役立ちます。
特にXcodeのビルドプロセスと緊密に統合されているため、visionOSアセットをプレビューして最適化できます。
Unity
出典:visionOSの紹介
Unityのオーサリングツールを使用して、新しいアプリやゲームを制作したり、Unityで作成した既存のプロジェクトをvisionOS向けに再構築したりできるようになりました。
AR Foundationなどの使い慣れたUnityの機能に加えて、パススルーやフォービエイテッドレンダリングなどのvisionOSの持ち味をアプリで活用することができます。
Unityのオーサリング機能とシミュレーション機能をRealityKitが管理するアプリのレンダリングと組み合わせることで、Unityで作成したコンテンツをvisionOSで最適に表現できます。
非推奨のフレームワーク
こちらでは非推奨となったフレームワークについて紹介します。
既存のiOSアプリをVision Proで利用できるようにするために改修が必要になる場合があります。
visionOSでビルドする際に非推奨であるフレームワークに関して警告が入る場合は、該当箇所を改修する必要があります。
以下に関連するフレームワークが iOS とvisionOS の両方で非推奨です。
-
Accounts
-
Address Book
-
Address Book UI
-
Assets Library
-
GLKit
-
iAd
-
Newsstand Kit
-
NotificationCenter
-
OpenGL ES
また、以下のフレームワークはvisionOSのみで使用できないようです。
visionOSのみで利用できないフレームワークは可能な限り分離してコーディングし、
分離できない場合はOSごとに分岐させた処理を行うことが推奨されています。
ActivityKit |
AdSupport |
AppClip |
AutomatedDeviceEnrollment |
BusinessChat |
CarKey |
CarPlay |
Cinematic |
ClockKit |
CoreLocationUI |
CoreMediaIO |
CoreNFC |
CoreTelephony |
DeviceActivity |
DockKit |
ExposureNotification |
FamilyControls |
FinanceKit |
FinanceKitUI |
ManagedSettings |
ManagedSettingsUI |
Messages |
MLCompute |
NearbyInteraction |
OpenAL |
ProximityReader |
RoomPlan |
SafetyKit |
ScreenTime |
SensorKit |
ServiceManagement |
Social |
|
WidgetKit |
WorkoutKit |
終わりに
今回はVision Proアプリの開発環境について紹介しました。
iOSアプリの開発に比べて高性能の開発用端末が必要ですが、iOSと同様にXcodeでの開発が可能です。
利用できるフレームワークに変更があり、iOSなどでリリースされている既存アプリをVision Proで利用するためにも手を加える必要がありそうです。
長くなりましたが、最後まで読んでくださりありがとうございました。
参考URL