月別: 2014年12月

BGMを消えないようにする

最大同時発音数について

音の同時に発音できる数には限りがあります。
同時発音最大数は、ボイスプールなどの数などで初期化時に決めることができます。

  • 多い場合は、それだけメモリやCPU消費をするようになります。
  • 少ない場合は、発音数オーバーする可能性が高まります。

発音数オーバーすると

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

音が多いシーンでBGMが消えてしまう

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

プライオリティをあげて解決する

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

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

プライオリティの設定方法

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

20141215ボイスプライオリティ

 

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

長い音の頭だけプライオリティを高くする

長い余韻のある音などは、タイムラインでプライオリティカーブを書いてあげることで、余韻部分のプライオリティを下げることができます。

距離の近い音だけプライオリティを高くする

近い音は重要といった場合など、距離減衰AISACを利用して、距離に応じてプライオリティを変化させることができます。

重要度はゲームのデザインによっていろいろなので、距離に応じて近くの音を下げるといったこともできます。