プロファイラーログリプレイ機能

プロファイラーでは、記録したログや読み込んだログの情報をもとに、 ADXで起こった発音を再現する(リプレイ)機能を実装しています。

リプレイ機能とは

プロファイラーがログを記録する際には、ほぼ全ての外部APIコールが同時に記録されます。
それをもとに「プロファイラーが記録したときに流れていた音声の再現」を試みる機能です。

音声の再現の際には、Atom Exライブラリを使用し可能な限り正確な再現を試みます。

ログにはプロファイラーが接続していた時に読み込まれていたキューシートの情報が保存されており、 ログを記録した時に使用したキューシートファイルとは異なるファイルの使用や、 Atomの初期化パラメータの変更も可能です。

リプレイ機能の使用方法

リプレイにはトランスポートバーのボタンを主に使用します。

トランスポートバーの表示

起動直後、もしくはリセット直後のトランスポートバーはこのような表示になります。

573_atomcraft_profiler_transport_bar_no_log.png
トランスポートバー

ログが読み込まれている場合、トランスポートバーの表示が以下のように変化します。

573_atomcraft_profiler_transport_bar.png
ログが読み込まれたトランスポートバー

トランスポートバーの各ボタンの動作は以下の通りです。

ボタン動作
icon_load_log.png
既存のログを開きます (プロファイラーの状態はリセットされます)。
icon_record.png
ログを新規に取得します (プロファイラーの状態はリセットされます)。
icon_rewind.png
選択位置(タイムライン上黄色のライン)を0秒地点に戻します。
icon_start.png
リプレイの設定に基づき、選択位置からリプレイを開始します。
icon_pause.png
リプレイを開始した後、一時中断します。
icon_stop.png
リプレイを停止します。
icon_autoscroll.png
オートスクロールを切り替えます。ONの時に水色になります。
icon_live_cached.png
リプレイモードをLIVEモードとCACHEモードの間で切り替えます(下記参照)。
CACHEモードの時に水色になります。
replay_conf.png
リプレイに関する設定画面を開きます。→ プロファイラーログリプレイ設定画面
bounce.png
現在のリプレイ設定を使用して、再現される音をWAVファイルとして書き出します。

なお、全てのボタンが同時に表示されたりクリック可能になるわけではありません (リプレイの状況によって変化します)。

また、ここでの一時中断とはリプレイの完全な中断ではなく、ログに記録されたイベントのリプレイのみを中断します。
そのため、例えば一時中断の瞬間に再生中だった音は鳴り続けます。

リプレイに関する設定

プロファイラーに読み込んだログでリプレイを行う場合は、 リプレイに関する設定画面から必要な情報を設定する必要があります。
設定方法に関しては、対応する別ページを参照してください。

リプレイ機能の動作について

リプレイの設定が正しく行われていれば、ログに記録されたイベントをもとに、 ログを記録した時に鳴っていた音が再現されます。
また、リプレイの際には以下から2つのモードを選ぶことが可能です。
それぞれのモードについて、異なるメリットがあります。

モードリプレイの仕様メリット
LIVEモード時刻情報に基づいて、その場でイベントを再現します。発生する現象がリアルタイムに再現されるため、調査対象の操作の特定が容易になります。
CACHEモードログに記録されているイベントをすべて一度内部で再現し、出力波形を確定させてからそれを再生します。出力された音声の、任意の位置からの再生が容易になります。

タイムラインをクリックして0秒以外の地点を選択している場合 (タイムライン中の黄色のライン)、 その部分から音が再現されます。

リプレイ中は、タイムラインに緑色のラインでどの部分がリプレイされているかを表示します。
オートスクロールがONの場合、緑色のラインが表示領域外に移動すると自動で表示領域が追従します。
テキストログビューアー の表示は追従しません。

リプレイ中にエラーコールバックが発生した場合は、 リプレイエラーログビューアー にその内容が出力されます。

注意
以下に該当するキューやボイスは発音しないため、ログを取得した時とは異なる音が再生されるなどの違いが生じます。
  • ログ取得開始時に発音していたキューやボイス
  • (LIVEモードのリプレイ、かつ途中からリプレイを開始した場合)開始地点より前に再生されたキューやボイス
  • criAtomExPlayer_SetData などのAPIで動的に設定した音(無音として再生されます)
覚え書き
また、CACHEモードで出力波形を確定させる際、最後にリプレイを行った波形がWAVファイルとしてOSの一時フォルダに格納されます。
正確性を期すため、書き出されるWAVファイルは、再現したログに記録されていた初期化パラメータに基づいた規格になります(バウンスを参照)。
このため、CACHEモードのリプレイを行う際は、ディスクの空き容量に余裕があるか確認してください。
参考までに、ファイルサイズの概算を以下に示します(1chあたりのサイズになることにご注意ください)。
プロファイル時間ファイルサイズ概算 (1chあたり)
1分11MiB
5分55MiB
10分109.8MiB
1時間659.1MiB
例えば、6ch構成でAtomを初期化し、100秒のログを取得した場合、 11(MiB/ch)×(100(秒)÷60(秒))×6(ch) ~ 109MiB程度のディスク容量が必要になります。
ただし、書き込み中にはさらにディスク容量が必要になる恐れがあること、 また4GiBを超えるような長さのリプレイとなった場合、波形確定中にエラーになる可能性もあるためご注意ください。

バウンスについて

リプレイの設定が正しく行われていれば、ログに記録されたイベントをもとに、 ログを記録した際になっていた音をWAVファイルへ書き出すことができます(リプレイ時に出力される音を記録します)。
トランスポートバーの「バウンス」ボタンをクリックすると、書き出し場所を指定するダイアログが表示されます。

覚え書き
指定した場所に書き出されるWAVファイルは、再現したログに記録されていた初期化パラメータに基づいた規格になります。
(例: 6ch出力でAtomを初期化してプロファイルしたログを再現すると、バウンスしたWAVファイルも6チャンネルになります)。
また、ビット深度は32bit浮動小数点で固定となります。

リプレイ機能の制限事項

リプレイ機能には、再現性に関して一部制限があります。

  • 既に存在するACBハンドルに追加でAWBファイルをアタッチする動作には対応していません。
  • CriAtomEx3DSource等の3D音源に関する位置情報等は、対応する設定用のAPIが再現されるまで(0, 0, 0)と扱われます。
  • Atom Exの初期化時に独自の乱数生成器を使用している場合でも、リプレイ時には使用されません。
    • そのため、シード値を設定で合わせても異なる再現音になります。
  • 音声の再現に用いるAtom Exライブラリは、プロファイラーを起動したOSのもの向けとなります。
    • 例えばWindows環境で取得したログをmacOS版プロファイラーに読み込ませて再現を試みても、 使用されるAtom ExライブラリはmacOS版のものとなります。
  • 同様に、再現に用いられるAtom Exライブラリは、対応したSDKに同梱されたAtom Exライブラリのバージョンとなります。
    • 例えば、Atom Ex 2.30.0 からプロファイルしたログをリプレイする時には、SDK同梱のAtom Exライブラリ2.31.0 が使用される可能性があります。