アンビソニックスを回転
以前のブログ「アンビソニックスを音の空間配置の仲介役として使う(VR用)」でも説明しましたが、アンビソニックスは、オーディオミックスの立体的な効果を表現できる、マルチチャンネルのオーディオフォーマットです。つまり、アンビソニックスのオーディオファイルや、ミックスや、信号は、様々な方向からリスナーの耳に入ってくる複数の音源のミックスであり、それぞれの音源の入射角が異なるもので、全体を1つのサウンドフィールド(音場)としてとらえることができます。
マトリックスを使った回転
アンビソニックスの便利な特徴の1つは、ミキシングゲインのマトリックスを巧妙に操作して、簡単に回転できることです。リソース負荷(CPUやメモリ)はパンニングゲインの計算と同等で、さらに、計算の頻度が毎オーディオサンプルの場合(最大2µs毎)よりも少なく、毎オーディオフレーム(最大10~20ms毎)なので、オーディオ信号にフィルタをかけたり、ミキシング(追加)したりするよりも、桁違いに負荷が軽くなります。
アンビソニック信号を回転させると、合わせて、各要素の見かけ入射角が回転され、新しいアンビソニック信号ができます。
Wwiseでアンビソニックスを回転させる
Wwiseがアンビソニックスのサウンドフィールドを、自動的に回転してくれます。このとき、ゲームオブジェクトとリスナーの相対的なオリエンテーションに合わせて、回転させます。回転は、関連するゲームオブジェクトとそのリスナーの相対的なオリエンテーションに対応しています。この魔法のような機能を有効にするには、以下のスクリーンショットにあるように、アンビソニックサウンドのポジショニングを3D Game-definedにし、Ambisonicバスにルーティングするだけです。ゲームオブジェクトやリスナーのオリエンテーションはゲームが動かし、Wwise APIを経由します。
(図1-a)
(図1-b)
(図1-c)
(図1-d)
図1 - Wwiseでアンビソニックスを回転させるためのPositioningとルーティング先の設定。図(a)の3D設定と、Game-defined設定に注目。このアセットのルーティング先のバスは、Channel ConfigurationがAmbisonicsに設定されています。図(b)が、バスをAmbisonicsバスにするための設定です。このルーティング設定の様子が、図(c)のProfilerビューに表示されています。実際の回転内容を決めるのは、図(d)のUnity画面にあるように、ゲームエンジンによって動かされるゲームオブジェクトのオリエンテーションと、リスナーのオリエンテーションの関係です。
以下は、アンビソニックスを回転させたときのオーディオサンプルです。ぜひヘッドフォンで聞いてみてください。「オーディオサンプル1」は、アンビソニックファイルを再生してWwiseのAuro Headphoneプラグインを使いバイノーラルに変換することで、作成しました。「オーディオサンプル2」の作成では、リスナーのオリエンテーションを、ゲームエンジンを使って左向きに変えただけで、このときサウンドフィールドのオブジェクトオリエンテーションは「フロント」を向いています。リスナーを半時計回り(左向き)に回転させているので、サウンドフィールドが時計回りに回転して聞こえます。
オーディオサンプル1
オーディオサンプル2
アンビソニックスアセットを使ったアンビエンス
サウンドフィールドを回転させるときに、それを構成するアンビソニックスの信号や、ベッドや、ストリームの、チャンネルを簡単に操作できるので、ゲームのアンビエンスをダイナミックに動かすのに大変有利です。再生するときは、オリエンテーションが変化せず特定の参照点を常に向いているゲームオブジェクト上で再生してください。例えばレコーディングの中に、明確な方向性を持つ聴覚的な要素があり、それがゲーム内の視覚的要素にマッピングされている場合、ゲームオブジェクト同士がそろうようにオリエンテーションを決める必要があります。リスナーが、ゲーム内を移動してオリエンテーションを変えた時、アンビソニックスのサウンドフィールドは、バスにミキシングされる際に自動的に回転されます。こうすることで、サウンドフィールドが映像と一致します。
レコーディングした素材を使う
適切なコインシデントマイク( http://www.core-sound.com/TetraMic/TetraMic-small3.jpg など)でキャプチャしたアンビソニックレコーディングは、B-format(一般的な1次アンビソニックス)に変換してからWwiseにインポートできます。ほとんどのマイクで、A-formatなど未加工のマイク信号を、B-formatに変換する専用ソフトがついています**。
こちらは、フィールドレコーディングをWwiseで回転させたものです。「オーディオサンプル3」が元のオーディオで、SPS-200 マイクを使ったレコーディングをB-Formatに変換してから、Wwiseにインポートしています。聴覚的な事象として一番わかりやすいのがクラクション音ですが、オリジナルサンプルでは、やや左寄りにあります。これから「オーディオサンプル4」をつくるのに、まずリスナーを左に90度向けてから(前述の例と同じ)、再生をして、そのアウトプットをレコーディングしました。クラクション音は主に右に移動し、他の音源もすべて、それぞれが適宜回転されています。
オーディオサンプル3
オーディオサンプル4
アンビエンスの「バウンシング」
Wwiseのインタラクティブセッションから、Wwise Recorderプラグインを使ってアンビソニック サウンドファイルを生成することもできます。例えばWwiseオーサリングツールで、ある空間に複数のモノソースを配置して複雑なアンビエンスをつくり出してから、ミキシングしてアンビソニック信号にしたうえで、このアンビソニック信号をWwise Recorderプラグインでレコーディングします。次に、このレコーディングしたアンビソニックスアセットを再びWwiseプロジェクトにインポートすれば、それ自体をレコーディング素材のように扱うことができ、回転可能な3Dアンビエンスとしてゲームで使用できます。
これはNuendo、Reaper、ProToolsなどのリニアDAWでよくあるBouncingやFreezingなどの機能に似たワークフローです。アンビエンスの個々の構成内容をそれぞれ保存して同時再生する代わりに、アンビエンスをディスクにバウンシングする理由の1つは、ランタイムのリソース(CPU、メモリ)の節約です。同時に複数のモノファイルを再生するより、1つのマルチチャンネルファイルを再生したほうが、ディスクスペースを節約できます。
Wwiseでアンビエンスをバウンシングするには
- Busを作成し、Channel ConfigurationをAmbisonics(何次でも可)に設定します。
- Wwise RecorderプラグインをBusにInsertします。Ambisonics Busなので、オーディオがAmbisonicsフォーマットでファイルに書き込まれます。
- すべてのモノソース(または、それらに共通する親)を、このBusにルーティングします。
- 3D User-Defined Position Editorで、各ソースを空間内に配置します。
- Soundcaster Session、Event、Random Containerなどを使い、組み合わせながら、各ソースを適宜トリガーさせます。そして個々のサウンドが終了したり停止されたりして、すべて再生が終わった時点で、このオーディオがディスクにバウンスされます。RecorderプラグインのImport in Wwise...ボタンをクリックして、これをあなたのプロジェクトに直接インポートします。
- この新しいアセットを確認し、Positioning Typeを3Dに設定します。ゲームをプレイすると、前述のように回転します。
(図2-a)
(図2-b)
(図2-c)
図2 - Wwise Sample ProjectのAmbisonics City Ambienceブレンドコンテナを、単一のAmbisonicsファイルにレコーディング。図2-aの左側のProject ExplorerビューのAmbienceは、上記レコーディング「Ex1 - Ambisonic City 3D Ambiance」に多数の個別サウンドを重ね、Random Containerで設定した動作を使いミキシング・再生し、作成したアンビエンス。図2-bは、3D User-Defined Position Editorでアセットやアセットグループを空間に配置した例。図2-cは、Wwise Recorderプラグインの設定。Wwise Recorderプラグインの詳細はこちらから。
以前、ブログ「アンビソニックスを音の空間配置の仲介役として使う(VR用)」で説明したように、空間的な正確性を求めて最大3次アンビソニックスまでレコーディングできますが、その分必要なチャンネル数が増大し(2次アンビソニックスは9チャンネル、3次アンビソニックスは16チャンネル)、結果的にメモリ需要が増えて、音質改善の効果を打ち消しかねません。また、レコーディング後のアンビソニックスは、個々のコンポーネントが到達するときの相対的な方向性を保持しますが、相対的なボリュームや、フィルター設定など、個々のコンポーネントのプロパティをあとから変更することはできません。***
脚注
* ただしAmbisonicsフォーマットがFull-sphereである場合に限ります
** Wwiseは、ヘッダの適切なGUIDで識別可能なFuMa形式のAMBファイルに対応しています。詳しくはこちら。
*** 特定の信号処理テクニックを使えば可能です。ただし今回の場合は、個々のコンポーネントをミキシング前に変更できるため、それほど意味はありません。
図2 - Wwise Sample ProjectのAmbisonics City Ambienceブレンドコンテナを、単一のAmbisonicsファイルにレコーディング。図2-aの左側のProject ExplorerビューのAmbienceは、上記レコーディング「Ex1 - Ambisonic City 3D Ambiance」に多数の個別サウンドを重ね、Random Containerで設定した動作を使いミキシング・再生し、作成したアンビエンス。図2-bは、3D User-Defined Position Editorでアセットやアセットグループを空間に配置した例。図2-cは、Wwise Recorderプラグインの設定。Wwise Recorderプラグインの詳細はこちらから。
クレジット
- 図1(d):Unity 3D のスクリーンショット
- 3Dアンビエンスサンプルのレコーディングと、変更後のバージョン:
SPS-200マイクでレコーディングしたA-Formatから、Ambisonic B-Formatアンビエンスを作成。
Audiokinetic Inc. All rights reserved.
オーディオコンテンツ提供:Studio Lab SONORUM
(c) 2016. www.sonorum.ca
このファイルに含まれるオーディオコンテンツはStudio Lab SONORUMに帰属します。読者は、オーディオコンテンツをこのサンプルプロジェクトの一環として試聴する場合に限り、このオーディオコンテンツを使用できます。商用目的あるいは公開実演のために、このオーディオコンテンツを使用または変更することはできません。
コメント