ゲームなどを作っていて、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);と書くことでスクリプトをアタッチしたオブジェクトが画面遷移をしても壊れなくなります。
画面遷移の処理については下記の記事を参考にして、コードを書いて下さい。
[応用]SE(効果音)も鳴らしてみよう!
今回はBGMを鳴らしましたが、unityではSE(効果音)を鳴らすこともできます。
非常に簡単にできますので、下記の記事を参考にしてやってみましょう。
まとめ
いかがでしたか?
今回はunityでのBGMの鳴らし方についてやりました。
BGMを使うとゲームのクオリティが上がりますので、この記事を参考にぜひ使ってみてくださいね!