録画と再生の概要

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

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

Recording and Playback API では、この「リアルタイム」の要件が不要になるため、いつでもどこでも視聴できる AR 体験を作成できます。Recording API は、カメラの動画ストリーム、IMU データ、その他のカスタム メタデータを MP4 ファイルに保存します。録画した動画は、Playback API を介して ARCore にフィードできます。この API は、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 と Playback API を使用してデータを記録するには ARCore が必要ですが、再生には必要ありません。この機能を使用して録画された MP4 は、基本的に追加データを含む動画ファイルであり、任意の動画プレーヤーで再生できます。これらのデータは、Android の ExoPlayer または、MP4 のデコードと ARCore によって追加された追加データの管理の両方を行うことができる互換性のあるプレーヤーで検査できます。

動画と AR データが再生用に記録される仕組み

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

録画の内容

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

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

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

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

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

  • ARCore は、モーション トラッキングに必要な 640x480(VGA)CPU イメージと、構成されたカメラ構成で指定された高解像度の 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 を使用する場合: デバイスの推定位置、磁力計の測定値、コンパスの測定値