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

互換性ティアの定義

アプリが XR ヘッドセットと有線 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 アプリは、大画面とモバイル 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 48dp、推奨タップ ターゲット サイズを 56 x 56dp 以上にすることをおすすめします。

XR の技術機能

手入力

アプリは、Android XR のベースライン操作方法として、手入力(ハンド レイキャストの要件や入力プリミティブのジェスチャー サポートなど)をサポートしています。

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

境界(以前はガーディアン)

アプリでユーザーが開始地点(アプリの起動時)から物理空間を移動することを想定している場合は、パススルーをリクエストするか、マニフェストで 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. の商標であり、中国、 欧州連合、日本、英国で商標登録されています。