Closed7

Master Audio (Unity)

trefuntrefun

ゲーム内容が増えると clip の管理や mixer の設定がしんどいのでこれで緩和できるかどうかというところ

trefuntrefun

初期設定

  1. Master Audio Manager ウィンドウから MasterAudio オブジェクトを作成(このとき prefab のままだと更新時に設定が初期化されるので prefab でない方が正解
  2. Group Mixer に適当な clip を登録
  3. スクリプトから下記のように呼び出す
using DarkTonic.MasterAudio;

[SoundGroupAttribute] public string soundName;

void Start()
{
  MasterAudio.PlaySound("clip_name");
  MasterAudio.PlaySound3DAtTransform(sType: soundName, sourceTrans: this.transform);
}

https://www.dtdevtools.com/docs/masteraudio/TriggeringAudioCoding.htm

trefuntrefun

対象の地点やオブジェクトの位置で鳴らす

ノーマルの PlaySound の方で鳴らすと MasterAudio オブジェクトからなってしまうため3D空間で効果音鳴らす場合は基本下記。*Forget の方は鳴らした clip の終了検知に使える

とりあえず sType(クリップ名)と sourceTrans(Transform)だけ指定すれば OK
MasterAudio.PlaySound3DAtTransform(sType: "clip_name", sourceTrans: this.transform);

MasterAudio.PlaySound3DAtVector3

渡した Vector3 のポジションで鳴らす
引数: (string sType, Vector3 sourcePosition, float volumePercentage, float? pitch, float delaySoundTime, string variationName);

MasterAudio.PlaySound3DAtTransform

渡した Transform の位置で鳴らす
引数: (string sType, Transform sourceTrans, float volumePercentage, float? pitch, float delaySoundTime, string variationName);

MasterAudio.PlaySound3DFollowTransform

渡すオブジェクトが定期的に動く場合はこれ
引数: (string sType, Transform sourceTrans, float volumePercentage, float? pitch, float delaySoundTime, string variationName);

https://www.dtdevtools.com/docs/masteraudio/TriggeringAudioCoding.htm

trefuntrefun

Play list controller

BGM はこれで流すのが簡単

  • Blend rule を Force To 2D にすれば空間関係なく均一に流れる
  • Start Playlist on Awake を設定すればシーン読み込み時に勝手に流れる
  • clip 自体の設定を loop にしておく

https://www.dtdevtools.com/docs/masteraudio/PlaylistControllers.htm

Audio origin

Audio origin の設定は基本 Clip で良い。もしメモリに常に読み込みたくない場合はプリロードのチェックを外せばよい。

Master Audio GameObject

  • すべての Audio は次の式で音量が決定される: (audio clip volume)X (group volume)X (bus volume - if any)X(master mixer volume)
  • Occusion: デフォルトでオフ。効果音を壁とかで減衰させたい場合に。
  • AUdio Ducking: ある効果音を鳴らすときにBGMや他の効果音を小さくして目立たせたいときに

Sound Group

  • Caller Despawned Mode: オブジェクトデスポーン時の動作を決定できる。None はそのまま再生。 Stop はすぐ泊める。フェードは時間で止める。
  • Unused Addressable Life (sec): Addressable な場合にメモリに記憶しておく秒数

https://www.dtdevtools.com/docs/masteraudio/SoundGroups.htm

Dynamic Soud Group Creater Prefab

シーンごとに効果音やBGMが決まっている場合は破棄されるこっちを使うのもよい

各種音量調整

mixier の設定を永続変更する場合
PersistentAudioSettings.MixerVolume = 0.5f;
バス毎は
PersistentAudioSettings.SetBusVolume("Dialogue", .8f);

https://www.dtdevtools.com/docs/masteraudio/PersistentSettings.htm

Triggering Audio Without Writing Code!

Ambient Sound

BGM かつ距離を入れたい場合はこれ。鳴らしたいオブジェクトにアタッチ

Event Sounds

コーディング無しで collider enter 等で効果音。鳴らしたいオブジェクトにアタッチ

trefuntrefun

同じ clip が同時に鳴らせない

Voices/Weight を増やす(最大100)

ただ、大きい値にしすぎると重くなる(実行時に大量に子オブジェクトが生成される)

このスクラップは2023/07/27にクローズされました