Loading
BLOG 開発者ブログ

2023年10月27日

Apple Vision Pro を調査! Part2 〜Vision Pro アプリ開発〜

グリッドの上に表示された Apple Vision Pro の様式化された表現。 画像には長方形と円形のグリッド線が重ねられ、元の 6 色の Apple ロゴの緑色を微妙に反映するように緑色に着色されています。
出典:ビジョンOS向けの設計

はじめに

こんにちは。モバイルソリューショングループ、入社1年目のozaki.kです。

2023年6月、Apple社はMR(複合現実)ヘッドセットデバイス「Apple Vision Pro」(以下Vision Pro)を発表しました。

Apple 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より上のメモリを持つ端末で開発できると安心です。

    A screenshot of a small fraction of the Earth against a star field, with a window visible to the right. Clouds appear on the part of the Earth that's lit, while ground light is visible on the part of the Earth that's in the dark. The window has the title The Solar System, with back and forward buttons, containing left-pointing and right-pointing chevrons respectively, on either side of the title. The back button is dimmed out. A sentence of text appears below the title, and a button with the title Exit the Solar System appears below that.
    出典:Developer – Hello World

    サポート面での現状の問題点

    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のシミュレータでアプリを操作し、さまざまな部屋のレイアウトや照明条件でアプリを動かすことができます。テストと視覚化を行い、空間コンテンツのコリジョン、オクルージョン、シーンの理解を深めることができます。

    A screenshot that shows a 2D window presented in a room that contains a couch and a lamp. The window shows the Destination Video sample app, showing three featured tiles. Each tile contains a poster photo, a title, and descriptive text.
    出典:初めての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

    Twitter

    WidgetKit

    WorkoutKit

    終わりに

    今回はVision Proアプリの開発環境について紹介しました。

    iOSアプリの開発に比べて高性能の開発用端末が必要ですが、iOSと同様にXcodeでの開発が可能です。

    利用できるフレームワークに変更があり、iOSなどでリリースされている既存アプリをVision Proで利用するためにも手を加える必要がありそうです。

    長くなりましたが、最後まで読んでくださりありがとうございました。

    参考URL

    Apple Vision Pro – 公式サイト 

    Developer – Hello World

     visionOSの紹介

    初めてのvisionOSアプリの作成

    既存のアプリをvisionOSに取り込む

    Xcodeの最新のベータ版をダウンロードする 

    ビジョンOS向けの設計

    ozakikのブログ