ADX2

ADX2に関するTips

AISACリンクを一気に割り当てる

 

複数のキューにまとめてAISACをつけたい場合、まず、AISACをリファレンス化し、リファレンスAISACに対してキューを複数選択してまとめてドロップすることで、AISACを一気に割り当てることができます。

AISACリンクを一気に割り当てる

ブロック遷移時の余韻について

 

通常、ブロック遷移時には、ブロックで再生中の音は止まります。

ブロック遷移時に余韻が消えるのが不自然な場合や、ブロック遷移時も音を止めたくない場合は、「ブロック遷移の振る舞い」「何もしない」に変更します。

blockループ遷移時の音について

なお、停止の処理はそのままに、エンベロープのリリースで調整する方法もあります。

音ごとに個別に制御したい場合などに便利です。

blockループ遷移時の音について2

オートパンを実装する

再生した音がぐるぐる回るような音にしたい場合、AISACのオートモジュレーションを使うことができます。

オートモジュレーションで、ループにしておくことで、再生中ずっとパラメータを変化し続けることができます。

応用としては、ピッチをゆらしたり、ボリュームをゆらしたりといったLFO的な使い方もできます。

オートパン

名前を一括置換する

 

名前を変更したい場合に一つ一つ選択して名前を変更するのは手間のかかる作業です。

こんな時に、外部エディタ経由で名前を一括置換することができます。

20150604名前置換

 

パンタイプについて

20150603PanType

「オート」にしておくと・・・
 プレーヤーに3Dソースとリスナーをつけると3Dポジショニング再生
 プレーヤーに3Dソースとリスナーをつけていないと、パン3Dで再生される。

パン3D」にしておくと・・・
 プレーヤーに3Dソースとリスナーをつけていてもパン3Dで再生される。
 (もちろん、プレーヤーに3Dソースとリスナーをつけていなくてもパン3Dで再生される。)

3Dポジショニング」にしておくと
 プレーヤーに3Dソースとリスナーをつけると3Dポジショニング再生
 プレーヤーに3Dソースとリスナーをつけていないと再生時にエラーになる。(3D情報が無いためどこから再生して良いか不明なため)

「パン3D」「3Dポジショニング」を合わせて使う状況はどんな時か?

– 距離減衰で、近くの音は3Dポジショニング再生、
 遠くの音はステレオ音で広がりのあるパン3Dで再生。
 これらをAISACの距離減衰で切り替えるようなキュー。

– 爆発音で、コアの音は定位(3Dポジショニング由来)をもっていて、
残響やデブリ音は固定定位(パン3D由来)で鳴らす。
これらをポリフォニックで鳴らすキュー。

機種固有の追加情報について

ヘルプメニュー

ヘルプメニューの「CRI Atom Craft ヘルプ」またはF1キーのショートカットでツールのマニュアルを見ることができます。

この他に、ランタイムの情報とともに各パッケージ毎のSDKのcri/documentationフォルダには、その機種での固有情報が別マニュアルとして書かれています。

機種固有情報とは、特殊なデバイスでの再生方法や、再生時の負荷の目安となるような情報もありますので、一度目を通しておくことをお勧めします。

(ADX2LEにはありません)

SDKの入手はhttps://www.criware.jp/support/index.htmからADX2/Sofdec2 テクニカルサポートからアクセスしてください。

サビから再生する

サビから再生するとは?

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

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

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

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などでも行えますが、プログラムからキューをリクエストするだけでできるため、プログラムの負担を軽減できます

ブロックのループ数指定

ブロックのループ数を指定すると、繰り替えす数を任意指定できます。

また、-1にすることで、プログラムからの指示(SetNextBlockIndex)がくるまでループさせることができます。20150320ブロックのループ数

ボリューム0のボイス消費を減らしつつ復帰させる

AISACなどでボリュームを0にした時など、音が聞こえなくなる状態になった場合でも、内部的には無音で再生が行われ続けています。

これは、圧縮波形のデコード処理やボイスの消費は行われ続ける意味になります。デコードした結果に対してボリューム0が掛け合わされて音が聞こえていないという状態です。(いつでもすぐにボリュームが上がったら鳴らせる準備をし続けています。毎オーディオ処理)

音は聞こえていないのに、デコードをし続けているのはCPUの負荷がかかって勿体無いと感じる時があるかと思います。

そんな時は、ボイスビヘイビアから「仮想ボイス」を選択することで、ボイスの処理負荷を軽減することができます。

とくにボリューム0になるような演出が多い時に設定しておくと良いでしょう。

20150311VirtualVoice

注意点として、復帰する時に再度再生する形(眠りから目覚める形)となるのでタイミングが若干ずれてしまう場合があります。