初心者必見!現場レベルの「ゲーム制作講座PDF」を無料プレゼント中!▶

UnityでBGM/SEを実装 | ゲーム内の音管理

Unity ゲーム制作実践

キャラが動いた瞬間、画面が静かすぎて物足りない。

逆に、BGMとSEが重なってうるさく感じることもありますよね。

「BGMはどこに置く?」「ジャンプ音はどう鳴らす?」

こんな疑問が浮かびますよね。

UnityならAudioSourceを使えば、BGMと効果音を分けて管理できます。

この記事では、ゲームに音を入れる実装の流れを、初心者向けに整理します。

  • BGMとSEの役割が分からず、同じAudioSourceに詰め込んで音が途切れる…
  • シーンを切り替えたらBGMが二重に鳴ってしまう。
  • 音量の調整方法がわからず、プレイ中にうるさすぎる。

この記事でわかること

  • AudioClipをインポートしてAudioSourceに割り当てる方法
  • BGMをループ再生する設定のコツ
  • SEをPlayOneShotで重ねて鳴らす手順
  • シーン切替時にBGMを維持・切り替える考え方
  • 音量スライダーでBGMとSEを分けて調整する概要

\プログラミング未経験でも大丈夫!まずは1本作り切ろう/

初心者が最初に選ぶならコレ

Unity ノンフィールドRPG
+スレスパ風JRPG講座

★★★★★ (Unity6対応)

Unity6対応・スマホ化対応の最新カリキュラム。「何から始めればいいかわからない」という初心者でも、ステップごとに手を動かすだけでRPGが完成します。

講座を見てみる \ゼロからでもスマホ対応RPGが作れる!/

憧れのアクションゲームに挑戦

Unity 2Dアクションゲーム
の作り方講座(ロックマン風)

★★★★★ (スマホ化・広告実装)

初心者でもロックマン風の横スクロールACTが作れる講座。7ステージ+ラスボスという本格構成で、スマホ化・広告実装まで対応。「自分のゲームをリリースしたい」夢を叶えます。

講座を見てみる \初心者でも本格ACTが完成する!/

3Dゲーム開発の入口はここ

ゼルダ風3Dアクションゲーム
の作り方講座

★★★★★ (スマホ化対応)

「3Dゲームって難しそう…」と感じている初心者向けの講座。全16回でゼルダ風3Dアクションがスマホ対応で作れるようになります。3D開発の基礎がしっかり身につきます。

講座を見てみる \初心者でも全16回で3Dゲームが完成!/

BGMとSEの役割を分けて設計する

ゲームの音は、大きくBGMとSEの2種類に分けます。

BGMはシーン全体の雰囲気を作る「背景の音」です。

SEはジャンプ・取得・ボタンなど、イベントに合わせて鳴る「短い音」です。

この2つを同じAudioSourceで扱うと、BGMが止まったりSEが重ならなくなったりします。

種類 用途 再生の特徴
BGM タイトル・ステージ・ボス戦など場面の雰囲気 ループ再生が基本。
1本のAudioSourceで長く流す
SE ジャンプ・攻撃ヒット・UIクリックなど瞬間的な音 短く重ねて鳴らす。
PlayOneShotが向いている

最初に「BGM用」「SE用」のAudioSourceを分ける設計にしておくと、あとから調整しやすくなります。

AudioClipをインポートしてAudioSourceに設定する

音素材はProjectウィンドウにドラッグ&ドロップするだけでAudioClipとして読み込めます。

空のGameObjectを作成し、AudioSourceコンポーネントをAdd Componentで追加します。

InspectorのAudioClip欄に、使いたいBGMファイルをドラッグして割り当てましょう。

BGM用のGameObjectには「BGM_Player」、SE用には「SE_Player」のように名前を付けると管理が楽です。

BGMのInspector設定

BGM用AudioSourceでは、次の項目を確認します。

  • Play On Awake:シーン開始時に自動再生するならオン
  • Loop:BGMはオンにして曲の終わりで繰り返す
  • Spatial Blend:2Dゲームなら0(完全2D)にする

3Dゲームで遠くの音を小さくしたい場合だけ、Spatial Blendを上げます。

BGMをループ再生するスクリプト例

Inspectorだけでも再生できますが、シーンごとに曲を変えたいときはスクリプトが便利です。

次のコードは、指定したAudioClipをループ再生する最小例です。

using UnityEngine;

public class BgmManager : MonoBehaviour
{
    [SerializeField] private AudioSource bgmSource;
    [SerializeField] private AudioClip titleBgm;
    [SerializeField] private AudioClip stageBgm;

    public void PlayBgm(AudioClip clip)
    {
        if (clip == null || bgmSource == null) return;
        if (bgmSource.clip == clip && bgmSource.isPlaying) return;

        bgmSource.clip = clip;
        bgmSource.loop = true;
        bgmSource.Play;
    }

    public void PlayTitleBgm => PlayBgm(titleBgm);
    public void PlayStageBgm => PlayBgm(stageBgm);
}

同じ曲がすでに流れているときは再生し直さないようにすると、無駄な切り替えを防げます。

管理人
管理人
BGM用のGameObjectは、シーンをまたいで消えないようにDontDestroyOnLoadを使う方法が定番です。
ただし、二重に作らないようシングルトン管理もセットで考えましょう。

SEをPlayOneShotで重ねて鳴らす

ジャンプや攻撃は短時間に何度も鳴ります。

SEはBGM用とは別のAudioSourceを用意し、PlayOneShotを使うのが定番です。

using UnityEngine;

public class SePlayer : MonoBehaviour
{
    [SerializeField] private AudioSource seSource;
    [SerializeField] private AudioClip jumpSe;
    [SerializeField] private AudioClip coinSe;

    public void PlayJump => seSource.PlayOneShot(jumpSe);
    public void PlayCoin => seSource.PlayOneShot(coinSe);
}

PlayOneShotなら、前のSEが鳴っている最中でも次の音を重ねて再生できます。

ボタンクリックにはUIのOn ClickイベントからPlayJumpを登録する方法もあります。

3D SEを使うときの注意

足音など位置で音量が変わるSEは、AudioSourceをキャラに付け、Spatial Blendを1に近づけます。

ただし2Dアクションでは、まずは2DのSE実装に慣れてから3D音に広げる方が迷いにくいです。

シーン切替時のBGM管理

タイトルからステージへ移るとき、BGMを切り替えたい場面は多いです。

方法は大きく2つあります。

  1. BGM専用のマネージャーをDontDestroyOnLoadで残し、LoadScene後に曲を変更する
  2. 各シーンにBGM用オブジェクトを置き、前のシーンと同じ曲なら再生しない

個人開発では、1つのBgmManagerをシーン間で共有する形が扱いやすいです。

BGM切替の実装手順
  • STEP1
    BgmManagerを1つだけ作る

    空のGameObjectにBgmManagerとAudioSourceを付け、AwakeでDontDestroyOnLoadを呼びます。
    すでに存在する場合は自分を破棄するシングルトンにすると安全です。
  • STEP2
    シーン開始時に曲を指定する

    各シーンの開始スクリプトからPlayStageBgmなどを呼び、シーンに合ったAudioClipを渡します。
  • STEP3
    フェードで切り替える(任意)

    急な切り替えが気になる場合は、Coroutineでvolumeを下げてからclipを変え、再度上げる処理を足します。
管理人
管理人
シーンをまたぐたびにBGMオブジェクトを新規作成すると、曲が二重に鳴る原因になります。
まずConsoleでAudioSourceの数を確認する習慣をつけてくださいね。

音量スライダーでBGMとSEを分けて調整する

設定画面では、BGMとSEの音量を別々に変えられるようにすると親切です。

AudioMixerを使う方法が本格的ですが、最初は次のようにvolumeを直接いじる形でも十分です。

public class VolumeSettings : MonoBehaviour
{
    [SerializeField] private AudioSource bgmSource;
    [SerializeField] private AudioSource seSource;

    public void SetBgmVolume(float value)
    {
        bgmSource.volume = Mathf.Clamp01(value);
        PlayerPrefs.SetFloat("BgmVolume", value);
    }

    public void SetSeVolume(float value)
    {
        seSource.volume = Mathf.Clamp01(value);
        PlayerPrefs.SetFloat("SeVolume", value);
    }
}

UIのSliderのOn Value ChangedにSetBgmVolumeを登録し、起動時にPlayerPrefsから読み込めば設定を保存できます。

素材の著作権については、ストア公開前にライセンス表記が必要かどうかも確認しておきましょう。

音素材の形式で迷わないために

BGMはループの継ぎ目が目立たないwavやogg、SEは容量の小さいmp3やwavがよく使われます。

Import Settingsで「Force To Mono」にすると、2DゲームのSE容量を抑えられる場合があります。

音量が小さすぎる素材は、Audacityなどの外部ツールで事前に正規化してからUnityに入れると調整が楽です。

記事を読んで「作ってみたい!」と思ったら!初心者でも1本完成できる講座で実力をつけよう

知識を読むだけで終わらせるのはもったいない。実際に手を動かしてゲームを1本完成させることで、理解が一気に深まります。プログラミング未経験からでも取り組める講座で、ゲーム開発の第一歩を踏み出しましょう。

Unity ノンフィールドRPG+スレスパ風JRPG講座【Unity6対応!初心者でもデッキ構築×JRPGをスマホ向けに作れる!】

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座

  • Unity6対応・スマホ化対応で最新環境のゲーム開発が学べる
  • Slay the Spire風のデッキ構築システム×JRPGの組み合わせを実装
  • 初心者でも迷わず進められる丁寧な解説構成
  • ノンフィールドRPGとデッキ構築JRPGの2つをまとめて学べるセット講座

Unity ノンフィールドRPGの作り方講座+Slay the Spire風デッキ構築JRPGの作り方講座は、プログラミング未経験の初心者でも取り組みやすい、ステップバイステップ形式の講座です。

Unity6対応・スマホ化対応の最新カリキュラムで、読んで「なるほど」と思った知識を、実際に動くゲームとして形にする体験ができます。

「何から始めればいいかわからない…」という初心者が最初に選ぶ一本として最適な講座です。

Unity6対応・スマホ化対応の最新カリキュラム
ゼロからでもRPGを完成させよう
→ スレスパ風デッキ構築JRPG講座を見てみる
初心者でもスマホ対応のRPGが作れる!まずは1本完成を目指そう!

Unity 2Dアクションゲームの作り方講座(ロックマン風)【全16回!初心者でもスマホ化・広告実装まで対応した本格横スクロールACTが作れる!】

Unity 2Dアクションゲームの作り方講座(ロックマン風)

  • ロックマン・マリオ・カービィのような横スクロールACTをゼロから開発
  • 7ステージ+ラスボスステージの本格的なゲーム設計を初心者でも実現
  • スマホ化・AdMob広告実装まで対応してリリースまで見据えた構成
  • 敵AI15体・多彩なマップギミック・武器システムを完全実装
  • 完全オリジナルゲームをアセット不使用で素材提供付きで制作

Unity 2Dアクションゲームの作り方講座(ロックマン風)は、ロックマン・スーパーマリオ・星のカービィのような2D横スクロールアクションゲームを、初心者でもゼロから開発できるようになる講座です。

全16回で当たり判定・物理挙動・敵AIの知識を実際のゲームコードとして実装する体験が詰め込まれています。スマホ化・広告実装まで対応しているため、「作って終わり」ではなくリリースまで見据えた実践スキルが身につきます。

「憧れのアクションゲームを自分の手で作ってみたい」という初心者に強くおすすめの一本です。

スマホ化・広告実装まで対応した本格横スクロールACT
初心者でもロックマン風2Dアクションをリリースまで作り上げよう
→ 2Dアクションゲームの作り方講座を見てみる
初心者でも本格ACTが完成する!広告収益まで視野に入れた実践スキルを手に入れよう!

ゼルダ風3Dアクションゲームの作り方講座【全16回!初心者でも3Dアクションがスマホ対応で作れる!】

ゼルダ風3Dアクションゲームの作り方講座

  • ゼルダの伝説・モンハン・原神のような3Dアクションをゼロから開発
  • 「3Dは難しそう」と感じている初心者でも取り組みやすい丁寧な解説構成
  • スマホ化対応で実機で動かせるゲームが完成
  • アセットを使った実践的なゲーム開発手法が身につく
  • 画像・動画・全ソースコード公開の充実したサポート

ゼルダ風3Dアクションゲームの作り方講座は、「3Dゲームは難しそう…」と感じている初心者こそおすすめの入門講座です。

全16回の丁寧な解説で、ゼルダの伝説・モンハン・原神のような本格的な3Dアクションゲームを確実に完成まで導きます。スマホ化対応で実機で動かせるため、初めて3Dゲームを作り上げた達成感がひときわ大きい講座です。

「3Dゲームを自分でも作れるか試してみたい」という初心者の最初の一歩として最適です。

初心者でも3Dアクションがスマホ対応で完成する
ゼルダ風3Dアクションゲームで3D開発の壁を一気に突破しよう
→ ゼルダ風3Dアクションゲームの作り方講座を見てみる
全16回でスマホで動くオリジナル3Dゲームを完成させよう!

まとめ

UnityでBGMとSEを実装するには、役割を分けたAudioSource設計が土台になります。

BGMはループ再生、SEはPlayOneShotで重ね鳴らし、シーン切替時はBgmManagerで二重再生を防ぐ。

この3点を押さえれば、静かすぎるゲームから一歩進めます。

音の実装とあわせて、UIやシーン遷移も学びたい方はUnity入門の森の講座も参考になります。

まずは1曲のBGMと1つのジャンプSEを入れて、実際に耳で確認してみましょう。

コメント

タイトルとURLをコピーしました