発音数に制限をかける

発音数に制限をかけるとは?

用途はいろいろありますが、例えば、

「音のリクエストが多すぎて音が重なりすぎてしまう場合」や
「同じ声優が二重でしゃべってしまう」とか
「CPU負荷をあまり上げたくないので音数を減らしたいけど、音のリクエストはあまり意識したくない」
などあります。

ADX2では、ボイスリミットグループによる発音数制限、キューの発音数制限、
同一カテゴリ内でのキューの発音数の3つのリミットがデザインできます。

他にランタイムの初期化設定により、コーデック毎の発音最大数として
ボイスプールの設定、ストリーム再生のためのストリーム最大数などが発音数に影響します。

キューリミットとボイスリミットの違いとは?

キューリミット:キューの再生数を制限する機能
ボイスリミット:ボイスの再生数を制限する機能

簡潔にはどちらも再生数の制限に関わるのですが、音の鳴り方に大きな違いがあります。

キューリミットはエンベロープのリリースが残る。
ボイスリミットはエンベロープのリリースが残らない。

キューリミットとボイスリミットどちらを使うのが良いのか?

これはケースバイケースなのですが、一例を上げますと、

「ハード的に発音数が極端に少ない」
「昔ながらの厳密な音数の管理をしたい」
「ストリーム負荷などが無視できない」
→ボイスリミットを使う

ハード的に発音数には余裕がある
→キューリミットを使う

発音数制限の他の方法について

ボイスリミット、キューリミット以外にも発音数を制限する方法があります。

これらも用途によるのですが、
「ボイスプールを使う」・・・コーデックごとのボイス最大数が制限されます。
「トラックMonoを使う」・・・トラックで単音しか鳴らさないようにできます。

リミットの範囲を決める

ボイスリミットには、ボイスリミットグループ
キューリミットには、カテゴリキューリミット
があります。
上位のグループやカテゴリなどでリミット最大数を決めておく事で
特定のグループの発音数制限を行えます。

例えば、BGMは2音、SEは8音などといった具合です。

リミット時の振る舞いを決める

リミットがかかった時、どう動作するか?たいていは、音が鳴らなかったり、ワーニングが発生しますが、ボイスリミットやキューリミットの場合、プライオリティというものが設定できます。

このプライオリティを上げておく事で、音が消えにくい状況を作り出す事ができます。

例えば、消えて困る音(BGMや主役の台詞とか)は高めにします。
消えてもさほど影響を受けない短い音など(足音とか)は低めにしておきます。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です