ゲームの音量バランス:BGM・効果音・ボイスの目asa
遊びをつくる執筆にClaudeを使用しています。

ゲームを作り終えてプレイしてみると、BGMがうるさすぎて効果音が聞こえない、あるいは効果音が突然飛び出して驚く、という経験をした方は少なくないはずです。音量バランスは「センス」の問題ではなく、各レイヤーに役割と音量の優先順位を割り当てる設計の問題です。 この記事では、BGM・効果音(SE)・ボイスの三層をどの数値関係で重ねるか、自分の環境以外でもバランスが崩れないようにするにはどう確認するか、という二つの問いに絞って説明します。音素材の選び方や作り方ではなく、「出力時の音量をどう調整するか」が主題です。
三層それぞれの役割を整理する
音量バランスを決める前に、各レイヤーが担う機能を確認しておくと判断が速くなります。
BGMは場の雰囲気と感情のトーンを支えます。ゲームが動いている間ほぼ常に流れるため、注意を引き続けると他の音が埋もれます。BGMの仕事は「存在を忘れるくらい自然に場を作ること」であり、前景に出るべきものではありません。
効果音(SE)はプレイヤーの操作や状態変化を音で確認させます。ボタンを押した、敵に当たった、アイテムを取った――これらは一瞬の短いイベントです。BGMより音量が低くても、周波数帯が違えば埋もれずに聞こえます。逆に音量を上げすぎると、プレイ中に何度も繰り返されるSEが疲労感を生みます。
ボイスは情報量が最も高く、聞き逃すと内容が伝わらないため、三層の中で最優先です。ただしブラウザゲームでは、ボイスを使わない作品も多く、使う場合でも短いセリフが多いため、この記事では「ボイスがある場合の扱い方」として後半に補足します。
数値の目安:どこから始めるか
DAW(音声編集ソフト)やゲームエンジンのミキサーを使う場合、出発点として次の比率がよく使われます。
- BGM、相対音量の目安:60〜70 %、備考:マスターに対する割合
- 効果音(SE)、相対音量の目安:80〜90 %、備考:短時間なので体感音量は下がる
- ボイス、相対音量の目安:100 %、備考:最優先。ダッキングの基準にもなる
この数値はあくまで出発点です。使う素材の録音レベルがバラバラであることがほとんどなので、「この比率を設定すれば完成」にはなりません。大切なのは、何を基準(100 %)にして他を相対的に下げるか、という思考の順序です。
JavaScriptでWeb Audio APIを使う場合は GainNode で各トラックの出力ゲインを制御できます。たとえばBGMの GainNode を 0.6、SEを 0.85 に設定するのは上記の目安と対応します。Howl.js など音声ライブラリを使う場合も volume プロパティが同じ役割を果たします。数値の単位がライブラリによって異なる(0〜1の倍率か、dB値か)ため、ドキュメントで確認してから設定してください。
実際の調整手順
1. 素材ごとのピーク音量を揃える
各音声ファイルのピーク音量が素材によってバラバラな状態でゲームに組み込むと、ミキサーの数値だけでは制御しきれません。まず音声編集ソフト(Audacity など無料のものでも可)でノーマライズ処理を行い、各ファイルのピークを −1 dBFS 程度に揃えます。この一手間で、後のバランス調整が大幅に楽になります。
2. BGMの音量を先に固定する
無音状態からBGMだけを再生し、「長時間聴いていても疲れない音量」を探します。PCのスピーカーで普通に作業しているときの音量感が目安です。この音量を基準値として固定します。
3. SEをBGMの上に重ねて確認する
BGMを流したままSEを一つ鳴らします。SEが「BGMの上にはっきり乗っている」と聞こえれば適切です。SEがBGMに埋もれる場合は、まずSEの音量を上げる前に周波数帯を確認してください。BGMの主要な帯域(多くの場合200 Hz〜2 kHz 付近)とSEが被っていると、音量を上げても抜けが悪いことがあります。SEにハイパスフィルターをかけて低域を削るか、BGMのミックスをEQで少し抑えるほうが効果的な場面もあります。
4. 想定外の環境で再確認する
自分が調整した環境(PC+ヘッドフォンなど)以外でも聞こえ方は変わります。少なくとも次の三つで確認することを推奨します。
- スマートフォンのスピーカー(内蔵スピーカーは高域が強調される)
- ノートPCの内蔵スピーカー(低域が出にくい)
- イヤフォン(細かいSEが聞こえやすく、バランスの粗が見えやすい)
この三環境を通じてBGMが邪魔にならず、SEが埋もれず聞こえるなら、バランスは十分と判断できます。
ダッキング:ボイスや重要SEのための空間を作る
ダッキング(Ducking)とは、特定の音が鳴っている間にBGMの音量を一時的に下げる手法です。ボイスが流れるときにBGMを70 %→40 % 程度に下げ、ボイスが終わったら元に戻す、というのが典型的な使い方です。
JavaScriptで実装する場合、GainNode のゲイン値を AudioParam.linearRampToValueAtTime() などで滑らかに変化させると、急激な音量変化による不自然さを避けられます。変化時間は0.2〜0.5秒が自然に聞こえる範囲の目安です。
ボイスがないゲームでも、ボス登場時のSEや決定的なイベント音など「一度きりの重要なSE」に対してダッキングを使うと、そのシーンの印象が引き締まります。常にダッキングするのではなく、「ここぞ」の場面だけに絞るのが効果的です。
プレイヤーに音量調整を委ねる設計
どれだけ丁寧にバランスを取っても、プレイする環境・デバイス・聴覚の個人差は作者の手が届きません。ブラウザゲームでも、設定メニューでBGMとSEの音量を個別に調整できる仕組みを用意するのが最も確実な対処です。
実装の最小構成は、BGMの GainNode とSEの GainNode をそれぞれUIのスライダーと接続するだけです。スライダーの初期値を調整済みのバランス(例:BGM 0.6、SE 0.85)に設定しておけば、何も触らないプレイヤーには設計どおりのバランスが届き、調整したいプレイヤーには選択肢が与えられます。
設定値をローカルストレージに保存しておくと、次回プレイ時にも同じ設定が維持されます。これはプレイヤーにとって小さな配慮ですが、繰り返し遊ぶゲームほど効果が大きいです。
次の行動
まず手元の作品のBGM・SE・ボイスを別々の GainNode(またはライブラリのボリューム設定)に分けて管理できているか確認してください。まとめて出力している場合は、ここを分離するだけでバランス調整の自由度が大きく上がります。その後、スマートフォンのスピーカーという最も条件の厳しい環境で聞いてみると、修正すべき点がすぐに見つかるはずです。完成した作品はアソバースに投稿して、実際にプレイされる環境でのフィードバックを集めてみてください。
参考資料
- Web Audio API(MDN Web Docs)
- Howler.js 公式ドキュメント
- Audacity 公式ドキュメント

