【Unity入門】音(BGM・SE)を再生する方法!これさえ読めば一通りはOK

ゲームなどを作っていて、BGMを鳴らしたいことありますよね?

今回は

・BGMを鳴らす仕組み
・BGMを鳴らしてみる

といった基本的な内容から、

・シーンが変わってもBGMを継続するには?
・SE(効果音)の鳴らし方

といった少し応用的な内容までわかりやすく解説します!

UnityでBGMを鳴らすには?

まずはunityでBGMを鳴らす仕組みについて説明しましょう。

unityではAudioClip(音)がAudioSourceで再生されることで、音がなります。

少し厳密さには欠けますがイメージとしてはAudioClipが『CD』で、AudioSourceがCDを再生させるための『CDプレイヤー』みたいな感じです。

オブジェクトにAudioSourceをコンポーネントとしてアタッチし、AudioClipをコンポーネントに紐付けることで使えます。

再生された音はAudioListenerというコンポーネントをアタッチしたオブジェクトで聞き取られます。

AudioListenerは初期状態ではMain Cameraにアタッチされています。

特に設定することなく使えますので、安心してください。

3DではAudioSourceがアタッチされたオブジェクトとAudioListenerがアタッチされたオブジェクトの位置関係により、音の聞こえ方が変わります。

AudioListenerにAudioSourceが近ければ音が大きく聞こえたり、AudioSourceが右側にあれば右から音が聞こえるといったようにです。

それでは、実際にやってみましょう。

効果音をならそう!

効果音をならす

それでは実際にBGMを再生してみましょう。

まずは、BGMに使いたい音声ファイルをunityに取り込んでください。

取り込んだら、オブジェクトを作ってください。

このオブジェクトはAudioSourceコンポーネントをアタッチするので、音の出所となります。

今作ったオブジェクトにAudioSourceコンポーネントをアタッチしましょう。

オブジェクトを選択し、AddComponent >Audio>AudioSourceでアタッチできます。

アタッチしたら、AudioSourceのプロパティAudioClipにBGMとして使いたい音声ファイルを紐づけてください。

ドラッグ&ドロップで紐付けられます。

この状態で再生をするとBGMがなり出します。

設定を加えよう!

今回はBGMですのでゲームを起動すると音がなり出し、再生し終えるとループする設定をしていきましょう。

やり方は非常に簡単で、該当箇所にチェックをつければ良いだけです。

ゲームが起動した時に音が鳴るのはPlayOnAwake、再生し終えるとループするのはLoopという部分になります。

それぞれチェックをつけてください。

PlayOnAwakeには最初からチェックがついていると思いますが、一応確認してみてください。

3D音声だとオブジェクトの位置に応じて音の聞こえ方が変わってしまいます。

今回はBGMとしてどの位置でも同じように音を聞こえるようにしたいので、2D音声に変更しましょう。

プロパティのSpatialBlendの値を0にすると2D音声に変更できます。

[応用]シーンが変わってもBGMを継続するには?

シーンが変わってもAudioClipをコンポーネントをアタッチしたオブジェクトが壊されなければ、BGMを継続できます。

その処理はスクリプトで制御すれば簡単に実装できます!

それではやっていきましょう。

スクリプトを作ってオブジェクトにアタッチしてください。

その後、画面遷移をしてもオブジェクトが壊れないようにコードを書きましょう。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour {

  // Use this for initialization
     void Start () {

             //画面遷移してもオブジェクトが壊れないようにする
             DontDestroyOnLoad (this);

     }

}

DontDestroyOnLoad (this);と書くことでスクリプトをアタッチしたオブジェクトが画面遷移をしても壊れなくなります。

画面遷移の処理については下記の記事を参考にして、コードを書いて下さい。

【Unity入門】超簡単!別のシーンへ切り替える方法
更新日 : 2018年12月18日

[応用]SE(効果音)も鳴らしてみよう!

今回はBGMを鳴らしましたが、unityではSE(効果音)を鳴らすこともできます。

非常に簡単にできますので、下記の記事を参考にしてやってみましょう。

【Unity入門】効果音(SE)の鳴らし方!複数管理する場合についても!
更新日 : 2019年1月7日

まとめ

いかがでしたか?

今回はunityでのBGMの鳴らし方についてやりました。

BGMを使うとゲームのクオリティが上がりますので、この記事を参考にぜひ使ってみてくださいね!

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

sato

sato

学生時代を含めると、かれこれ10年以上プログラマーとして過ごしています。
様々な言語や環境、プロジェクトに関わってきましたので、より実践的な記事をみなさんにお届きるよう情報発信していきます!