月別: 2015年4月

サビから再生する

サビから再生するとは?

選曲時やステージセレクトなどサビ部分から再生するといったことがよくあります。
ここではいくつかの方法を紹介します。

シーケンススタートマーカーを利用する

シーケンススタートマーカーを利用する方法の利点は再生だけで済むのでプログラマの負担を軽減できます。

1つのキューシートに「先頭から」と「サビから」のキューがあれば波形分の容量は1つ分で済みます。
しかし、キューシートが分かれてしまうとそれぞれのACB(またはAWB)に波形ファイルの圧縮後のフルサイズ分持つことになります。

craftv2_tips_performance_play_sabi00

シーク再生を利用する

シーク再生を利用する方法で、よく使われるかと思われます。
シーク位置などは別途エクセル管理や、ユーザーデータを利用したり、出力したXMLなどからコメントを解析したりといった方法も考えられます。

ブロック再生する

Prepare再生やシーケンス先読み指定(criAtomExPlayer_SetSequencePrepareTime)など十分な処理が行われていれば問題にならないのですが、 ブロック再生で分割されている場合、波形のつながり部分にギャップが発生する場合もあり、
サビ再生のためにブロック分割するのは,波形もあらかじめブロックごとに分割しておく手間が発生するためおすすめしません。
もしサビへの遷移後にサビ部分をループしたいとか、ある分割点で他の場所へシークしたいといったインタラクティブミュージックの手法を使いたい場合にはおすすめです。

craftv2_tips_performance_play_sabi01

シームレス連結再生を使う

サンプルレベルで連続的に再生するので綺麗につながり、且つデータを分けることができます。
サビ前部分とサビ部分を別波形として用意し、 ランタイムのシームレス連結再生を利用して再生します。
この方法だとランタイムもデータ側も対処が必要なので手間がかかりますが、容量は軽減できます。
シームレス連結が可能なキューの構造は、基本的にトラックに波形が一つあるものとなっています。
一部機種などではシームレス連結再生に制限がある場合があります。詳しくは機種別のマニュアルの制限事項を参照ください。

いくつかのランダムな位置から再生する

少し変わった方法ですが、一つのキュー内にシーケンススタートマーカーを複数置くことで、ランダムな位置から再生することもできます。
サビの開始位置が複数あるという場合に使えます。

craftv2_tips_performance_play_sabi02

アクションを使ったトラックボリューム変更

20150403ActionTrackVolme

2つのトラックに曲を用意し、それぞれのトラックのボリュームを変更する仕組みを考えます。

最初の状態では、片方のボリュームを0にして聞こえなくします。 アクションのあるキューのリクエストに応じてトラックの音量を変化させます。

変化速度を変えることもできます。

同様のことはAISACなどでも行えますが、プログラムからキューをリクエストするだけでできるため、プログラムの負担を軽減できます