ゲームサウンドチューニング

サウンドを作成する場合、曲を作ったり効果音を作ったりします。
これらの波形のボリュームやエフェクトを変えたりといったことは波形編集ソフトで行いますが、

プログラムで再生するときの動作(ふるまい)を調整したい場合があります。

ここでは、ゲームサウンドのチューニングと題して、さまざま機能を駆使して、プログラムをいじらずともデータだけでできる調整可能な手法を紹介します。
ADX2のAtomCraftで紹介しますが、似たようなラッパーを組むなどでも解決できるかと思います。

同時に一個しかならないBGMを用意する

ゲーム中、BGMのデータを用意するけれど、大抵は同時に再生すると不協和音になって嬉しくない状況になります。

こんな場合は、カテゴリを用意します。
カテゴリ「BGM」を用意して、さらに「キューリミット」を1とします。

そして、BGMのキューをこのカテゴリに所属させます。

効果音が多く鳴ったときにBGMが消えてしまう


まず、効果音の発音数をリミットさせるために、
カテゴリ「SE」を用意します。(SE=SoundEffectsの略)

「SE」はある程度複数鳴っても構わないので、「キューリミット」を8くらいにします。(ここは調整でもっと少なくても良いかも)
そして、効果音のキューをこの「SE」カテゴリに所属させます。

これで、効果音は少なく発音されるのでBGMが消えにくくなりました。

確実にBGMが消えないようにする

ゲームサウンドの中でBGMは絶対に消えない。とても重要な音という方針で考えます。
この場合、効果音よりもBGMのプライオリティが高いという状況になります。

各BGMのボイスプライオリティの値を255としておくことで、確実に消えないようにすることができます。

BGMをふわっと切り替えたりしたい

BGMの切り替えるときに、スパッと止まってしまうと気持ち良さが足りない場合があります。
こんな時は、BGMのボイスの「エンベロープ」の「リリース」を200くらいに設定することで、フェードアウトします。

同様に、BGMのボイスの「エンベロープ」の「アタック」を200くらいにすると、フェードインします。

BGMがうるさくてSEが埋もれてしまう

SEの音量やBGMの音量を調整してもうまくいかない場合があります。
SEもしっかり聞こえて欲しいけど、普段はBGMもしっかり聞こえて欲しい。

この場合は、SEが鳴っていない時はBGMをしっかり鳴らす。
SEが鳴っている時はBGMを控えめにする。
とするとちょうど良いバランスになります。

REACTを作成し、「変化カテゴリ」を「BGM」、「トリガカテゴリ」を「ダッカー」にします。
さらに、「戻り時間」を200に設定し、「変化レベル値」を「0.5」くらいにします。

こうすると、SEの音が鳴った時にBGMが下がり、丁度良いバランスになるところを探します。

それでも音が多くなりすぎて音が割れたりしてどうにもならない

こんな場合は、DSPバス設定のBus0(MainOut)に「リミッタ」のエフェクトを追加しておきます。

これで、レベルが振り切れそうになった音が、少しだけ歪みますが、音がバリバリ割れるような心配がなくなります。

低音が聞こえない

iOS/Androidなど端末のもつスピーカはそれぞれ得意な音域があります。それを見極めつつチューニングが必要です。

聞こえないからといって、音量を持ち上げても、全体にもこもこいってしまいがちで、状況が悪化する傾向があります。

高い音が目立つ場合は、高い音域をEQなどで押さえます。
低い音が聞こえない場合は、そもそもその端末のスピーカでは出力できない低音がなっている場合があります。

ただし、イヤホンだと低音は聞こえるかもしれません。あと静かな環境なら聞こえるとかもあります。
どんな状況で音が聞こえていると良いかの方針を決めたうえで、調整の方向性を決めます。

音をすっきりさせるには、余計な音を付与しない。
エフェクトなどを切ってみたりして、エッジのくっきりした音を目指します。

アレンジにもよりますが、アタックに倍音が含まれている音などの場合、聞いている人にベースがある感じをもたせてくれます。

圧縮音声で、高音がやせている

音の圧縮をしすぎると、音の再現性が下がります。元波形のサンプリングレート20kHzとすると、実際に聞ける音域はその半分の10kHzになります。
女性の音域や声の美しいと感じる倍音などが欠けていくことになり音が痩せているようになります。
EQで強調したとしても、サンプリングレートが下がった段階で情報が消えがちなので、サンプリングレートはあまり下げない方が良い場合があります。

それでも、どうしても容量を削りたい場合は、「エンコーディングタイプ」をHCA、「エンコード品質」を「最高圧縮」などにしてみると良いでしょう。

また、聞こえないような音は波形レベルで削ってしまうことで、圧縮する元の情報を削ることができ、結果として音質が向上します。
聞こえない周波数帯(低音や16kHz以上の高域など)をEQで削る、
NoiseGateであるレベル以下を無音化したり、Gainの調整やコンプレッサなどで小さな音やノイズをの情報を無くすといったことで改善する場合があります。

また、一括で圧縮する弊害として全体の音はまとまっているけど物足りないなどある場合があります。音域を意識してノイズの含まれた効果音を用意するなど耳が心地よい状況を検討しましょう。