LoginSignup
2
8

More than 5 years have passed since last update.

Audioまとめ

Last updated at Posted at 2017-10-27

概要

音を出す側

音を出すオブジェクトにスピーカー(AudioSource)をつけて、そこに音源(AudioClip)をセットする。

AudioSource
https://docs.unity3d.com/jp/current/Manual/class-AudioSource.html

AudioClip
https://docs.unity3d.com/jp/current/Manual/class-AudioClip.html

音を聞く側

AudioListenerを1シーンに1つ用意する。主にメインカメラがリスナーオブジェクトになる。

AudioListener
https://docs.unity3d.com/jp/540/Manual/class-AudioListener.html

参考
【Unity開発】Audioまとめ(基本編)【ひよこのエッセンス】
【Unity開発】Audioまとめ(3Dサウンド中心)【ひよこエッセンス】

オーディオファイル

基本的には非圧縮のwavファイルを使う

BGM / SE

BGM

  • 一般的に、途切れることはない
  • クロスフェードする可能性はある
  • 一般的に、Spatial Blendは2D設定

こちらのスクリプトが使ってみて便利だった
【Unity】とっても簡単に扱えるBGM再生クラスを作ってみた。フェードイン、フェードアウト対応版

その他
【Unity】Audioの基本と扱いについて

SE

  • 単発の音
  • 複数重なることがある
  • 一般的に、Spatial Blendは3D設定

Play / PlayOneShot

Play
https://docs.unity3d.com/ja/540/ScriptReference/AudioSource.Play.html

PlayOneShot
https://docs.unity3d.com/ja/540/ScriptReference/AudioSource.PlayOneShot.html

サンプルを見る限り、
BGMのように重複せずにシンプルに音を鳴らすのがPlay
SEのように重複することを前提に音を鳴らすのがPlayOneShot

AudioMixer

解説:チュートリアル > Audio > オーディオミキサーとミキサーグループ

まずミキサーをつくると、デフォルトでMasterを親としたグループがつくられる。その下に操作したい音ごとにグループをつくっていく。(Masterで操作した値はすべてのグループに影響を与える)

スクリーンショット 2017-10-27 7.06.31.png

上記の画像は、ポーズ画面になったらAttenuation(減衰)を下げているスナップショットを登録しているところ。スナップショットとは、ミキサー内で設定した値などをアセットのような形で登録できるもの。

解説:チュートリアル > Audio > オーディオミキサースナップショット

各グループの「B」ボタンは「バイパス」。オーディオグループにエフェクトをかけるか設定できる。

スクリーンショット 2017-10-27 7.16.37.png
スクリーンショット 2017-10-27 7.16.23.png

作成したグループをAudioSourceのOutputに設定してあげることで、ミキサーを通して出力することができる。

ポーズ画面の表示・非表示でスナップショットを切り替える
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Audio;

public class MenuManager : MonoBehaviour {

    public AudioMixerSnapshot paused;
    public AudioMixerSnapshot unpaused;

    Canvas canvas;

    void Start () {
        canvas = GetComponent<Canvas> ();
    }

    void Update () {
        if (Input.GetKeyDown (KeyCode.Escape)) {
            ToggleMenu ();
        }
    }

    void ToggleMenu() {
        canvas.enabled = !canvas.enabled;
        // 時間依存で動いているものは止まる
        Time.timeScale = Time.timeScale == 1 ? 0 : 1;
        // スナップショットを切り替える
        if(Time.timeScale == 0){
            unpaused.TransitionTo(.01f);
        } else {
            paused.TransitionTo(.01f);
        }
    }

}

参考
Unityのオーディオミキサーを使って音声の変換や音量を変更する
Unityの一時停止で止まるもの、止まらないもの【Time.timeScale】

Ducking

ある音が再生された場合、他の音にエフェクトをかけたり音量を下げたりすること

解説:チュートリアル > Audio > Duck Volume オーディオエフェクト

ex. 銃撃した時に少しだけBGMが下がる

SEにSend、BGMにDuck Volumeを設定。
SEの音がThresholdを超えた時にBGMが少し下がっている。

duck.gif

参考
Unity 5のサウンド再生機能について(2)音にエフェクトを付与する方法について

2
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
8