【Unity入門】効果音(SE)の鳴らし方!複数管理する場合についても!

ゲームを作っていると効果音を鳴らしたくなる場面がありますよね?

今回は、

・ 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で効果音を鳴らす方法についてやってきました。

効果音を使う機会は多くあるので、ぜひ使いこなしてみてください!

LINEで送る
Pocket

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

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

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

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

cta_under_bnr

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

書いた人

sato

sato

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

おすすめコンテンツ

いまならレッスン期間が2週間延長!この秋、プログラミングを学ぼう

転職成功で受講料0円!あなたもプログラミングを学んでエンジニアデビュー