パンタイプについて

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 テクニカルサポートからアクセスしてください。

未使用マテリアルの削除

キューシートで使われていないマテリアルを削除したい場合、削除対象項目の入ったフォルダを右クリックして「未使用マテリアルファイルをプロジェクトから削除しオリジナル音声ファイルを別フォルダへ移動」を使うと簡単に削除できます。

ここでの「未使用マテリアル」は、編集対象状態のワークユニットにあるキューシートが参照しているものを指します。20150513未使用マテリアル削除

 

サビから再生する

サビから再生するとは?

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

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

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

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

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

波形をループにする

 

 

外部波形エディタで用意した波形をループにしたい場合があります。
マテリアルを選択して「リループ有効フラグ」をTrueに変更するだけで、簡単に全区間ループの波形にすることができます。1Shot波形をループ波形にする

ランダムなキュー

20150121randomCueマテリアルを複数選択してキューへドロップし、ポリフォニックからランダムノーリピートにすることで、再生のたびにランダムに音が切り替わるようになります。

 

ループ音を止めるキュー

20150117StopCue0このDemoProjにあるヘリコプターの音を止めるキューを作ります。

20150117StopCue1キューを右クリックして「新規オブジェクト>同階層に選択キューをアクショントラックで参照したキューの作成」を選びます。

20150117StopCue2heli_loop_0というキューができます。

20150117StopCue3ActionTrackの右横あたりを右クリックし「新規オブジェクト>ストップアクションの作成」を選択

20150117StopCue4緑のストップアイコン付きリージョンができます。

これで、heli_Loopを再生後にheli_Loop_0を再生すると音が止まります。

BGMを消えないようにする

効果音を多く発音してしまった結果、BGMが消えてしまうといった事がよくあります。
BGMを消えないようにするとはどういうことかを紹介します。

最大同時発音数について

音の同時に発音できる数には限りがあります。
同時発音最大数は、ボイスプールなどの数などで初期化時に決めることができます。
多くするとそれだけメモリやCPU消費をするようになります。

少なくした場合は、発音オーバーする可能性が高まります。

最大同時発音数を越えた場合

同時発音数が多すぎて、発音リミット数を越えてしまう場合、通常、古い音が消えていきます。
単純な1shot音の場合はこれで問題ないですが、以下の問題があります。

問題

BGMなど先に再生して鳴らしっぱなしにしている時に、
大量のショット音や爆発音で発音数に達した場合、古い発音であるBGMが消えてしまう可能性があります。

解決方法

そこで、BGMなどはボイスプライオリティ(優先度)を上げることで、発音リミット数に達した時に
優先度の低い音が消える対象になります。

これで、その他の音でかき消される心配が無くなります。

設定方法

初期値の0から大きめの値(ここでは127)に変更しておくことで消えにくくすることができます。

20141215ボイスプライオリティ

 

さらに効果音もボイスリミットグループに所属させて、ある程度の数で制限する方法も有効です。