Android XR アプリの品質に関するガイドライン

互換性階層の定義

Android XR デバイスでアプリが優れたユーザー エクスペリエンスを提供できるように、以下の互換性チェックリストとテストを確認してください。

このチェックリストとテストは、ほとんどの種類の Android アプリに関する品質要件を包括的に定めています。

Android XR 対応モバイルアプリ

Android XR 互換のモバイルアプリは、大画面やその他のフォーム ファクタに対応するように変更されていない既存のモバイルアプリを表します。このタイプのアプリは、電話など、サポートされていない機能を必要としない限り、自動的に Android XR と互換性があります。ユーザーは重要なタスクフローを実行できますが、Android XR の差別化されたアプリよりもユーザー エクスペリエンスは劣ります。

このタイプのアプリはユーザー環境のパネルで全画面表示されますが、サイズが大きいとレイアウトが理想的ではない可能性があります。マニフェストでコンパクト サイズを指定しているアプリは、それに応じて表示されます。アプリは互換モードで実行されないため、レターボックス表示されません。アプリは、Android XR が提供するコア入力モダリティ(アイトラッキング + ジェスチャーまたはレイキャスト ハンド)の機能的なエクスペリエンスを備え、キーボード、マウス、トラックパッド、ゲーム コントローラなどの外部入力デバイスの基本的な機能をサポートしています。サイズ変更できる場合もあれば、できない場合もあります。

Android XR 対応のモバイルアプリは自動的に有効になり、Google Play ストアで利用できるようになります。サポートされていない機能要件のために互換性がないアプリは、Google Play ストアからインストールできません。

Android XR 対応の大画面アプリ

Android XR 互換の大画面アプリとは、すべての画面サイズとデバイス設定(モバイルに加えて大画面など)においてレイアウトが最適化され、外部入力デバイスとマルチタスクのサポートも拡張している、大画面の Tier 1 または Tier 2 のアプリのことです。Android XR 対応の大画面アプリは自動的にオプトインされ、Google Play ストアで利用できるようになります。

Android XR 互換の大画面アプリは、ユーザーの環境の空間パネルで 1,024 dp × 720 dp の全画面で実行されます。ユーザーは目と手を使ってアプリを自然に操作できますが、それ以外は、大画面アプリとほぼ同じです。

Android XR の差別化されたアプリ

Android XR 差別化アプリは、XR 向けに明示的に設計されたユーザー エクスペリエンスを備え、XR でのみ提供される機能を実装しています。Android Jetpack XR SDK、Unity、OpenXR を使用して開発することで、Android XR の機能を最大限に活用し、XR 機能(空間パネルなど)や XR コンテンツ(3D 動画など)をアプリに追加して、アプリのエクスペリエンスを差別化できます。

Jetpack XR SDK を使用すると、空間パネル、環境、3D モデル、空間オーディオ、3D / 空間動画 / 写真、アンカー、オービターなどのその他の空間 UI を含む、XR 固有の機能を提供できます。

Android XR 差別化アプリと見なされるには、アプリが少なくとも 1 つの XR 固有の機能または XR 固有のコンテンツを実装している必要があります。ユースケースによっては、機能とコンテンツの要件がさらに存在する場合があります。詳しくは後の説明をご覧ください。

Unity または OpenXR で構築されたアプリはすべて差別化されたアプリと見なされます。Unity または OpenXR で構築されたアプリは、Android XR 差別化アプリと見なされるために、品質指標と最小要件を満たす必要があります。たとえば、フレームレートが低い、クラッシュする、その他のネガティブなユーザー エクスペリエンスがあるアプリは対象外となります。

Android XR 互換性チェックリスト

互換性チェックリストでは、アプリの XR に関するサポートレベルを評価する基準を定めています。サポートレベルには次のものがあります。

Android XR 対応モバイルアプリ

アプリはアプリの中核品質の要件を満たしている必要があります。

アプリは、スマートフォンやタブレットなどの他のフォーム ファクタに関するすべての適用可能なユーザー補助ガイドライン色のコントラストなど)も遵守する必要があります。

Android XR 対応の大画面アプリ

大画面の Tier 1 または Tier 2 のアプリは、Android XR 互換の大画面アプリと見なされます。大画面アプリの品質に関するガイドラインは、Android XR で優れたエクスペリエンスを確保するための体系的なアプローチを提供しますが、回転や折りたたみ/展開などのデバイスの状態を考慮する必要はありません。同様に、Android XR にはスタイラスのサポートが含まれていません。

Android XR 差別化アプリ

Android XR 差別化アプリは高度に差別化されているため、こちらに記載されている機能の一部は特定のタイプのアプリにのみ該当します。アプリケーションに適した機能を選択します。Android アプリは、大画面 / モバイル Android のガイドラインにも準拠する必要があります。アプリケーションに適した要件を確認します(これらの要件の一部は、ポリシーの更新につながる可能性もあります)。

アプリのタイプ / ユースケース

カテゴリ

分野

ガイダンス

一般的なベースライン要件(Android と OpenXR)

プライバシーとセキュリティ

アカウントへのログイン(初回 UX)

アプリでログイン システムを使用している場合は、認証が成功した後にユーザーのログイン認証情報(ユーザー名の認証情報など)を明確に表示します。これにより、アクティブなアカウントを確認して信頼性を高めることができます。また、ユーザーがいつでもアカウント情報を表示、管理できるメニューまたは設定ページを組み込んでください。

安全性と快適性

ストロボ効果

すべてのユーザーの安全と健康を確保するため、アプリ内のストロボ効果のリスクを最小限に抑えることが重要です。

ストロボ効果を引き起こす可能性のあるデザイン要素を意図的に組み込まないでください。

1. ストロボ効果がどうしても必要な場合は、点滅の頻度を非常に低く(1 秒あたり 3 回未満)し、点滅する領域を小さく目立たないようにしてください。

2. 設定または環境設定で無効にできるようにすることを検討してください。

3. ストロボ効果が発生する前に、明確な警告メッセージを表示します。

乗り物酔いを防ぐ

ユーザーに乗り物酔いを引き起こさないようにするには、次のガイドラインに沿ってください。

  • 急なカメラの動きを避け、視覚的な快適さを優先します。ユーザーが混乱しないように、一貫した基準枠を維持します。
  • カメラを時間とともに回転させないでください。カメラの向きが変わると、カメラは新しい向きにスナップします。

入力

インタラクション ターゲットのサイズ

操作可能なターゲットには、想定される操作距離に基づく最小サイズと推奨サイズがあります。

  • 最小サイズ: DistanceInM x 0.868 x 48 = M
  • 推奨サイズ: DistanceInM x 0.868 x 56 = M 以上

Jetpack XR SDK を使用する場合は、最小サイズを 48 × 48 dp にし、タップ ターゲット サイズを 56 × 56 dp 以上にすることをおすすめします。

XR の技術的機能

手の動きによる入力

アプリは、Android XR のベースラインの操作方法として自然な手入力に対応しています。これには、手のレイキャストの要件や、入力プリミティブのジェスチャー サポートが含まれます。

コントローラがなくてもプレイまたは使用できるが、コントローラを使用することで拡張できるアプリ。

Boundary(旧 Guardian)

アプリがユーザーが開始地点(アプリの起動時)から物理空間内を移動することを想定している場合、パススルーをリクエストするか、マニフェストで PROPERTY_XR_BOUNDARY_TYPE_RECOMMENDED = XR_BOUNDARY_TYPE_LARGE を宣言します。

アプリが XR_BOUNDARY_TYPE_LARGE を使用している場合、境界線を表示せずに完全にプレイできます(半径 2.0 m 以内。境界線パススルーは半径 1.5 m でフェードインを開始します)。

パフォーマンス

レンダリング

アプリは、< 11.1 ミリ秒(90 Hz)と < 13.8 ミリ秒(72 Hz)の間で各フレームをレンダリングします。

解像度

アプリの解像度が片目あたり 1856 x 2160 以上である。

アプリの起動時間

ユーザーはアプリやゲームをできるだけ早く操作したいと考えています。起動時間や読み込み時間の適切な定義はカテゴリによって異なりますが、原則として、起動から最初の操作までの時間を最小限に抑えることをおすすめします。

以下の目標期間をご覧ください。

  • コールド スタートの平均: 2 秒未満
  • ウォーム スタートの平均: 1 秒未満

詳しくは、アプリの起動時間をご覧ください。

ANR

クラッシュしたり、UI スレッドをブロックして ANR(「アプリケーション応答なし」)エラーを引き起こしたりしません。

アプリの 1 日のセッションの 99.5% で ANR が 1 回未満です。

アプリで Google Play のリリース前レポートを使用して、安定性に関する潜在的な問題を特定します。デプロイ後は、Google Play Console の Android Vitals のページに注意を払ってください。

クラッシュ発生率

システム全体や他のアプリに影響を与えるほど過剰なシステム リソースを消費せず、クラッシュ率を 1% 程度に維持します。

Android アプリ ベースライン(XR 差別化)

ビジュアルとユーザー エクスペリエンス

基本的な XR

ユーザー エクスペリエンスを向上させるために、アプリが少なくとも 1 つの XR 固有の機能または XR 固有のコンテンツを実装している。これには、オービター、1 つ以上の空間パネル、環境、3D オブジェクトが含まれます。

空間パネル

パネルでマルチタスク(2 つ以上のタスクを同時に完了する)を行う場合は、個別の空間パネルを作成します。たとえば、チャット ウィンドウとリスト用に個別の空間パネルを作成します。

環境

仮想環境を表示する場合、明るさが邪魔になったり、疲労の原因になったりすることがあります。アプリは、UI と競合したり、ユーザーの疲労を引き起こしたりするような明るさの急激な変化がなく、安全な色調範囲を表示します。UI は、特にユーザーの視線の中央の水平帯域内で、すべての方向で読みやすい。(詳細なガイドラインは今後リンクされる予定です)

ホームスペース(HSM)とフルスペース(FSM)の切り替え

フルスペースに移行する際、アプリにはホームスペースとフルスペースをすばやく切り替えるためのエントリ ポイントがあります。アイコンまたはラベルを使用し、ボタンをアクセスしやすい場所に配置します。

空間パネル

メニュー、アセット、コントロールを専用のパネルまたはオービターに配置します。これらのコンポーネントはメインの編集パネルに含めないでください。

メニュー / リストのスクロール

アプリのスクロール操作(特にカルーセルや縦型リスト)が、物理演算や慣性を持つように更新されます。たとえば、スクロールに勢いが加わることで、ユーザーが操作を止めた直後もカルーセルやリストのコンテンツがしばらく動き続け、徐々に停止します(ユーザーが入力を止めた瞬間に停止するのではなく)。

動画 / メディアの機能

ビジュアルとユーザー エクスペリエンス

空間プレーヤー(Android のみ)

アプリでフルスペースのコンテンツを視聴できます。

コンテンツの上に表示されるオーバーレイから再生コントロールを削除し、専用のパネルまたはオービターに配置します。

動画再生を含むパネルでは、アスペクト比を設定してレターボックスを削除します。

空間オーディオ

パネルロックされたオーディオやサラウンド サウンドなどの空間オーディオのサポートを検討してください。

同時視聴

アプリが複数の動画ストリームの同時再生をサポートしている場合、ユーザー インターフェースで以下の情報を明確に示します。

  • どの動画ストリームが音声出力を提供しているか
  • どの再生コントロールがどの動画ストリームに影響するか

環境

フルスペースでコンテンツを再生する際、アプリでパススルーを暗くするか、仮想環境を選択できます。


OpenXR™ および OpenXR のロゴは、Khronos Group Inc. が所有する商標であり、中国、欧州連合、日本、英国で商標として登録されています。