【基本機能】オーディオ

ゲームに音声を追加するために利用する機能です。

オーディオはゲームにBGMや効果音、ボイスを再生する機能を提供します。
3Dサウンドとして再生したり、エコーやドップラー効果などのように音声加工もできます。

どのような構成でできているか、とりあえず再生できるようになるための手順を紹介します。

対象:初級者、ゲーム必須機能の学習者
使用バージョン:Unity 2021.3
時間:30分

■構成

Unityオーディオは「何を、どう鳴らし、どう加工して、どこで聞くか」で構成されています。

    音 = オーディオクリップ = 何を
   音源 = オーディオソース  = どう鳴らし
フェーダー = オーディオミキサー = どう加工して
    耳 = オーディオリスナー = どこで聞くか

●オーディオクリップ

音そのものです。
アセットのインポート設定を使い、モノラル/ステレオの設定や、圧縮方法、再生方法などを指定することができます。

アセットとして管理し、オーディオソースに割り当てて使います。

●オーディオソース

音源です。
ボリュームやピッチ、開始時に鳴らすか、ループするか、といった情報が設定できます。
ゲームオブジェクトの位置は3Dサウンドにした時の音の発生源として使われます。

コンポーネントとしてゲームオブジェクトに割り当てて使います。

●オーディオミキサー

音声加工行うフェーダーのようなものです。
音声に対してエコーやドップラー効果などの効果を追加できます。

オーディオミキサーはUnity上で作成し、アセットとして保存されます。
内容の編集は専用のビュー行います。

「グループ」という単位で音声を加工し、オーディオソースでグループを出力先に指定します。
ゲームオブジェクトに割り当てる必要はなく、出力先に指定するだけで動作します。

●オーディオリスナー

耳です。
オーディオリスナーが存在することで音声が聞こえてきます。
オーディオリスナーのオブジェクト位置が3Dサウンドの聞く位置として利用されます。

コンポーネントとしてゲームオブジェクトに割り当てて動作します。
デフォルトでカメラに割り当たっています。
どのゲームオブジェクトにも無いと聞こえませんので、無効にしたり、削除したりしないように注意してください。

■使い方

●とりあえず再生

以下の操作で1ループ再生してくれます。

  1. 音声ファイルをプロジェクトにインポート
  2. オーディオクリップをヒエラルキー(もしくはシーン)にドラッグ&ドロップ

手動「2」は以下の操作を自動化しています。

  • 空のゲームオブジェクトを作成
  • ゲームオブジェクトにコンポーネント「オーディオソース」を追加
  • オーディオソースの「オーディオクリップ」に再生対象のオーディオクリップを設定

●スクリプトで再生

スクリプトを活用することで、音を再生するタイミングを制御できます。

  1. ゲームオブジェクト取得
  2. オーディオソース取得
  3. オーディオソースのPlay関数を呼び出す

■実践

●BGM再生

▷BGM取り込み

BGM用の音声ファイルをインポートします。

  1. BGMとして利用する音声ファイルを準備
  2. 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ

▷BGM再生

音声をループ再生します。

  1. プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
  2. インスペクターの「Audio Source>ループ」をチェック

▷BGM確認

プレビューして音声がループ再生されることを確認します。

  1. エディタ上中央の「▶」をクリック
  2. 音声が繰り返し再生されることを確認
  3. エディタ上中央の「▶」をクリック

●効果音再生

▷効果音取り込み

効果音用の音声ファイルをインポートします。

  1. 効果音として利用する音声ファイルを準備
  2. 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ

▷効果音配置

手動で再生する音声として配置します。

  1. プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
  2. インスペクターの「Audio Source>ゲーム開始時に再生」のチェックを外す

▷効果音再生

クリックした時に音声を再生します。

  1. プロジェクトの「Assets」を右クリックし、「作成>C# スクリプト」をクリック
  2. 「SoundEffect」と入力し、ENTERキーを押す
  3. プロジェクトの「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. エディタ上中央の「▶」をクリック
  2. 音声が再生されないことを確認
  3. ゲーム画面をクリック
  4. 音声が1回再生されることを確認
  5. エディタ上中央の「▶」をクリック

●音声加工

▷加工音声準備

音声ファイルをインポートし、クリック時に鳴らします。

  1. 加工対象として利用する音声ファイルを準備
  2. 音声ファイルをプロジェクトの「Assets」にドラッグ&ドロップ
  3. 「Audio」と入力し、ENTERを押す
  4. プロジェクトの「Assets>音声アセット」をヒエラルキーのシーン名にドラッグ&ドロップ
  5. インスペクターの「Audio Source>ゲーム開始時に再生」のチェックを外す
  6. プロジェクトの「Assets」を右クリックし、「作成>C# スクリプト」をクリック
  7. 「Mixer」と入力し、ENTERキーを押す
  8. プロジェクトの「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();
        }
    }
}

▷オーディオミキサー準備

オーディオミキサーを作成し、オーディオミキサーのビューを開きます。

  1. プロジェクトの「Assets」を右クリックし、「作成>オーディオミキサー」をクリック
  2. 「Mixer」と入力し、ENTERを押す
  3. オーディオミキサーのアセットをダブルクリック

▷エコー設定

エコー用のグループを作成し、エコー設定を行います。

  1. オーディオミキサーの左側、グループの右にある「+」をクリック
  2. 「Echo」と入力し、ENTERキーを押す
  3. オーディオミキサーの右側、「Echo」の下にある「追加…」をクリックし、「Echo」をクリック
  4. インスペクターの「Echo>Decay」を10%に変更

▷音声出力先設定

音声の出力先にグループを指定します。

  1. ヒエラルキーの「Audio」をクリック
  2. インスペクターの「Audio Source>出力」の右にある○をクリックし、「NewAudioMixer>Master>Echo」をダブルクリック

▷エコー再生確認

プレビューして音声がエコー再生されることを確認します。

  1. エディタ上中央の「▶」をクリック
  2. ゲーム画面をクリック
  3. 音声がエコー再生されることを確認
  4. エディタ上中央の「▶」をクリック

コメント

タイトルとURLをコピーしました