ゲームに音声を追加するために利用する機能です。 オーディオはゲームにBGMや効果音、ボイスを再生する機能を提供します。 3Dサウンドとして再生したり、エコーやドップラー効果などのように音声加工もできます。 どのような構成でできているか、とりあえず再生できるようになるための手順を紹介します。 対象:初級者、ゲーム必須機能の学習者 使用バージョン:Unity 2021.3 時間:30分
目次
■構成
Unityオーディオは「何を、どう鳴らし、どう加工して、どこで聞くか」で構成されています。
音 = オーディオクリップ = 何を
音源 = オーディオソース = どう鳴らし
フェーダー = オーディオミキサー = どう加工して
耳 = オーディオリスナー = どこで聞くか
●オーディオクリップ
音そのものです。
アセットのインポート設定を使い、モノラル/ステレオの設定や、圧縮方法、再生方法などを指定することができます。
アセットとして管理し、オーディオソースに割り当てて使います。
●オーディオソース
音源です。
ボリュームやピッチ、開始時に鳴らすか、ループするか、といった情報が設定できます。
ゲームオブジェクトの位置は3Dサウンドにした時の音の発生源として使われます。
コンポーネントとしてゲームオブジェクトに割り当てて使います。
●オーディオミキサー
音声加工行うフェーダーのようなものです。
音声に対してエコーやドップラー効果などの効果を追加できます。
オーディオミキサーはUnity上で作成し、アセットとして保存されます。
内容の編集は専用のビュー行います。
「グループ」という単位で音声を加工し、オーディオソースでグループを出力先に指定します。
ゲームオブジェクトに割り当てる必要はなく、出力先に指定するだけで動作します。
●オーディオリスナー
耳です。
オーディオリスナーが存在することで音声が聞こえてきます。
オーディオリスナーのオブジェクト位置が3Dサウンドの聞く位置として利用されます。
コンポーネントとしてゲームオブジェクトに割り当てて動作します。
デフォルトでカメラに割り当たっています。
どのゲームオブジェクトにも無いと聞こえませんので、無効にしたり、削除したりしないように注意してください。
■使い方
●とりあえず再生
以下の操作で1ループ再生してくれます。
- 音声ファイルをプロジェクトにインポート
- オーディオクリップをヒエラルキー(もしくはシーン)にドラッグ&ドロップ
手動「2」は以下の操作を自動化しています。
- 空のゲームオブジェクトを作成
- ゲームオブジェクトにコンポーネント「オーディオソース」を追加
- オーディオソースの「オーディオクリップ」に再生対象のオーディオクリップを設定
●スクリプトで再生
スクリプトを活用することで、音を再生するタイミングを制御できます。
- ゲームオブジェクト取得
- オーディオソース取得
- オーディオソースのPlay関数を呼び出す
■実践
●BGM再生
▷BGM取り込み
BGM用の音声ファイルをインポートします。
- BGMとして利用する音声ファイルを準備
- 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ
▷BGM再生
音声をループ再生します。
- プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
- インスペクターの「Audio Source>ループ」をチェック
▷BGM確認
プレビューして音声がループ再生されることを確認します。
- エディタ上中央の「▶」をクリック
- 音声が繰り返し再生されることを確認
- エディタ上中央の「▶」をクリック
●効果音再生
▷効果音取り込み
効果音用の音声ファイルをインポートします。
- 効果音として利用する音声ファイルを準備
- 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ
▷効果音配置
手動で再生する音声として配置します。
- プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
- インスペクターの「Audio Source>ゲーム開始時に再生」のチェックを外す
▷効果音再生
クリックした時に音声を再生します。
- プロジェクトの「Assets」を右クリックし、「作成>C# スクリプト」をクリック
- 「SoundEffect」と入力し、ENTERキーを押す
- プロジェクトの「Assets>SoundEffect」をヒエラルキーの「音声ゲームオブジェクト」にドラッグ&ドロップ
▷スクリプト記述
プロジェクトの「Assets>SoundEffect」をダブルクリックし、スクリプトを以下のように記述します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SoundEffect : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
GetComponent<AudioSource>().Play();
}
}
}
▷効果音再生確認
プレビューして音声がループ再生されることを確認します。
- エディタ上中央の「▶」をクリック
- 音声が再生されないことを確認
- ゲーム画面をクリック
- 音声が1回再生されることを確認
- エディタ上中央の「▶」をクリック
●音声加工
▷加工音声準備
音声ファイルをインポートし、クリック時に鳴らします。
- 加工対象として利用する音声ファイルを準備
- 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ
- 「Audio」と入力し、ENTERを押す
- プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
- インスペクターの「Audio Source>ゲーム開始時に再生」のチェックを外す
- プロジェクトの「Assets」を右クリックし、「作成>C# スクリプト」をクリック
- 「Mixer」と入力し、ENTERキーを押す
- プロジェクトの「Assets>Mixer」をヒエラルキーの「Mixer」にドラッグ&ドロップ
▷スクリプト記述
プロジェクトの「Assets>Mixer」をダブルクリックし、スクリプトを以下のように記述します。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Mixer : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.GetMouseButtonDown(0))
{
GetComponent<AudioSource>().Play();
}
}
}
▷オーディオミキサー準備
オーディオミキサーを作成し、オーディオミキサーのビューを開きます。
- プロジェクトの「Assets」を右クリックし、「作成>オーディオミキサー」をクリック
- 「Mixer」と入力し、ENTERを押す
- オーディオミキサーのアセットをダブルクリック
▷エコー設定
エコー用のグループを作成し、エコー設定を行います。
- オーディオミキサーの左側、グループの右にある「+」をクリック
- 「Echo」と入力し、ENTERキーを押す
- オーディオミキサーの右側、「Echo」の下にある「追加…」をクリックし、「Echo」をクリック
- インスペクターの「Echo>Decay」を10%に変更
▷音声出力先設定
音声の出力先にグループを指定します。
- ヒエラルキーの「Audio」をクリック
- インスペクターの「Audio Source>出力」の右にある○をクリックし、「NewAudioMixer>Master>Echo」をダブルクリック
▷エコー再生確認
プレビューして音声がエコー再生されることを確認します。
- エディタ上中央の「▶」をクリック
- ゲーム画面をクリック
- 音声がエコー再生されることを確認
- エディタ上中央の「▶」をクリック
コメント