OpenXR で開発する

Android XR は、OpenXR 1.1 仕様と一部のベンダー拡張機能をサポートすることで、OpenXR でビルドされたアプリをサポートしています。OpenXR は、さまざまな XR デバイスで共通の API セットを使用して、没入感のあるインタラクティブなエクスペリエンスを作成できるオープン スタンダードです。

機能

Android XR は、OpenXR を使用して XR デバイスの独自の機能を最大限に活用するアプリを作成できる機能をサポートしています。主な機能は次のとおりです。

トラッキング デバイス
平面検出をサポートしています。これは、環境内の平坦なサーフェスを識別して追跡し、仮想オブジェクトを現実世界に関連付けて配置できるようにする機能です。また、アンカーもサポートしています。アンカーは、現実世界のオブジェクトや場所に適用できる仮想の参照ポイントであり、ユーザーが移動しても仮想コンテンツの位置と向きを正確に維持できます。
レイキャスト
仮想レイとシーン内のオブジェクトとの交差点を決定し、仮想要素の選択や操作などのインタラクションを容易にする手法。
アンカーの永続性
複数のセッションにわたってアンカーを保存および復元できる機能。これにより、環境内に仮想コンテンツを永続的かつ一貫した方法で配置できます。
オブジェクト トラッキング
マウス、キーボードなどの現実世界のオブジェクトをトラッキングする機能。
奥行きテクスチャ
カメラとシーン内のオブジェクト間の距離に関する情報を提供する深度マップの生成により、よりリアルなオクルージョンとインタラクション エフェクトを実現。
パススルー
現実世界のカメラ映像を仮想コンテンツと組み合わせて、物理世界とデジタル世界をシームレスに組み合わせた複合現実のエクスペリエンスを作成する機能。
コンポジション レイヤのパススルー
ポリゴン パススルー合成レイヤの切り抜きを許可します。実世界のオブジェクトをシーンに配置するために使用できます。
顔追跡
ユーザーの顔の特徴をトラッキングできるため、よりリアルで表現力豊かなアバターや仮想キャラクターを作成できます。
アイ トラッキング
ユーザーの目の位置と向きを指定します。これは、アバターの目のポーズをよりリアルにするために設計されています。
ハンド トラッキング
ユーザーの手の位置と動きを追跡する機能。
手のメッシュ
低ポリメッシュとしてユーザーの手の正確な表現を提供します。プラットフォームからアプリケーションへの配信用に最適化されており、可能な限り最高のパフォーマンスが得られます。これは、バインディング ポーズとブレンド重みを使用した他の拡張機能の代替手段です。
光の推定
照明モデルをユーザーの実際の照明条件に合わせて使用します。

サポートされている入力デバイス

Android XR は、次の入力デバイスもサポートしています。

手の操作
ピンチ、スワイプ、指差しなどの特定の手のジェスチャーを認識し、ユーザーがジェスチャーや手の動きを使って仮想オブジェクトを操作できるようにします。
アイトラッキングによる操作
ユーザーの目の動きを追跡し、視線を使って仮想オブジェクトを選択して操作できる機能。
6DoF モーション コントローラ
コントローラの位置と動きをトラッキングする機能、および D-pad とボタンのバインディングによるアクションのトリガーや、アプリ内のホバーイベント。
マウス操作
3D 空間でマウス ポインタを使用してオブジェクトを操作する機能

サポートされているパフォーマンス機能

Android XR は、次のパフォーマンス関連機能をサポートしています。

アイトラッキングによるフォーカス
アプリが、目の焦点にのみ高解像度のコンテンツをレンダリングできるようにします。
スペース ワープ
速度ベクトルと深度テクスチャ情報を使用して、ユーザーが没入感を維持するために必要なフレームレートを効果的に高めるトゥイーン フレームを生成します。
掲載結果の指標
現在の XR デバイス、コンポーザ、XR アプリの実行時に Android XR のパフォーマンス指標を提供します。これには、CPU フレーム時間、GPU フレーム時間、GPU 使用率、CPU 周波数、フレームレートなどが含まれます。

サポートされている機能と拡張機能の一覧については、OpenXR 機能の概要をご覧ください。

サポートされているエンジン

Unity

Android XR の Unity サポートは OpenXR 上に構築されており、デベロッパーは Unity 6 を使用してエクスペリエンスを作成できます。Unity で XR アプリを作成する方法について詳しくは、Unity の概要をご覧ください。