CGBoxの一部の記事にはアフィリエイト広告が含まれております。
【Unity】音の鳴らし方・音楽を再生する方法解説
ゲームを開発していると、効果音を鳴らしたりBGMを再生させたくなりますよね。
Unityでは簡単に音を鳴らす方法が用意されているんです!
本記事ではUnityでの効果音の鳴らし方、音楽を再生する方法について解説していきます。
音を鳴らす方法
Unityで音を鳴らす方法について下のような順番で解説して行きます。
- Unityで使える音の形式
- AudioSourceコンポーネントをつける
- 音を鳴らすスクリプトを作成
- 音量調整する方法
- 音声ファイルを読み込みする方法
今回は音声ファイルを下のフリーの効果音配布サイトからお借りして利用します。
Unityに対応している.mp3形式で配布されているのですぐに使う事ができますよ。
Unityで使える音の形式
Unityで対応している音声ファイルの形式は以下の通りです。
「.mp3」「.ogg」「.wav」「.aiff / .aif」
Unity Documentation
「.mod」「.it」「.s3m」「.xm」
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で音声認識させる方法が解説されています。
音ゲー作りに便利なおすすめアセット
音ゲーの判定に「Koreographer」
Koreographerは音ゲーの判定システムを作る際に便利なアセットです。
音楽の任意のタイミングと、ゲーム内のイベントとを同期する事ができるようになります。
リズムゲームのデモも含まれているので、音ゲーを作り始める際に非常に役立ちます。
Koreographerの詳しい使い方については下の記事が参考になります。
音ゲーの譜面作成に「Rhythm Timeline」
Rhythm Timelineは音ゲーの譜面データを作成する際に役立つアセットです。
このアセットを導入すればUnityのエディタ内のタイムラインで譜面データを編集する事ができるようになります。
自分で実装するのは大変な作業なので、音ゲー作りにぜひ使いたいアセットです!
まとめ
以上、音の鳴らし方、音楽を再生する方法について解説してきました!
- AudioSourceコンポーネントで音が鳴らせる
- Playe On Awakeはゲーム開始時に、Loopで常に音を鳴らすことができる
- Resources.Loadで音声ファイルを読み込みできる
- 音が出ない時はミュートになっていないか確認
- 音ゲーの制作にはアセットを使うと便利
効果音を上手く使えると一気にゲームらしくなるのでマスターしておきたいですね!