AudioMixer(オーディオミキサー)は、AudioSources(オーディオソース)によって参照できるアセットで、AudioSource から生成される音声信号の、より複雑なルーティングとミキシングを可能にします。アセット内でユーザーが構築した AudioGroup(オーディオグループ)階層を通して、カテゴリーを基にしたミキシングを行います。
音声信号は AudioSource(オーディオソース)から AudioListener(オーディオリスナー)へ送られており、そこに DSP エフェクトなどの音声マスタリングの概念を適用することができます。
http://en.wikipedia.org/wiki/Audio_mixing
オーディオのルーティングは、複数のオーディオ信号を入力し、一つまたは複数の出力信号を出力するプロセスです。ここで言う信号とは、連続したデジタルオーディオデータのことであり、これは複数のデジタルオーディオチャンネル〔ステレオや5.1(6チャンネル)など〕に分けることができます。
内部的には通常これらの信号になんらかの処理(ミキシング、エフェクトの適用、音量処理など)が行われます。詳しくは後述しますが、これがオーディオ処理の重要な部分であり、AudioMixer はこのために設計されたものであると言えます。
Send と Return (これに関しては後述します)を除いて、AudioMixer には、入力信号をいくつでもインプットしてそれをミックスし、一つにして出力する AudioGroups が含まれます。
オーディオ処理のルーティングとミキシングは通常、対象のシーングラフ階層で ORTHOGONAL (直交) に行われます。これはオーディオの動作やデザイナーの作業方法がシーンのコンセプトやオブジェクトによって大きく異なるためです。
Unity 4.x にはルーティングとミキシングの概念はありませんでした。ユーザーは AudioSources をシーン内に配置し、それらが(例えば AudiClips を通して)生成したオーディオ信号は、直接 AudioListener に送られ、そこですべてのオーディオ信号が一度にミックスされていました。ここで留意していただきたいのは、これは、AudioSources がシーンのどこにあろうとも、シーングラフに対して直角に行われるということです。
現在の仕様では AudioMixers はオーディオ信号処理空間の中で AudioSource と AudioListener の間に存在しており、AudioSource から出力された信号が、最終的に AudioListener に出力されてスピーカーから音が鳴るまでの間に、さまざまなルーティングやミキシング処理を挟むことが可能です。
ミキシングとルーティングによって、ゲーム内オーディオをさまざまなコンセプトにカテゴライズ (分類) することが可能になります。サウンドがこれらのカテゴリーにミックスされたら、そのカテゴリーにまとめて効果その他の操作を適用できます。これは非常に強力な機能で、ゲームロジックの変更をさまざまなサウンドカテゴリーに適用する上でも役立ちますし、デザイナーがミックスのいろいろな面を調整し、ランタイム上でサウンドスケープ全体にまとめて “マスタリング” を行ったりすることも可能にするものです。
サウンドのコンセプト(概念)には、シーングラフや3D世界に関連したものがあります。もっとも代表的なものは、3D 距離・ AudioListener への相対的速度・環境リバーブエフェクトに基づいた、減衰の適用です。
これらのオペレーションは AudioMixer 内のサウンドのカテゴリーにではなくシーンに関連しているので、エフェクトは、信号が AudioMixer に入る前に、AudioSource に適用されます。例えば、AudioListener からの距離に基づいてある AudioSource に適用された減衰は、信号がその AudioSource から出て AudioMixer に入る前に適用されます。
上記のとおり AudioMixer は、異なる種類のサウンドを効率的に分類(カテゴライズ)し、そこに処理を行うことを可能にします。これは重要な概念です。なぜならこのような分類ができなければ、すべての音が、一切ミキシングが適用されない状態で同じように再生されるため、サウンドスケープ全体が区別の付かないノイズでごちゃごちゃになってしまうからです。ダッキングなどの概念があれば、サウンドカテゴリー間で相互に影響を与え合うこともでき、ミックスに深みを与えることができます。
デザイナーは、それぞれのカテゴリーに対して例えば次のような操作を行うことができます。
どのような分類を行うかはゲームやプロジェクトによってそれぞれですが、下記はその一例です。
上記の設計のカテゴリー階層は、大まかには以下のようなものになります。
シーングラフのレイアウトはサウンドカテゴリーのレイアウトとはまったく見え方が違うことに注意してください。
ゲームサウンドのミキシングとルーティングは、デザイナーが求める没入感を作り出すためにも利用できます。例えば、ゲーム音のすべてにリバーブをかけて音楽を減衰させることで、洞窟の中にいる雰囲気を作ったりすることができます。
AudioMixer はゲーム中のいろいろな雰囲気を作り出すのに効果的です。スナップショット(後述)などの概念やその他さまざまなミキサーを一つのゲーム内で使用することによって、ゲーム中の雰囲気を簡単に変えることができ、デザイナーがプレイヤーに感じて欲しい感情を感じてもらうようにすることが可能です。これはゲームの没入感をつくりだすのに非常に重要なことです。
AudioMixer は、ゲーム内のすべてのサウンドのミックスを総合的に制御するために使われます。これらの AudioMixer はグローバルミックスを制御し、サウンドのインスタンスが通過する静的シングルトンミックスとして見ることができます。
つまり、AudioMixer はあるシーンの存続期間を通して常に存在しており、サウンドインスタンスはゲームが進行するにしたがって生成・破棄され、これらのグローバル AudioMixer を通して再生されます。
Snapshot を使用すれば、AudioMixer の状態をキャプチャーし、ゲームの進行に合わせて異なる状態を相互に切り替えることができます。これは、ミックスの雰囲気やテーマを定めたり、プレイヤーがゲームを進めるにしたがって雰囲気を変えていったりするのに非常に有効な方法です。
Snapshots は、AudioMixer 内のすべてのパラメーターの値をキャプチャーします。
スナップショットとゲームロジックを組み合わせることによって、サウンドスケープのさまざまな面に変化を加えることができます。
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thank you for helping to make the Unity documentation better!
Your feedback has been submitted as a ticket for our documentation team to review.
We are not able to reply to every ticket submitted.