録画と再生の概要

プラットフォーム固有のガイド

拡張現実体験の大部分は「リアルタイム」です。ユーザーは特定の時間に特定の場所にいて、スマートフォンを特別な AR モードに設定して、AR アプリを開く必要があります。たとえば、ユーザーがリビングルームで AR カウチがどのように表示されるかを確認したい場合は、物理的に部屋にいるときに、画面上の環境にソファを「配置」する必要があります。

Recording and Playback API はこの「リアルタイム」の要件をなくし、いつでもどこでも視聴できる AR エクスペリエンスを作成できるようにします。Recording API は、カメラの動画ストリーム、IMU データ、その他のカスタム メタデータを MP4 ファイルに保存します。その後、録画した動画を Playback API を使用して ARCore にフィードできます。これにより、MP4 はライブ セッション フィードのように扱われます。引き続きライブカメラ セッションを使用できますが、この新しい API を使用すると、AR アプリケーションでそのライブ セッションの代わりに録画済みの MP4 を使用することを選択できます。

エンドユーザーもこの機能を利用できます。ユーザーがどこにいても、Recording and Playback API で録画した動画をネイティブ ギャラリーから取り出して、AR オブジェクト、エフェクト、フィルタで編集または再生することができます。この機能により、ユーザーは、オフィスまで電車に乗っているときや、ベッドでくつろいだりしながら、AR ショッピングを楽しむことができます。

Recording and Playback API を使用して開発を行うユースケース

Recording and Playback API は、AR アプリの作成における時間とスペースの制約を取り除く API です。ここでは、ご自身のプロジェクトでどのように使用できるかを紹介します。

一度の録画でどこでもテスト

AR 機能を試す必要があるたびに物理的に場所に移動する代わりに、Recording API を使用して動画を撮影し、対応デバイスで再生できます。ショッピング モールでエクスペリエンスを構築する場合は、変更をテストするたびにアクセスする必要はありません。訪問を一度記録すれば、自分のデスクでイテレーションと開発を行うことができます。

反復処理時間の短縮

サポートする Android デバイス 1 台ごとに動画を録画する代わりに、テストするシナリオごとに動画を 1 回録画して、イテレーション フェーズで複数の異なるデバイスで再生できます。

開発チーム全体の手動テストの負担を軽減

新機能のたびにカスタム データセットを作成する代わりに、事前に記録されたデータセットを活用しながら、ARCore の詳細なトラッキング機能または最新のトラッキング機能の改善を反映した新機能をリリースできます。

デバイスの互換性

Recording and Playback API を使用してデータを記録するには ARCore が必要ですが、ARCore は再生には必要ありません。この機能で録画された MP4 は基本的に、追加データを含む動画ファイルであり、どの動画プレーヤーでも表示できます。これらは、Android の ExoPlayer で検査できます。また、MP4 のデマルチプレクシングと、ARCore によって追加されたデータの管理の両方が可能な任意の互換性のあるプレーヤーで検査できます。

動画と AR データを再生用に記録する方法

ARCore は、録画したセッションを対象デバイスの MP4 ファイルに保存します。これらのファイルには、複数の動画トラックとその他のデータが含まれます。これらのセッションが保存されたら、ライブカメラ セッションの代わりにこのデータを使用するようにアプリに指示できます。

録画の内容

ARCore は、以下のデータを H.264 動画でキャプチャします。トラックを切り替えることができる MP4 対応の動画プレーヤーであれば、どのプレーヤーでも利用できます。一部の MP4 対応動画プレーヤーでは、再生する動画トラックを選択しなくても、リストの最初のトラックが自動的に再生されます。そのため、解像度が最も高いトラックがリストの最初に表示されます。

メインの動画トラック(CPU 画像トラック)

メイン動画ファイルには、後で再生できるように環境やシーンが記録されます。方法 デフォルトでは、ARCore は、 モーション トラッキングをメイン動画として使用 。

ARCore が、レンダリングされる(高解像度の)GPU テクスチャをキャプチャしない パススルー カメラ画像として表示されます。

再生中に高解像度の画像ストリームを使用したい場合は、 CPU イメージを提供するカメラを設定する必要があります 画像が生成されます。次のような場合があります。

  • ARCore は、640x480(VGA)の CPU イメージを、 モーション トラッキング、および構成済みの カメラ設定。
  • 2 番目の CPU イメージ ストリームをキャプチャすると、アプリのパフォーマンスに影響する可能性があります。 デバイスによって影響が異なる場合があります。
  • 再生中、ARCore は、更新前の高解像度の CPU イメージを GPU テクスチャとしてキャプチャされます。
  • 高解像度の CPU 画像が、 MP4 録画。

録画中に選択したカメラ設定によって、録画の CPU 画像とメイン動画ストリームが決まります。高解像度の CPU 画像を使用するカメラ設定を選択しない場合、この動画はファイルの最初のトラックとなり、使用する動画プレーヤーに関係なく、デフォルトで再生されます。

カメラ深度マップの可視化

これはカメラの深度マップを表す動画ファイルです。Time-of-Flight センサー(ToF センサー)などのデバイスのハードウェア奥行きセンサーから記録され、RGB チャンネル値に変換されます。この動画はプレビューの目的にのみ使用してください。

API 呼び出しイベント

ARCore は、デバイスのジャイロメーターと加速度計のセンサーからの測定値を記録します。また、その他のデータも記録され、一部は機密情報である可能性があります。

  • データセット形式のバージョン
  • ARCore SDK のバージョン
  • Google Play 開発者サービス(AR)のバージョン
  • デバイスのフィンガープリント(adb shell getprop ro.build.fingerprint の出力)
  • AR トラッキングに使用されるセンサーの追加情報
  • ARCore Geospatial API を使用している場合は、デバイスの推定位置、磁力計の測定値、コンパスの測定値