Apple Vision Proは、全く新しいクラスの空間アプリをユーザーに提供します。Appleのサンプルコードをチェックして、使い始める方法をご紹介します。
Appleが2か月前のWWDC 2023でApple Vision ProとvisionOSを発表したとき、世界に衝撃が走りました。Apple Vision Proは、シンプルでありながらエレガントな方法で、没入感あふれるアプリをユーザーに提供することを約束します。
Appleは、システムのデモと外観に加え、開発者向けウェブサイトにリソースページを追加しました。ページのセクションの一つには、ダウンロード可能なサンプルコードが掲載されており、独自のvisionOSアプリの作成方法を確認できます。
現在、Apple からは 4 つのサンプル アプリが提供されています。
- こんにちは世界
- 目的地ビデオ
- ジオラマ
- ハッピービーム
すべてのサンプル アプリ ページには、短い再生可能なビデオが用意されており、Xcode でビルドしなくてもアプリの外観を確認できます。
はじめる
まず、macOS Sonomaベータ版を予備のドライブにダウンロードしてインストールし、起動してアップデートを実行します。次に、Xcodeベータ4、コマンドラインツール、visionOSシミュレータをインストールする必要があります。
これら3つのコンポーネントは、Appleの開発者向けダウンロードページから個別にダウンロードできます。ダウンロードするには、Apple IDにログインする必要があります。
ソフトウェア環境がセットアップされたら、visionOSのドキュメントページにアクセスしてください。ページの一番下までスクロールすると、4つのサンプルアプリがすべてリストされています。
各サンプル アプリ ページをクリックし、それぞれの[ダウンロード]ボタンをクリックして、サンプル アプリ プロジェクトを 1 つずつダウンロードします。
各アプリをビルドして実行するには、Xcode、Swift、SwiftUI、場合によっては ARKit や 3D ツールに精通している必要があります。
こんにちは世界
Hello World ページ。
visionOS Hello World は、従来の Hello World アプリとは異なり、地球、軌道上の物体、太陽系を表示する 2D および 3D SwiftUI アプリです。
ほとんどの Hello World アプリとは異なり、visionOS バージョンは40を超えるファイルで構成されています。モデル、設定、地球儀オブジェクト、軌道ファイル、太陽系ファイル、現実ビューなど、アプリ自体に関連するファイルがあります。
Hello World visionOS xCode プロジェクト。
Hello World は、没入型空間と 3D ボリュームを用いて、地球と太陽系を部屋の中に 3D で表示します。空間上のオブジェクトを掴んで移動したり、拡大縮小したり、軌道上のオブジェクトなど、関連する他のオブジェクトを確認したりできます。
visionOS シミュレーターで実行されている Hello World。
一つ確かなことは、visionOSアプリはほとんどのiOSアプリやmacOSアプリよりも複雑になるということです。visionOSアプリの開発に必要な新しい技術を習得するには、かなりの時間を要することを覚悟してください。
目的地ビデオ
visionOS の宛先ビデオ。
Destination Videoは、visionOS、iOS、tvOSで動作するマルチプラットフォームのビデオストリーミングアプリです。プラットフォーム間で共通のインターフェースを使用してビデオを再生できるだけでなく、visionOSでも没入感のある体験を提供します。
Destination Video は、オーディオとビデオの再生、およびメディア処理用の高レベル API を提供する、Apple の実績のある AVFoundation フレームワークを使用します。
AVFoundation の優れた入門書として、Addison Wesley が発行した Bob Mccune の優れた書籍『Learning AV Foundation: A Hands on Guide to Mastering the AV Foundation Framework』をご覧ください。
ジオラマ
ジオラマの3Dマップビュー。
Diorama は、Apple の RealityKit と Reality Composer Pro (RCP) を使用して、ユーザーが 3D 空間で回転したり移動したりできるインタラクティブな 3D マップを作成する方法を示すアプリです。
Diorama を使用すると、3D マップ上でカリフォルニアの実際の 2 つのハイキングスポット (ヨセミテ国立公園とカタリナ島) を訪れることができます。
Dioramaのようなインタラクティブな3Dアプリを作成するには、まずオブジェクト、画像、RCPシーンなどの3Dアセットを使用または作成する必要があります。オーディオを追加することもできます。
RCPは利用可能なオブジェクトのライブラリを提供しており、独自に作成することもできます。Dioramaでは、RCPライブラリのアセットではなく、カスタムアセットを使用します。
Swift visionOS アプリにアセットを追加するには、アセットを RCP にインポートするか、Swift パッケージ内のアプリの .rkassets バンドルに追加します。
業界標準の3Dオブジェクトファイル形式であるUniversal Scene Description USDZファイルも使用できます。ただし、RCP独自のネイティブコンパイルアセットほどパフォーマンスは向上しません。
RCPプロジェクトには、エンティティと呼ばれるオブジェクトの階層構造を含む複数のシーンを含めることができます。エンティティ階層は、まだベータ版である と呼ばれる新しいクラスに表示されますRealityView
。
サンプル コードでは、関心ポイントをアタッチしてユーザーがそこへ移動したときにそのポイントに遷移する方法や、シェーダー グラフを使用してオブジェクトにカスタム テクスチャを追加する方法も示されています。
ハッピービーム
ハッピービーム。
Happy Beamは、visionOSでシンプルなインタラクティブ3Dゲームを構築する方法を紹介する小さなゲームアプリです。このゲームでは、3D没入型空間に浮かぶ悲しげな雲に虹を当てて、彼らを元気づけることができます。
ハンドジェスチャーまたはゲームコントローラーのいずれかを使用できます。アプリはARKitの3Dハンドトラッキングを使用して、ユーザーインターフェースの一部としてハート型のハンドジェスチャーを認識し、追跡します。ゲームを実行する前に、ユーザーはvisionOSでハンドジェスチャーの入力を求められ、承認する必要があります。
ユーザーNSHandsTrackingUsageDescription
情報キーは、ハンドトラッキングが要求されている理由をユーザーに説明します。Happy Beamは、ARKitの高度な画像解析とsimd
行列浮動小数点演算ライブラリを使用して、ユーザーの手が3D空間のどこにあるかを判断します。
サンプル コードのメソッドcomputeTransformOfUserPerformedHeartGesture()
が興味深いのは、実際にユーザーの指の関節を分析して、ユーザーがハート型を作っているかどうかを判別する点です。
Apple の SharePlay 経由でマルチプレイヤーもサポートされます。
Happy Beam は、インタラクティブなハンド ジェスチャを使用した 3D 没入型ゲームが visionOS 上でどのように見えるかをエキサイティングに紹介します。
新しいプラットフォームの良いスタート
Apple Vision ProとvisionOSは、コンピューティングにおけるエキサイティングな新たな進歩であり、Appleは開発者が開発を始められるよう、多くの新しい素材を提供しています。ここに挙げた数少ないサンプルアプリだけでも、本当にワクワクします。
このような種類のアプリが現在 visionOS ですでに実現可能であれば、システムが完成する数年後にアプリがどのようなものになるかは想像に難くありません。
Apple 開発者にとって、今はかつてないほど良い時期であり、Apple Vision Pro は今後何年にもわたって開発者の興奮を呼び起こし続けることを約束します。