Unityでフリーの効果音素材を再生


Unityで無料で使える効果音を再生する

Unityでゲームを作る時に必ず必要になってくるのが、効果音の再生です。

Unityで効果音を鳴らす

使用できる音声ファイル形式は .aif .wav .mp3 .oggです。
今回はmp3を使ってみることにします。

まず、効果音素材を手に入れる必要があります。
無料の効果音素材を配布している効果音工房からダウンロードしておきましょう。
こちらの効果音工房はフリーの効果音を配布されています。
利用規約も大変ゆるく、リンクやクレジット表記も必要ないため、ゲーム制作などに大変使いやすいです。

お好みの効果音をダウンロードしたら、早速鳴らしてみましょう。

1.音を出したいオブジェクトにAudioSourceコンポーネントをつけます。

2.AudioSourceAudio Clipに音声ファイル(koukaon.mp3)をセットします。

とりあえずこれだけで効果音を再生することができます。

試しにゲームを実行してみてください。

実行後に効果音が鳴ったのが確認できたと思います。

指定したイベント時に効果音を再生する

とりあえず効果音が再生されるのは確認できましたが、この状態だとオブジェクトが生成された時に鳴ってしまうことになります。
少ないオブジェクトで実行されるゲームなどでしたら、この方法で効果音のオブジェクトを生成して再生する方法でもまあなんとかなるかもしれません。

ですが、オブジェクトの生成には時間がかかってしまいます。
効果音を鳴らしたいその瞬間に生成が間に合わなくなり、ズレて効果音が鳴ってしまうことも考えられますね。

そこで、何かしらのイベントに対して効果音を鳴らす方法を考えてみたいと思います。

1.空のオブジェクトを生成し、AudioSourceコンポーネントをつけます。

これは先程と同じですね。

2.そのオブジェクトにスクリプトをアタッチします。

スクリプトを生成して、それをアタッチします。
スクリプトの中身はこのようになります。

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

public class Test : MonoBehaviour {

public AudioClip sound;
AudioSource audioSource;

 void Start () {
   audioSource = GetComponent<AudioSource>();
 }

 void Update () {
   // スペースキーの取得
  if (Input.GetKeyDown(KeyCode.Space)) {
   //音を鳴らす
    audioSource.PlayOneShot(sound);
   }
 }
}

3.スクリプトのAudioClipの変数(sound)に効果音をアタッチします。

これでスペースキーを押した際に効果音が再生されるようになります。

audioSource.PlayOneShotというのは、引数に指定したAudioClip(効果音)を1度だけ再生するというものになります。

複数の効果音を用意して鳴らしたい場合は、AudioClipの変数を複数用意して、条件分岐させてそれぞれaudioSource.PlayOneShotをしてやることで実装可能です。

いかがでしょうか。
今回は簡単にUnityで効果音を再生する方法をまとめてみました。
AudioClipの保持の仕方で色々と最適化することもできると思います。

今回は効果音工房さんのサイトの効果音を使用させていただきました。
ゲームを作るにあたって、効果音が付くと一気にゲーム感が増しますね。