足音を Play Sound 2D で鳴らしたら、敵が画面の端にいても足元にいても同じ音量で聞こえる。オプション画面にBGMの音量スライダーを付けようとしたら、音源ごとに Volume Multiplier を配るしかなく、音を足すたびに配線が増えていく。
UE5では、この2つはどちらもBlueprintの外側で解決します。 距離の減り方は Sound Attenuation アセット に、 音量のグループ分けは Sound Class に持たせるのが定石です。この記事では、2D再生と3D再生の違いから、距離減衰の設定、Sound ClassとSound Mixによる音量管理、Submixとリバーブまでを解説します。
この記事でわかること
- 2D再生と3D再生 の違いと、それぞれの再生ノード
- 距離減衰は Sound Attenuation アセット が決める(
Inner RadiusとFalloff Distance)- Sound Class でBGM・SE・ボイスを束ね、 Sound Mix で一時的に押し下げる
- Submix / Audio Volume で空間の響きを作る
- 実践: 音量設定画面と、距離で消える環境音
2D再生と3D再生を分ける
最初に決めるのは、その音に 「鳴っている場所」があるかどうか です。

| 2D再生 | 3D再生 | |
|---|---|---|
| 位置 | 持たない | ワールド座標を持つ |
| 距離で小さくなるか | ならない | Attenuation次第でなる |
| 左右に定位するか | しない | する |
| 向くもの | BGM、UIのクリック音、ナレーション | 足音、たき火、銃声、敵の唸り声 |
再生ノードは4つ覚えれば足ります。
| ノード | 位置 | 戻り値 | 使いどころ |
|---|---|---|---|
| Play Sound 2D | なし | なし | UI音、単発の通知音 |
| Play Sound at Location | 指定した座標 | なし | 爆発、着弾など 鳴らしっぱなしでよい単発音 |
| Spawn Sound 2D | なし | Audio Component | BGMなど、あとから止めたい2D音 |
| Spawn Sound at Location | 指定した座標 | Audio Component | あとから止めたい・音量を変えたい音 |
| Spawn Sound Attached | 付けたActorに追従 | Audio Component | 動く物から出る音(エンジン音、松明) |
ここで見落としやすいのが 戻り値の有無 です。 Play で始まるノードは撃ちっぱなし で、Audio Componentを返しません。つまり あとから止められません 。ループする環境音やBGMを Play 系で鳴らしてしまうと、レベルを抜けるまで止まらない音ができあがります。 止める可能性がある音は Spawn Sound 系 を使ってください。実行中にパラメータを送りたいときも同じで、戻り値のAudio Componentが必要になります(→ MetaSoundsの記事)。
レベルに置きっぱなしの環境音なら、Blueprintを書く必要すらありません。Place Actorsパネルの Ambient Sound アクターを置き、Sound に音を指定するだけで、その場所で鳴り続けます。
補足: ゲーム内の「音」と、AIが聞き取る「音」は別物です。スピーカーから出る音をAIが勝手に聞くわけ ではなく、AIの聴覚には別途
Report Noise Eventで知らせます(→ AI Perceptionの記事)。
距離減衰はアセットが持つ
3D再生にしただけでは、まだ距離で小さくなりません。 減り方を書いた設計図 が要ります。それが Sound Attenuation アセットです。
コンテンツブラウザで右クリック → Sounds → Sound Attenuation で作成します。名前は ATT_Ambient のように付けておくと分かりやすくなります。

アセットを開くと項目が並びますが、まず触るのは Attenuation (Volume) の中の3つだけです。
| 項目 | 意味 | 決めること |
|---|---|---|
| Attenuation Shape | 減衰する範囲の形 | 通常は Sphere のまま |
| Inner Radius | この距離 までは最大音量 | 音が「近い」と感じる範囲 |
| Falloff Distance | Inner Radiusの先、 音量が0になるまでの距離 | 音が届く広さ |
大事なのは、この2つが 足し算 だということです。
聞こえなくなる距離 = Inner Radius + Falloff Distance
Inner Radius 300 、Falloff Distance 1500 なら、3m以内では最大音量、そこから18mへ向けて減っていき、 18mを超えると完全に無音 になります(UEの1ユニットは1cmです)。
減り方のカーブは Attenuation Function で選びます。
| 種類 | 特徴 |
|---|---|
| Linear | まっすぐ減る。分かりやすいが、近距離での変化が鈍い |
| Logarithmic | 近くで急に落ちる |
| Inverse | 現実の物理に近い落ち方 |
| Natural Sound | 耳で自然に感じるよう調整されたカーブ |
| Custom | 自分でカーブを描く |
迷ったら Natural Sound から試すと、極端な結果になりにくいです。
作ったアセットは、次のどこかに割り当てます。
| 割り当て先 | 効果の範囲 |
|---|---|
Sound Wave / Sound Cue の Attenuation Settings | その音を どこで鳴ら しても 効く |
Audio Component / Ambient Sound の Attenuation Settings | その配置ぶんだけ効く |
Play Sound at Location の Attenuation Settings ピン | その1回の再生だけ |
同じ種類の音は、1つのAttenuationアセットを共有させてください。 足音・薬莢・小物の音がすべて ATT_SmallSFX を見ていれば、「効果音の聞こえる範囲が全体的に狭い」と感じたとき、直す場所は1箇所です。
空間化(Spatialization)とステレオ音源
同じアセットの Attenuation (Spatialization) にある Enable Spatialization は、 音を左右に定位させるか の設定です。距離減衰とは別物で、片方だけ有効にすることもできます。
注意したいのは ステレオ音源 です。空間化されたステレオ音は、左右のチャンネルが 3D Stereo Spread で指定した幅を持つ 2つの点音源 として扱われます。広がりを持たせて作ったBGMにAttenuationを付けると、この扱いになって意図した音像が崩れます。 BGMやナレーションは2D再生のまま にしてください。
Sound Classで音を束ねる
「BGMだけ下げたい」を音源ごとの Volume Multiplier で解決しようとすると、音を追加するたびに設定が増えていきます。UEはこれを カテゴリ で扱います。
右クリック → Sounds → Sound Class で作成し、音の種類ごとに用意します。

Sound Classは 親子関係 を持てます。親のSound Classを開き、Child Classes に子を追加すると階層になります。
SC_Master
├─ SC_BGM
├─ SC_SE
└─ SC_Voice
こうしておくと、 SC_Master の音量を変えるだけで全体が動きます 。マスターボリュームのスライダーは、この親を触るだけで作れます。
割り当ては音の側で行います。Sound Wave または Sound Cue を開き、詳細パネルの Sound Class に該当するクラスを指定してください。
未設定のまま鳴らすとどうなるか。
Sound Classが空の音は、どのカテゴリにも属さない扱いになります。この状態で「SEだけ下げる」を作っても、その音だけ下がりません。 音を追加したら Sound Class を設定する を習慣にしてください。
Sound Mixで一時的に押し下げる
Sound Classは 分類 で、それ自体は音量を動かしません。 どのクラスをどれだけ変えるか を書くのが Sound Mix アセットです(右クリック → Sounds → Sound Mix)。

Sound Mixを開くと Sound Class Effects という配列があり、1エントリごとに次を指定します。
| 項目 | 意味 |
|---|---|
| Sound Class Object | 対象のSound Class |
| Volume Adjuster | 音量の倍率(1.0が等倍) |
| Pitch Adjuster | ピッチの倍率 |
| Apply to Children | 子クラスにも適用するか |
たとえば SM_MenuDuck に「SC_BGM の Volume Adjuster を 0.3」と1件だけ書いておけば、 BGMを3割まで絞り、SEはそのまま というミックスができます。
適用と解除はBlueprintの2ノードです。
| ノード | 引数 | 動き |
|---|---|---|
| Push Sound Mix Modifier | In Sound Mix Modifier | そのMixを有効にする |
| Pop Sound Mix Modifier | In Sound Mix Modifier | そのMixを解除する |
(メニューを開く) → Push Sound Mix Modifier(In Sound Mix Modifier: SM_MenuDuck)
(メニューを閉じる)→ Pop Sound Mix Modifier (In Sound Mix Modifier: SM_MenuDuck)
これで「ポーズ中はBGMが引っ込む」が完成します(→ ポーズメニューの記事)。
スライダーで音量を変えるノード
一方、オプション画面の音量スライダーは、値が連続的に変わります。この用途には Set Sound Mix Class Override を使います。
| 引数 | 意味 | 実用的な値 |
|---|---|---|
| In Sound Mix Modifier | 書き込む先のSound Mix | SM_UserAudio |
| In Sound Class | 対象のSound Class | SC_BGM |
| Volume | 音量の倍率 | スライダーの値(0.0〜1.0) |
| Pitch | ピッチの倍率 | 1.0 |
| Fade In Time | 変化にかける秒数 | 0.1(既定は1.0) |
| Apply to Children | 子クラスにも適用するか | true |
1つ落とし穴があります。 オーバーライドは、そのSound Mixがアクティブでなければ効きません。 ゲーム開始時に一度 Push Sound Mix Modifier でMixを有効にしておき、スライダーからは Set Sound Mix Class Override だけを呼ぶ形にしてください。「スライダーを動かしても何も起きない」の原因は、ほぼこれです。
Fade In Time の既定は 1.0 秒です。スライダーに使うと反応が1秒遅れて感じるので、 0.1 程度まで下げます。
SubmixとAudio Volumeで響かせる
ここまでは音量の話でした。 リバーブやEQといった加工 は、また別の経路を通ります。

すべての音は、最終的に Master Submix へ流れ込みます。その途中に自分で作った Sound Submix を挟むと、そこを通る音 全体 に対してエフェクトを掛けられます。
| 仕組み | 掛かる対象 | 例 |
|---|---|---|
| Source Effect | 個々の音源 | 特定の声だけ無線っぽく歪ませる |
| Sound Submix | そのSubmixに流れる音全体 | BGM全体にコンプレッサー |
| Audio Volume | その空間にいる間の音 | 洞窟のリバーブ |
Submixは右クリック → Sounds → Sound Submix で作り、アセット内の Submix Effect Chain にエフェクトプリセット(Submix Effect Dynamics Processor、Submix Effect Submix EQ など)を追加します。音の側は、Sound Wave / Sound Cue の詳細パネルにある Sound Submix で流し先を指定します。
実行中に音量だけ変えたいなら、Submixに対して Set Submix Output Volume を呼べます。
空間ごとの響きはAudio Volumeで
「洞窟の中だけ響かせる」は、Submixではなく Audio Volume が担当です。Place Actorsパネルから配置し、洞窟を覆うサイズに広げて、詳細パネルの Reverb で設定します。
| 項目 | 内容 |
|---|---|
| Apply Reverb | チェックを入れる |
| Reverb Effect | Reverb Effect アセット(右クリック → Sounds → Reverb Effect で作成) |
| Volume | 響きの強さ |
| Fade Time | 出入りしたときの切り替わりにかかる秒数 |
音の側には何も設定しません。 プレイヤーがボリュームの内側に入ると響き、出ると戻ります。同じ足音が、屋外では乾いて、洞窟では反響します。
ここで1つ、つまずきやすい仕様があります。 リバーブは Attenuation の Reverb Send 経由で送られます。 そのため、 Attenuationを持たない2D再生の音には、Audio Volumeのリバーブが掛かりません 。3Dで鳴らしているはずの足音が響かないときは、その足音にAttenuationが割り当たっているかを確認してください。
実践:音量設定画面と、距離で消える環境音
RPGのオプション画面、ホラーゲームの環境音、探索ゲームのたき火。 「BGMとSEを別々に調整できる」と「音源から離れると聞こえなくなる」 は、ジャンルを問わず必ず必要になります。この2つを同時に組みます。
完成形
BGMスライダーを半分にするとBGMだけが小さくなり、たき火の音は変わりません。そしてたき火から歩いて離れると、18mの地点で完全に聞こえなくなります。

再現条件
Third Person テンプレート で新規プロジェクトを作り、次を用意します。音素材はループするBGMと、たき火のような環境音の2つがあれば足ります。
| 種類 | 名前 | 設定 |
|---|---|---|
| Sound Wave | SW_BGM | Looping をオン、 Sound Class に SC_BGM |
| Sound Wave | SW_Fire | Looping をオン、 Sound Class に SC_SE 、 Attenuation Settings に ATT_Ambient |
| Sound Class | SC_Master | Child Classes に SC_BGM と SC_SE を追加 |
| Sound Class | SC_BGM / SC_SE | 作るだけ |
| Sound Mix | SM_UserAudio | Sound Class Effects に2件(下表) |
| Sound Attenuation | ATT_Ambient | Inner Radius 300.0 / Falloff Distance 1500.0 / Attenuation Function Natural Sound |
| Widget Blueprint | WBP_AudioSettings | Slider_BGM と Slider_SE を配置 |
| レベル | Ambient Sound アクター | Sound に SW_Fire 。プレイヤー開始地点から少し離れた場所へ |
SM_UserAudio の Sound Class Effects は2件です。
| # | Sound Class Object | Volume Adjuster | Apply to Children |
|---|---|---|---|
| 0 | SC_BGM | 1.0 | true |
| 1 | SC_SE | 1.0 | true |
WBP_AudioSettings のスライダーは、2つと も次の初期値にします。
| 項目 | 値 |
|---|---|
Min Value | 0.0 |
Max Value | 1.0 |
Value | 1.0 |
Is Variable | チェック(Blueprintから参照するため) |
ステップ1:Mixを起動時に押しておく
BP_ThirdPersonGameMode を開き、Event BeginPlay に次をつなぎます。BGMもここで鳴らします。
Event BeginPlay(BP_ThirdPersonGameMode)
→ Push Sound Mix Modifier(In Sound Mix Modifier: SM_UserAudio)
→ Play Sound 2D(Sound: SW_BGM)
→ Create Widget(Class: WBP_AudioSettings)→ Add to Viewport
Push Sound Mix Modifier が先 です。この1ノードが無いと、次のステップのオーバーライドは何も起こしません。
BGMを Play Sound 2D で鳴らしているのは意図的です。Attenuationを通さないため距離の影響を受けず、ステレオの広がりもそのまま残ります。ここでは1つのレベルで鳴らしっぱなしにするので撃ちっぱなしで足りますが、 曲を止めたり切り替えたりする作りにするなら Spawn Sound 2D に変えて、戻り値のAudio Componentを保持 してください。
ステップ2:スライダーから音量を書き換える
WBP_AudioSettings のグラフで、各スライダーの On Value Changed イベントを作ります。デザイナー上でスライダーを選び、詳細パネル下部のイベント一覧から On Value Changed の + を押すと生成されます。

Event On Value Changed(Slider_BGM) ── Value ─┐
→ Set Sound Mix Class Override │
In Sound Mix Modifier : SM_UserAudio │
In Sound Class : SC_BGM │
Volume : ←────────────────┘ (Value をそのまま接続)
Pitch : 1.0
Fade In Time : 0.1
Apply to Children : true
Event On Value Changed(Slider_SE) ── Value ─┐
→ Set Sound Mix Class Override │
In Sound Mix Modifier : SM_UserAudio │
In Sound Class : SC_SE │
Volume : ←────────────────┘
Pitch : 1.0
Fade In Time : 0.1
Apply to Children : true
2本とも形は同じで、 In Sound Class だけが違います 。ボイスやUI音を足すときも、Sound Classとスライダーを1組ずつ増やすだけで済みます。
ステップ3:マウスを使えるようにする
Third Personテンプレートのままだとカーソルが出ないため、スライダーを操作できません。BP_ThirdPersonGameMode の BeginPlay に足します。
→ Get Player Controller → Set Show Mouse Cursor(true)
確認する
Playして、次の3つを順に確かめてください。
- BGMスライダーを中央(0.5)へ動かす。 BGMだけが半分の音量になり、 たき火の音は一切変わりません
- SEスライダーを0へ動かす。 たき火の音が消え、 BGMは鳴り続けます
- 両方を1.0に戻し、たき火から歩いて離れる。 3m地点までは音量が変わらず、そこから徐々に小さくなり、 18mで完全に無音 になります
3つ目の距離は目測でも構いませんが、正確に見たいときはコンソールで stat unit ではなく、たき火のActorとプレイヤーの距離を Print String で出すと確認できます(→ Print Stringの記事)。
うまくいかないときの切り分けです。
- スライダーを動かしても何も変わらない →
Push Sound Mix Modifierを呼んでいない。オーバーライドはMixがアクティブでないと効きません - BGMを下げると、たき火の音も一緒に下がる →
SW_FireのSound Classが未設定。どのクラスにも属していないか、SC_Master直下になっています - 離れても音量が変わらない → Ambient Soundの
Attenuation Settingsが空。またはSW_Fire側に割り当てたつもりでアクター側で上書きされています - すぐ聞こえなくなる/いつまでも聞こえる →
Inner RadiusとFalloff Distanceの 合計 が聞こえる距離です。300+1500で18m - たき火の音が左右に振れず、真ん中で鳴る → その音素材がステレオです。3D再生する環境音はモノラルの素材を使ってください
ここで SW_Fire の Sound Class を SC_BGM に付け替えて みてください。BGMスライダーを動かすと、たき火の音まで一緒に下がります。 音量の管理はSound Classの割り当てで決まる ことが、一度やってみるとはっきり分かります。
ポイントは2つです。
- 音量はSound Classで束ね、Mixで一括して変える: 音源ごとに
Volume Multiplierを配ると、音を追加するたびに設定漏れが起きます。 音を作ったらSound Classを割り当てる だけにしておけば、スライダー側は増やさずに済みます - 距離減衰はAttenuationアセットに集約する: 同じ性格の音は同じアセットを共有させます。「効果音が遠くまで届きすぎる」と感じたとき、直す場所が1つで済みます
設定した音量をゲーム終了後も保つには、スライダーの値をセーブデータへ書き出し、起動時に読み戻して同じノードを1回呼びます(→ セ ーブ/ロードの記事)。設定値の保持先には GameInstance Subsystem が向いています。
おまけ:先に知っておくと良いこと
- 同時に鳴る音の数は Sound Concurrency で抑える: 敵が20体いて全員が足音を鳴らすと、音が団子になって割れます。
Sound Concurrencyアセットで「同じ種類は最大4個まで」「超えたら古い音を止める」を決められます。雑多な効果音には設定しておくと安定します Volume Multiplierを1.0より上げない: 再生ノードのVolume Multiplierは割れる原因になります。音が小さいと感じたら、素材そのものの音量かSound Class側で調整してください- Attenuationの
Shapeは Sphere 以外も選べる: 廊下に沿った音ならCapsule、部屋全体ならBoxが自然です。ただし最初はSphereで組み、必要になってから変えるほうが調整は速く進みます - Occlusion(壁越しのこもり)はコストがかかる: Attenuationの
Enable Occlusionを入れると壁越しの音がこもりますが、音源ごとにトレースが走ります。全部の音に入れず、 重要な音だけ に絞ってください - エディタで音が鳴らないときはビューポート右上を見る:
Play中でも、エディタ設定やウィンドウのフォーカスによってはミュートされていることがあります。OS側のミキサーでUE5がミュートになっていないかも確認してください
まとめ
音を整える仕組みは、役割ごとに置き場所が分かれています。
| 決めたいこと | 使うもの |
|---|---|
| 位置を持つか | 再生ノードの選択(2D / at Location / Spawn Attached) |
| 距離でどう減るか | Sound Attenuation (Inner Radius + Falloff Distance) |
| どのグループの音か | Sound Class |
| そのグループを今どれだけ鳴らすか | Sound Mix + Set Sound Mix Class Override |
| 全体をどう加工するか | Sound Submix |
| 空間でどう響くか | Audio Volume |
そして実務上の指針が1つ。 Blueprintに音量の数字を持たせない ことです。音量はSound Class、距離はAttenuation、響きはAudio Volume。それぞれのアセットに預けておけば、音を1つ追加したときに触るのは、その音のアセットだけで済みます。
あなたのゲームで、プレイヤーが最初に「音量を下げたい」と思うのはどの音でしょうか。