Meta Quest 3 アプリ開発ガイド
以下の記事が面白かったので、かるくまとめました。
1. Meta Quest 3 アプリ開発ガイド
2023年10月10日、「Meta Quest 3」が発売されました。前モデル「Meta Quest 2」から大幅な性能向上を果たし、カラーパススルーに対応することでMR (Mixed Reality) にも最適化されたヘッドセットになりました。
この記事では、「Meta Quest 3」のアプリ開発をはじめるにあたって、どのドキュメントから読みはじめれば良いかをガイドします。
2. MRのアプリ開発の基礎知識
MRのアプリ開発がはじめての場合は、「MR Design Guidelines」で「MR」の基礎を学ぶことをお勧めします。
次に、以下のドキュメントで、アプリ開発の手順を確認することができます。
「MR」のベストプラクティスについては、サンプルとショーケースアプリで確認することができます。
Phanto と Discover (GitHub | App Lab) は最新のMRショーケースです。
3. 開発ツール
MRのアプリ開発ではじめに行うべきことは、「SDK v57」(Unity| Unreal | Native) をインストールすることです。
主な開発ツールは、次のとおりです。
3-1. Meta XR Simulator
「Meta XR Simulator」(Unity | Unreal | Native)は物理デバイスなしにMRのアプリ開発を可能にするシミュレータです。ヘッドセットを頻繁に付け外しすることなく、アプリを簡単に動作確認できるようになります。
3-2. Project Setup Tool
「Project Setup Tool」は、プロジェクトをすばやく設定し、ビルドに影響を与える可能性のある問題を評価して修正できるツールです。このツールにアクセスするには、「Edit → Project Settings → Oculus」または「Oculus → Tools → Project Setup Tool」を選択します。
現在、Unityでのみ利用でき、Unrealのサポートは近日中になります。
3-3. Building Blocks
「Building Blocks」を使用すると、パススルー、ハンドトラッキング、アイゲイズなど、プロジェクトにドラッグアンドドロップできる「ブロック」のライブラリにアクセスできます。
3-4. IMMERSive Web Emulator
「IMMERSive Web Emulator」は、WebXR開発者が物理デバイスや「Reality Accelerator Toolkit」なしにMRのアプリ開発を可能にするエミュレータです。WebXRをより簡単にテストすることをお勧めします。ヘッドセットを頻繁に付け外しすることなく、アプリを簡単に動作確認できるようになります。
4. その他の開発ツール
その他の主な開発ツールは、次のとおりです。
4-1. Meta Quest Developer Hub
「Meta Quest Developer Hub」(MQDH) は、デバイス管理、パフォーマンス分析、ヘッドセットディスプレイのキャプチャ、デバイスファイルの管理、アプリのアップロードなどの頻繁なタスクを合理化し、日常のワークフローを加速する必須のPCアプリです。
4-2. Meta Quest Link
「Meta Quest Link」(Unity | Unreal)は、開発中にアプリをテストするたびにアプリをヘッドセットにデプロイする必要がなくなります。Unity および Unreal Editor でワンクリックするだけでアプリをフルパフォーマンスでテストできます。
5. 向上したパフォーマンスの活用
「Quest 3」は「Quest 2」と比較して、GPUパワーが2倍、CPUが33%、メモリが30%以上向上しているため、さまざまな方法でアプリを最適化するための余裕を得ることができました。
「Quest 3」の向上したパフォーマンスを活用し、アプリを次世代ヘッドセットが提供できる限界まで押し上げるための推奨事項をいくつか示します。
5-1. Dynamic Resolution の有効化
「Dynamic Resolution」(Unity | Unreal) は、最適な解像度でレンダリングしながらアプリのフレームレートを維持します。 このツールを使用すると、GPUの負荷が高いときに解像度を自動的に調整することで、可能な限りアプリの画質を向上させることができます。アプリをプロファイリングするときは、「Dynamic Resolution」を無効化することをお勧めします。
5-2. Meta Quest Super Resolution の有効化
「Meta Quest Super Resolution」は、視覚品質をさらに向上させます。エッジとコントラストを意識したフィルタリングを使用した、シングルパスの空間アップスケーリングおよびシャープ化技術になります。
5-2. eye buffer resolutions を上げる
「Quest 3」では、「eye buffer resolutions」のデフォルト値が「1680x1760」になり、「Quest 2」より30%向上しました。多くのアプリは、新しいデフォルト値に自動的に調整されますが、より多くのheadroomが利用できるため、計算バジェットを使用して、さらに高い「eye buffer resolutions」を指定することができます。
6. パフォーマンスの評価と最適化
パフォーマンスの評価と最適化の手順は、次のとおりです。
6-1. OVR Metrics Tool
パフォーマンスの評価の最初のステップは、「OVR Metrics Tool」(Unity | Unreal | Native) を使用して、アプリのGPU依存度を判断することです。
6-2. RenderDoc Meta Fork
プロファイリングは、パフォーマンスを評価し、GPU と CPU のハードルを克服するために不可欠です。「RenderDoc Meta Fork」を使用すると、ボトルネックを特定して修正するための鍵となる、「Quest 3」の「Snapdragon XR2 Gen 2」からの低レベルのGPUプロファイリングデータにアクセスできるようになります。 RenderDocは一般的に使用されるグラフィックデバッガーです。ここ(Unity | Unreal)で、RenderDoc を使用してアプリを最適化するためのいくつかの一般的な使用例のウォークスルーをここで見つけることができます。
6-3. ovrgpuprofiler ・ GPU Systrace
GPU が想定どおりの動作をしているかどうかを判断するには、ロード、ストア、レンダーパス設定などを表示する適切なツールを使用することが重要です。「ovrgpuprofiler」(Unity | Unreal) および「GPU Systrace」 (Unity | Unreal)は、この情報を表示するために特別に設計された低摩擦のレンダーステージトレースツールです。
6-4. 最適化ワークフロー
パフォーマンスの問題が発生していて、その理由がわからない場合は、これら (Unity | Unreal | Native | WebXR) の基本的な最適化ワークフローに、プロファイリングを使用してボトルネックを特定して修正するのに役立つ簡単なチュートリアルが用意されています。
7. より多くのコンピューティングのための追加ツール
より多くのコンピューティングのための追加ツールは、次のとおりです。
7-1. Application SpaceWarp
「Application SpaceWarp」を使用することで、構築したアプリのタイプによっては、レイテンシーとパフォーマンスが大幅に改善される可能性があります。AppSWはすべてのアプリに適しているとは限りません。そのため、プロジェクトで使用できるかどうか、またどのように使用できるかを判断するために、ベストプラクティスを参照することを強くお勧めします。
アプリがパススルーなどの機能を使用してMRをサポートすると、VRのみのエクスペリエンスと比較して、GPUが17%低下し、CPUパフォーマンスが14%低下します。Depth APIなどの特定の機能も追加すると、追加のGPUリソースも消費されます。しかし、「Quest 3」で完全MRエクスペリエンスを実行している場合でも、残りのコンピューティング予算は、「Quest 2」で利用可能なコンピューティング予算全体よりも高くなります。「Quest 3」のパフォーマンスの詳細については、Meta Connectセッション「State of Compute: Maximizing Performance on Meta Quest」を参照してください。
8. ハプティクスの設計と統合
Quest 3コントローラーには「TruTouchハプティクス」が搭載されており、新たなレベルの没入感を実現し、クリエイティブな可能性を広げます。 これらの新機能を利用するには、「Meta Quest Haptics Studio」 (Windows | Mac)をダウンロードしてください。この最先端のハプティクスツールを使用すると、高品質のハプティクスを迅速かつ簡単に設計し、試し、アプリに統合できます。
既存のオーディオエフェクトからハプティクスをデザインし、VRコンパニオンアプリを使用してハプティクスの作成を即座に感じ、エフェクトをエクスポートし、「Haptics SDK」(Unity | Unreal) を使用してアプリに統合します。オーディオを制御するのと同じ方法でハプティクスをトリガーおよび制御するためのメディアのようなAPIが提供されます。