シームレス連結再生

シームレス連結再生について

シームレス連結再生は、キューに含まれる波形データをサンプルレベルで連結して再生する機能です。
(一般的には「ギャップレス再生機能」とも呼ばれています。)
シームレス連結再生機能を用いることで、複数のキューを継ぎ目なく連続して再生することが可能です。
シームレス連結再生を行う際には、音声の設定に Enqueue Sound を使用します。
具体的な処理の手順は以下のとおりです。
  1. 再生に使用する AtomComponent について、プロパティ [Use Playlist] を ON に設定しておく。
  2. AtomComponent に対して Set Sound を実行し、最初に再生する音声データを指定する。
  3. AtomComponent に対し、後続のデータを Enqueue Sound で指定する。
  4. Play を実行し、再生を開始する。
criware_ue4_035_use_playlist_j.png
criware_ue4_035_seamless_playback.png
以上の操作を行うことで、 Set Sound で指定した音声が再生された後、続けて Enqueue Sound で指定した音声が継ぎ目なく再生されます。
Enqueue Sound を複数回実行することで、複数のキューを連続して再生させることも可能です。
また、音声再生中に Enqueue Sound を呼び出して音声データをつぎ足すことも可能です。
補足:
Set Sound を使用せず、 Enqueue Sound のみで音声を指定して Play で再生を開始することも可能です。
ただし、 Set Sound を使用する場合と、Set Sound を使用しない場合( Enqueue Sound のみを使用する場合)とでは、以下のように動作が異なります。

Set Sound の有無による動作の違い

手順 動作
Set Sound を使用する場合 Set Sound を実行した時点で、既に Enqueue Sound 済みのデータがクリアされます。
Set Sound で指定した音声が再生された後、 Enqueue Sound で追加した音声が再生されます。
Set Sound を使用しない場合 Enqueue Sound を実行しても、既に Enqueue Sound 済みのデータはクリアされません。
過去に Enqueue Sound して再生されなかったデータがある場合、残っているデータから順次再生されます。
具体的な使い分けの目安は、以下のとおりです。
  • 決まったフレーズの組み合わせを作成してから音声を再生する場合、 Set Sound と Enqueue Sound を使用する。
  • 音声を再生しながらその時々で音声を変化させたい場合には、 Enqueue Sound のみを使用する。
注意
シームレス連結再生は、キューから1つの波形データを選択して連結します。
複数の波形データを含むキューについては、キューに含まれる波形のうちどれかが選択されて再生される形になるため、必ずしも意図とした動作をするとは限りません。
シームレス連結再生を行う場合には、複数の波形データを含まないキューを使用してください。

Enable Multiple Sound Playback プロパティを ON に設定し、1つの AtomComponent で複数の音声を再生した場合、 Enqueue Sound で指定した波形がどの音声に続けて再生されるかは不定です。
連結再生を行う際には、 AtomComponent の Enable Multiple Sound Playback プロパティを必ず OFF に設定してください。

連結再生に使用する波形データは、全て同じコーデック、同じチャンネル数、同じサンプリングレートでなければななりません。
パラメータが異なる波形を連結しようとした場合、意図としない速度で音声が再生されたり、エラーコールバックが発生する等の問題が発生します。

Enqueue Sound 実行前に音声の再生が終了した場合、 Enqueue Sound した音声が再生されない可能性があります。
再生中に Enqueue Sound を実行する場合には、再生終了後に Get Num Queued Sounds で未再生の音声が残っていないか確認してください。