Audio Mixer (オーディオミキサー) は、AudioSources (オーディオソース) によって参照できるアセットで、オーディオソースから生成される音声信号の、より複雑なルーティングとミキシングを可能にします。アセット内でユーザーが構築した AudioGroup (オーディオグループ) 階層を通して、カテゴリーを基にしたミキシングを行います。
音声信号は オーディオソースから AudioListener (オーディオリスナー) へ送られており、そこに DSP 効果などの音声マスタリングの概念を適用することができます。
http://en.wikipedia.org/wiki/Audio_mixing
オーディオのルーティングは、複数のオーディオ信号を入力し、一つまたは複数の出力信号を出力するプロセスです。ここで言う信号とは、連続したデジタルオーディオデータのことであり、これは複数のデジタルオーディオチャンネル (ステレオや5.1 (6チャンネル) など) に分けることができます。
内部的には通常これらの信号になんらかの処理 (ミキシング、効果の適用、音量処理など) が行われます。詳しくは後述しますが、これがオーディオ処理の重要な部分であり、オーディオミキサーはこのために設計されたものであると言えます。
Send と Return (これに関しては後述します) を除いて、オーディオミキサーには、入力信号をいくつでもインプットしてそれをミックスし、1 つにして出力する オーディオグループが含まれます。
オーディオ処理のルーティングとミキシングは通常、対象のシーングラフ階層で ORTHOGONAL (直交) に行われます。これはオーディオの動作やデザイナーの作業方法がシーンのコンセプトやオブジェクトによって大きく異なるためです。
Unity 4.x にはルーティングとミキシングの概念はありませんでした。ユーザーはオーディオソースをシーン内に配置し、それらが (例えば AudiClips を通して) 生成したオーディオ信号は、直接オーディオリスナーに送られ、そこですべてのオーディオ信号が一度にミックスされていました。ここで留意していただきたいのは、これは、オーディオソースがシーンのどこにあろうとも、シーングラフに対して直角に行われるということです。
現在の仕様ではオーディオミキサーはオーディオ信号処理空間の中で オーディオソースとオーディオリスナーの間に存在しており、オーディオソースから出力された信号が、最終的にオーディオリスナーに出力されてスピーカーから音が鳴るまでの間に、さまざまなルーティングやミキシング処理を挟むことが可能です。
ミキシングとルーティングによって、ゲーム内オーディオをさまざまなコンセプトにカテゴライズ (分類) することが可能になります。サウンドがこれらのカテゴリーにミックスされたら、そのカテゴリーにまとめて効果その他の操作を適用できます。これは非常に強力な機能で、ゲームロジックの変更をさまざまなサウンドカテゴリーに適用する上でも役立ちますし、デザイナーがミックスのいろいろな面を調整し、ランタイム上でサウンドスケープ全体にまとめて “マスタリング” を行ったりすることも可能にするものです。
サウンドのコンセプト (概念) には、シーングラフや3D世界に関連したものがあります。もっとも代表的なものは、3D 距離、オーディオリスナーへの相対的速度、環境リバーブ効果に基づいた減衰の適用です。
これらのオペレーションはオーディオミキサー内のサウンドのカテゴリーにではなくシーンに関連しているので、効果は、信号が オーディオミキサーに入る前に、オーディオソースに適用されます。例えば、オーディオリスナーからの距離に基づいてあるオーディオソースに適用された減衰は、信号がそのオーディオソースから出て オーディオミキサーに入る前に適用されます。
上記のとおりオーディオミキサーは、異なる種類のサウンドを効率的に分類 (カテゴライズ) し、そこに処理を行うことを可能にします。これは重要な概念です。なぜならこのような分類ができなければ、すべての音が、一切ミキシングが適用されない状態で同じように再生されるため、サウンドスケープ全体が区別の付かないノイズでごちゃごちゃになってしまうからです。ダッキングなどの概念があれば、サウンドカテゴリー間で相互に影響を与え合うこともでき、ミックスに深みを与えることができます。
デザイナーは、それぞれのカテゴリーに対して例えば次のような操作を行うことができます。
どのような分類を行うかはゲームやプロジェクトによってそれぞれですが、下記はその一例です。
上記の設計のカテゴリー階層は、大まかには以下のようなものになります。
シーングラフのレイアウトはサウンドカテゴリーのレイアウトとはまったく見え方が違うことに注意してください。
ゲームサウンドのミキシングとルーティングは、デザイナーが求める没入感を作り出すためにも利用できます。例えば、ゲーム音のすべてにリバーブをかけて音楽を減衰させることで、洞窟の中にいる雰囲気を作ったりすることができます。
オーディオミキサーはゲーム中のいろいろな雰囲気を作り出すのに効果的です。スナップショット (後述) などの概念やその他さまざまなミキサーを一つのゲーム内で使用することによって、ゲーム中の雰囲気を簡単に変えることができ、デザイナーがプレイヤーに感じて欲しい感情を感じてもらうようにすることが可能です。これはゲームの没入感をつくりだすのに非常に重要なことです。
オーディオミキサーは、ゲーム内のすべてのサウンドのミックスを総合的に制御するために使われます。これらのオーディオミキサーはグローバルミックスを制御し、サウンドのインスタンスが通過する静的シングルトンミックスとして見ることができます。
つまり、オーディオミキサーはあるシーンの存続期間を通して常に存在しており、サウンドインスタンスはゲームが進行するにしたがって生成または破棄され、これらのグローバル オーディオミキサーを通して再生されます。
Snapshot (スナップショット) を使用すれば、オーディオミキサーの状態をキャプチャーし、ゲームの進行に合わせて異なる状態を相互に切り替えることができます。これは、ミックスの雰囲気やテーマを定めたり、プレイヤーがゲームを進めるにしたがって雰囲気を変えていったりするのに非常に有効な方法です。
スナップショットは、オーディオミキサー内のすべてのパラメーターの値をキャプチャします。
スナップショットとゲームロジックを組み合わせることによって、サウンドスケープのさまざまな面に変化を加えることができます。