【Unity】音の鳴らし方・音楽を再生する方法解説

URLをコピーする
URLをコピーしました!

CGBoxの一部の記事にはアフィリエイト広告が含まれております。

ゲームを開発していると、効果音を鳴らしたりBGMを再生させたくなりますよね。

Unityでは簡単に音を鳴らす方法が用意されているんです!

本記事ではUnityでの効果音の鳴らし方、音楽を再生する方法について解説していきます。

目次

音を鳴らす方法

Unityで音を鳴らす方法について下のような順番で解説して行きます。

  • Unityで使える音の形式
  • AudioSourceコンポーネントをつける
  • 音を鳴らすスクリプトを作成
  • 音量調整する方法
  • 音声ファイルを読み込みする方法

今回は音声ファイルを下のフリーの効果音配布サイトからお借りして利用します。

Unityに対応している.mp3形式で配布されているのですぐに使う事ができますよ。

効果音ラボ
効果音ラボ - 商用無料、報告不用の効果音素材をダウンロード 2400音以上の音源を掲載したフリー効果音サイト。品質にこだわっており、テレビなどのプロの音響現場でも使われています。

Unityで使える音の形式

Unityで対応している音声ファイルの形式は以下の通りです。

「.mp3」「.ogg」「.wav」「.aiff / .aif」
「.mod」「.it」「.s3m」「.xm」

Unity Documentation

AudioSourceコンポーネントをつける

設定したい音声ファイルをUnityにドラッグアンドドロップでインポートしましょう。

下のように音声ファイルのアセットが作成されます。

作成されたアセットを、効果音を設定するゲームオブジェクトにドラッグアンドドロップしましょう。

するとゲームオブジェクトに下のようなAudioSourceコンポーネントが設定されます。

この状態でゲームを実行してみると、ゲーム開始時に一度だけ音が鳴ります。

これは「Playe On Awake」にチェックが入っているため、ゲーム開始時に音が鳴っています。

「Loop」にチェックを入れると常に音声ファイルを流し続ける事ができます。

LoopはBGMを流したい場合に利用できます。

ここまでゲーム開始時に音を鳴らす方法と、常に音を鳴らす方法を紹介しました。

次からは任意のタイミングで音を鳴らす方法を紹介します。

音を鳴らすスクリプトを作成

ここでは任意のタイミングで音を鳴らす設定をしていきましょう。

下のようなスクリプトを作成し、音を設定したいゲームオブジェクトにドラッグアンドドロップでセットしましょう。

using UnityEngine;

public class SoundTest : MonoBehaviour {

    AudioSource audioSource;

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

    void Update() {
        if (Input.GetKey(KeyCode.Space)) {
            audioSource.PlayOneShot(audioSource.clip);
        }
    }
}

ゲームオブジェクトには下のようにAudioSourceとSoundTestスクリプトがついた状態です。

これでプログラムを実行してみると、スペースキーを押すたびに音声が鳴るのが確認できるかと思います。

Start関数内でゲームオブジェクトについたAudioSourceを取得し

Update関数内でスペースキーを押すたびにPlayOneShot(音を一度鳴らす)しています。

今回はスペースキーを押したタイミングに設定しましたが、音を鳴らしたいイベントに合わせて条件式を変更しましょう!

音量調整する方法

インスペクターのAudioSourceから簡単に音量を調整する事ができます。

AudioSourceには下のようにVolumeの項目があります。

0~1.0までの範囲で動かす事ができ、音量の調節ができます。

音声ファイルを読み込みする方法

スクリプトから音声ファイルを読み込みしたい場合があるかと思います。

そんなときはResources.Load関数を利用することで読み込みができます。

Resources.Load関数を使うためには、Assetsフォルダ内にResourceフォルダを作成

その中に読み込みしたい音声ファイルを置きましょう。

スクリプト内に下のコードを入れることでsampleの音声ファイルが読み込みでき、変数audioに格納されます。

AudioClip audio = Resources.Load(“sample”);

音がでないとき

音声ファイルを手順通りに設定しても、どうしても音がでない場合に確認したい設定項目があります。

Gameビュー内にある、下の赤丸のアイコン部分を確認して見ましょう。

上の画像は音が鳴る状態です。

ここが下のように×印がついているとミュートになっており、音が全く出なくなります。

音が出ない時はここがミュートになっていないか確認してみましょう。

音声認識させる方法紹介

Unityで音声認識をさせるためには、APIを利用したり、音声認識サービスを利用するなどさまざまな方法があります。

ここでは実際にUnityで音声認識を実装している記事を2つ紹介します。

下の記事では音声認識のAPIを利用して、音声認識AIアシスタントを実装する方法が解説されています。

下の記事ではOS内蔵の音声認識エンジンを利用して、Androidで音声認識させる方法が解説されています。

note(ノート)
【Unity】Androidで音声認識を試してみた|加藤文明社|メディア制作課 こんにちは! エンジニアの宮Pです。 今回はAndroidスマートフォンを使って音声認識をおこなうプロジェクトを試してみます🙂 音声認識をおこなうには、いくつかの方法が考...

音ゲー作りに便利なおすすめアセット

音ゲーの判定に「Koreographer」

あわせて読みたい
Koreographer | Audio | Unity Asset Store Get the Koreographer package from Sonic Bloom and speed up your game development process. Find this & other Audio options on the Unity Asset Store.

Koreographerは音ゲーの判定システムを作る際に便利なアセットです。

音楽の任意のタイミングと、ゲーム内のイベントとを同期する事ができるようになります。

リズムゲームのデモも含まれているので、音ゲーを作り始める際に非常に役立ちます。

Koreographerの詳しい使い方については下の記事が参考になります。

原カバンは鞄のお店ではありません...
音ゲー製作には必須?Koreographerを使ってみたよ - 原カバンは鞄のお店ではありません。 長いからいきなり本題 Unityで音楽とオブジェクトの動きを連動させたい場合「Koreographer」というアセットが有名ですが、アセットストアの中では結構高価なアセットという...

音ゲーの譜面作成に「Rhythm Timeline」

あわせて読みたい
Rhythm Timeline | Audio | Unity Asset Store Get the Rhythm Timeline package from dypsloom and speed up your game development process. Find this & other Audio options on the Unity Asset Store.

Rhythm Timelineは音ゲーの譜面データを作成する際に役立つアセットです。

このアセットを導入すればUnityのエディタ内のタイムラインで譜面データを編集する事ができるようになります。

自分で実装するのは大変な作業なので、音ゲー作りにぜひ使いたいアセットです!

まとめ

以上、音の鳴らし方、音楽を再生する方法について解説してきました!

  • AudioSourceコンポーネントで音が鳴らせる
  • Playe On Awakeはゲーム開始時に、Loopで常に音を鳴らすことができる
  • Resources.Loadで音声ファイルを読み込みできる
  • 音が出ない時はミュートになっていないか確認
  • 音ゲーの制作にはアセットを使うと便利

効果音を上手く使えると一気にゲームらしくなるのでマスターしておきたいですね!

この記事が気に入ったら
フォローしてね!

よかったらシェアしてね!
URLをコピーする
URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Unityメインの個人開発者。UnityでAIを学習させてみたり、野球ゲームを作ってみたりと色々してました。現在はライターとして、Unityで開発する人の力になる記事が書けるよう奮闘中。

目次
閉じる