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 対応の大画面アプリは、ユーザーの環境の空間パネルで 1024dp × 720dp の全画面で実行されます。ユーザーは目と手を使って自然にアプリを操作できますが、それ以外は大画面アプリと非常によく似ています。

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 x 48 dp とし、タップ ターゲット サイズは 56 x 56 dp 以上にすることをおすすめします。

XR の技術的な機能

手の入力

アプリは、Android XR のベースライン インタラクション メソッドとして自然な手の入力をサポートしています。これには、手のレイキャスト要件や、入力プリミティブのジェスチャー サポートが含まれます。

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

境界(旧称: 保護者)

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

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

パフォーマンス

レンダリング

アプリは、各フレームを 11.1 ms(90 Hz)未満または 13.8 ms(72 Hz)未満でレンダリングします。

解決策

アプリの解像度が 1 眼あたり 2,364 x 2,880 以上である。

アプリの起動時間

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

ターゲット時間は次のとおりです。

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

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

ANR

アプリがクラッシュしたり、UI スレッドをブロックして ANR(「Android 応答なし」)エラーを引き起こしたりしない。

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

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

クラッシュ発生率

システムの他の部分や他のアプリに影響を与える過剰なシステム リソースを消費しないようにし、クラッシュ率を 1% 程度に抑えます。

Android アプリのベースライン(XR を区別)

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

基本的な XR

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

空間パネル

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

デバイスの設置される環境

仮想環境を表示する場合、明るさによって気が散ったり疲れたりすることがあります。アプリは、UI と競合する明るさの急増や、ユーザーの疲労につながる明るさの急増のない、安全な色調範囲を表示しています。ユーザーの視線の中央の水平帯を中心に、UI があらゆる方向から読み取れる。(詳細なガイドラインは今後リンクされます)

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

ユーザーをフルスペースに誘導する場合は、ユーザーがホームスペースとフルスペースをすばやく切り替えられるエントリ ポイントをアプリに用意します。アイコンやラベルを使用して、アクセスしやすい場所にボタンを配置します。

空間パネル

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

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

アプリのスクロール操作(特にカルーセルや縦型リストでの操作)を更新して、物理的な動きや運動量を実現しています。たとえば、スクロールにはモメンタムが組み込まれているため、カルーセルやリスト内のコンテンツは、ユーザーが操作を停止した時点で正確に停止するのではなく、ユーザーが操作を停止した後もしばらく動き続け、徐々に停止します。

動画 / メディアの機能

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

空間オーディオ プレーヤー(Android のみ)

アプリで、ユーザーがコンテンツをフルスペースで視聴できるようにします。

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

動画再生があるパネルの場合は、アスペクト比を設定することでレターボックスを削除できます。

空間オーディオ

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

動画の同時視聴

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

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

環境

フルスペースでコンテンツを再生するときに、ユーザーがパススルーを暗くするか、仮想環境を選択できるようにします。