【Unity】BGMとSE(効果音)を同時に鳴らす方法
BGMが途切れることなく、効果音を鳴らす方法について考えます。
チュートリアル
準備する素材
サウンド音源を2つ用意します。
BGM(ループできるのが望ましい)
SE (効果音で、クリック音や爆発音)
オブジェクトの配置
サンプルのオブジェクト配置を確認してください。
GameObject(空のゲームオブジェクト)
Hierarchyウィンドウで、右クリックしてCreate Emptyを選択して作成します。
AudioSourceコンポーネント
GameObjectにAudioSourceコンポーネントを2つ追加します。
BGM再生ようとSE再生用にします。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-9.13.37-1024x743-2.png)
それぞれの音源(AudioClip)をアウトレット接続しておきます。(Projectウィンドウからドラッグ&ドロップ)
BGMは、Play On AwakeとLoopにチェックを入れておきます。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-9.56.18-2-450x1024.png)
スクリプト
AudioPlay.cs
スペースキーを押すとSEがなるようにしておきます。
using UnityEngine;
public class AudioPlay : MonoBehaviour
{
[SerializeField]
AudioSource seAudioSource;
void Update()
{
if (Input.GetKeyDown(KeyCode.Space))
{
seAudioSource.Play();
}
}
}
SE再生用のAudioSourceをAudioPlayスクリプトのSeAudioSourceフィールドにアウトレット接続します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.05.53.png)
実行
実行してみて、SEが鳴ったときには、BGMの音量が下がるのを確認します。
(応用)SEを鳴らしている時は、BGMの音量を下げたい
SEやボイスを再生している時、BGMの音量を下げて聞き取りやすくしたい場合の対応になります。
使う機能
UnityのAudio Mixerを使います。
Audio Mixerの作成
Projectウィンドウで右クリック、Create -> Audio Mixerを選択。
名前をMixerとしておきます。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.22.37.png)
Audio MixerにBGMとSEを登録
作成したAudioMixerをダブルクリックします。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.34.36-1.png)
次の手順で順番に登録します。
- Groupsの右にある「+」記号をクリックします。
- ②ができるので名前をBGMとします。
- Groupsの下のMasterをクリックします。
- ③ができるので名前をSEとします。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.37.04.png)
ダッキング(Ducking)他の音が鳴った時、音量を下げる機能を追加
BGMを選択して下部の Add…をクリックします。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.42.59.png)
Duck Volumeを選択します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.44.28.png)
同様にSEを選択して、右下のAdd…をクリック、Sendを選択します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.48.06.png)
SEを選択、インスペクターでReceiveに「BGM-Duck Volume」を選択します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.50.36-657x1024.png)
Send levelが表示されるようになりますので、0dBに変更しておきます。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-11.06.41.png)
再度、BGMをクリックしてインスペクターのThresholdの値を-40に変更します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.54.59-769x1024.png)
AudioSourceコンポーネントの出力先をMixerにします。
- GemeObjectを選択して、AudioSourceのOutputにMixerのBGMを登録します
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-10.58.17.png)
同様にSE向けのAudioSourceコンポーネントにSE(Mixer)を登録します。
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-11.02.37.png)
実行
実行してみて、SEが鳴ったときには、BGMの音量が下がるのを確認します。
調整
次の画面を表示〔BGMを選択している状態のインスペクター)しながら再生すると、リアルタイムで確認ができますので、
次のような値を調整して期待するサウンドを作っていきましょう。
値を変更すると、グラフも変更されますので視覚的に調整ができます。
Threshold:閾値
Ratio:閾値を超えてからの減衰率
Attack Time:閾値を超えてから反応するまでの時間
![](https://soft-rime.com/wp-content/uploads/2021/12/スクリーンショット-2021-12-08-11.10.50.png)
ディスカッション
コメント一覧
まだ、コメントがありません