パフォーマンスに関する注意事項

魅力的な AR ユーザー エクスペリエンスを実現するには、AR 対応の 確認します

アプリが以下の要件を満たしていることを確認します。

  • タップ操作やデバイスなどのユーザー入力に反応する あります。
  • 妥当で一貫したフレームレートでレンダリングされます。一般に、ユーザーは、変動性の高い高フレームレートよりも、一貫性のある低フレームレートを好みます。
  • バッテリーの消耗が最小限に抑えられるため、ユーザーはデバイスを他の用途に使用できるようになります AR 体験をより長く楽しめるようになります
  • AR 生成コンテンツが表示される魅力的な AR エクスペリエンスを構築します 環境に応じて安定しており、現実的には できます。

パフォーマンスに関するベスト プラクティス

より魅力的な AR エクスペリエンスを作成するには、次のベスト プラクティスを念頭に置いて設計してください。

アンカーを使用してトラッキング パフォーマンスを改善する

ワールド空間座標を使用して 3D コンテンツを配置することもできますが、 常にアンカーを使用してください。 ARCore を使用すると、 基になるワールド空間の座標は変化するため、ARCore が変化するたびに 世界に対する認識を更新します。

アンカーにアタッチされていない仮想オブジェクトは、 環境に対して安定しているとはいえません。これにより、 AR エクスペリエンスはユーザーにとってあまり魅力的ではありません。

デバイス固有のパフォーマンス特性を検討する

ARCore 対応デバイスは幅広く対応 ハードウェアとパフォーマンス特性の 組み合わせが求められますデバイスのパフォーマンスは、次の要因によって変わる可能性があります。

  • デバイスの CPU/GPU、クロック速度
  • 使用可能なメモリと帯域幅
  • カメラ/IMU センサーの品質
  • その他のハードウェアの違い
  • オペレーティング システムとデバイス ドライバ

以下の要件を満たすさまざまなクラスのデバイスでアプリをテストすることをおすすめします。 ユーザーが使用するデバイスの代表的な名前になります。

CPU 使用率の高い機能を使用していないときに無効にする

ARCore の一部の機能を有効にすると、CPU 使用率が増加します。AR エクスペリエンスでこれらの機能が必要ない場合は、無効にすることを検討してください。これにより、アプリで追加の CPU サイクルが利用可能になり、 向上させます。

現在、ARCore の CPU 使用率は、Instant Placement または 現在のセッションで Augmented Images が有効になっています。フォローする いくつかご紹介します。

  • トラッキングをすべて完了したら、Instant Placement を無効にする必要があります あります。この機能はセッション設定で無効にできます。

  • この機能が不要な場合は、Augmented Images を無効にする必要があります。 ぜひお試しください拡張画像を無効にするには、null を設定するか、 空の Augmented Images データベースを示しています。

デバイスの温度をモニタリングする

開発時と QA テスト時に、Android の Thermal API を使用して、 デバイス上のアプリのパフォーマンスを追跡できます

アプリの製品版ビルドを(開発版やビルドビルドではなく)使用するようにします。 ランタイム パフォーマンスが異なる可能性があるアプリの qa ビルド 説明します。

ARCore の CPU 不足を特定する

ARCore セッションがアクティブな場合、アプリは制限付きのモバイル CPU と GPU を共有する必要がある 作成しました。CPU バウンドのアプリは、モーション トラッキングに必要な CPU リソースと競合する可能性があります。

ARCore の ローカライズとマッピングを同時に行う (SLAM)正常に動作する場合は、「VIO 周波数が低い」ことを確認します。メッセージ Android デバイスのログには表示されません

adb logcat | grep 'VIO frequency low'

ARCore の CPU 不足を回避する

ARCore セッションがアクティブな場合、アプリは制限付きのモバイル CPU と GPU を共有する必要がある リソース デバイスを作成します。CPU にバインドされたアプリは CPU リソースと競合可能 モーション トラッキングに必要です。

拡張画像データベースを事前に作成する

可能であれば、開発時に拡張画像データベースを事前に作成します。 拡張画像データベースをランタイムに、または動的に作成する必要がある場合 既存のデータベースに画像を追加するには、必ず背景で画像を追加してください メイン UI スレッドをブロックしないようにします。

リクエストするカメラ ストリームの数を制限する

Java Shared Camera を使用すると、アプリは追加の CPU または GPU 画像ストリームをリクエストできます。