ゲームを作っていると効果音を鳴らしたくなる場面がありますよね?
今回は、
・ UnityでSE(効果音)を鳴らすには?
・使用できる形式は?
といった基本的な内容から、
・実際に効果音を鳴らす方法
・効果音・BGMが複数あるとき
などの少し応用的なことまで詳しく解説していきます!
UnityでSE(効果音)を鳴らすには?
unityで効果音を鳴らすには音を出したいオブジェクトにAudioSourceコンポーネントをつけ、Audio Clipを再生することで音を出せます。
![]()
Audio Clipには自由に音声ファイルを設定できるので、好きな音を鳴らせます。
鳴らされた音はAudio Listenerによって聞き取られます。
Audio ListeneはMain Cameraに付属しており特別な設定をしなくても使えますので、安心してください。
使用できる形式は?
unityで使用できる音声ファイル形式を紹介します。
使用できる音声ファイルは「.aif」、「.wav」、「.mp3」、「.ogg」です。
よく使う音声ファイル形式は使えるようですね!
効果音をならそう!
それでは実際に効果音を鳴らしていきましょう。
今回は矢印キーの左を押したら音がなるようにします。
下準備
まずはスクリプトと空のゲームオブジェクトを作って結びつけてください。
その後、空のゲームオブジェクトにAudioSourceコンポーネントをつけてください。
私は空のオブジェクトにAudioSourceコンポーネントをつけましたが、音を出したいオブジェクトがあれば、そのオブジェクトに結びつけましょう。
次は今回使いたい音声ファイルを読み込んでください。
あとで複数の音声ファイルを再生しますので、四つ入れておきます。
Assetsにドラッグ&ドロップで入れられます。
入れ終えると下記の画像のようになります。
![]()
コードを書こう!
矢印キーの左を押すと音が鳴るコードを書いていきます。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour {
public AudioClip sound1;
AudioSource audioSource;
void Start () {
//Componentを取得
audioSource = GetComponent<AudioSource>();
}
void Update () {
// 左
if (Input.GetKey (KeyCode.LeftArrow)) {
//音(sound1)を鳴らす
audioSource.PlayOneShot(sound1);
}
}
}
今回はpublic変数Sound1がありますので、鳴らしたい音声ファイルをこの変数に入れてください。
![]()
音声ファイルを入れ、実行してみましょう。
矢印キーの左を押すと音が出ます。
コードの解説
まず、publicのAudioClip型変数sound1とAudioSource型の変数audioSourceを作ります。
変数sound1には音声ファイルを先ほど入れましたね。
変数audioSourceにはStart関数の中でスクリプトを結びつけたオブジェクトのAudioSourceコンポーネントが代入されます。
Update関数の中で矢印キーの左が押されると音が鳴る処理をします。
audioSource.PlayOneShot(sound1);という部分ですね。
audioSourceというのはAudioSourceコンポーネントが代入されている変数でしたね。
PlayOneShotというのは引数にとったAudioClipを一回再生する関数です。
sound1というのはAudioClip型の変数で自分が入れた音声ファイルが入っていましたね。
つまり、audioSource.PlayOneShot(sound1);は自分が入れた音声ファイルを一回だけ再生させるという意味になります。
矢印キーの入力については下記のリンクを参照してください。
【Unity】キー入力入門!超簡単なInputクラスの使い方!
更新日 : 2018年12月19日
[応用]効果音・BGMが複数あるとき!
一回だけ効果音を再生させる場合はスクリプトの中でAudioClip型の変数を一つだけ用意しました。
再生させたい効果音が複数ある場合は、その分だけAudioClip型の変数を用意してください。
今回は矢印キーの上下左右をそれぞれ押した時に違った音を鳴らしたいので、四つAudioClip型の変数を用意します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Test : MonoBehaviour {
public AudioClip sound1;
public AudioClip sound2;
public AudioClip sound3;
public AudioClip sound4;
AudioSource audioSource;
void Start () {
//Componentを取得
audioSource = GetComponent<AudioSource>();
}
void Update () {
// 左
if (Input.GetKey (KeyCode.LeftArrow)) {
audioSource.PlayOneShot(sound1);
}
// 右
if (Input.GetKey (KeyCode.RightArrow)) {
audioSource.PlayOneShot(sound2);
}
// 上
if (Input.GetKey (KeyCode.UpArrow)) {
audioSource.PlayOneShot(sound3);
}
// 下
if (Input.GetKey (KeyCode.DownArrow)) {
audioSource.PlayOneShot(sound4);
}
}
}
sound2,3,4にそれぞれ好きな効果音を入れましょう。
![]()
その後実行すれば、それぞれの矢印キーごとに違った音が鳴るでしょう。
まとめ
いかがでしたか?
今回はunityで効果音を鳴らす方法についてやってきました。
効果音を使う機会は多くあるので、ぜひ使いこなしてみてください!