3Dポジショニングとは、ソース(どのようなチャンネルコンフィギュレーションでも可)をバス(どのようなチャンネルコンフィギュレーションでも可)にパンニングする処理のことで、ゲーム中のエミッタやリスナーオブジェクトの相対的なポジションや向き(orientation)に基づいて行います。これらのオブジェクトのポジションは、WwiseサウンドエンジンAPI経由でゲーム側が設定します。距離に基づくSpreadやFocusのプロパティがパンニング方式を左右するほか、ゲームによって動くポジションや向きも影響します。Wwiseの3Dポジショニングのアルゴリズムは、点音源とそれを取り囲む、方向性を持つマルチチャンネルアンビエンスの間を、Spreadを使って正しくモーフィングできるように設計されています。
3Dポジショニングのアルゴリズムを簡素化すると、以下のような流れです:
バーチャルソースをリスナー周りに配置する。
各入力チャンネルに対応するバーチャルソースのグループを、Focusに従って集約する(標準コンフィギュレーションのみ)。
バーチャルソースは、リスナーのオリエンテーションに対するエミッターのオリエンテーションに従い回転される(3D Spatializationでは、Position + Orientationだけを設定する)。
さらに、バーチャルソースをリスナーに対するエミッタの相対的なポジションに向けて、Spreadに従い、集約する。
各バーチャルソースを、出力コンフィギュレーションのチャンネルに対してパンニングさせて、出力(power)をノーマライズする。
SpreadやFocusの詳細は、オブジェクトプロパティの減衰カーブのページを参照してください。
標準的なマルチチャンネルソースの各チャンネルを、平面を均等に分割することでバーチャルソースのグループに対してアサインします。ソース側のハイトチャンネルには対応していないので、落とされます。
Wwiseは、標準とアンビソニックスのチャンネルコンフィグレーションのネーティブサポートを提供しています。両者の主な違いは、上記の手順5に関わるパンニング計算方法で、両者ではスペーシャルオーディオの表現方法が異なるためです。また、バーチャルソースのレイアウト方法も異なり、Focusの唯一の存在理由が、個別の入力チャンネルから個別の出力チャンネルへの均一的でない「漏れ」の対策であるため、Focusは標準コンフィギュレーションに限り適用されます。ただし、Spreadや相対的なエミッタ・リスナー回転に関するバーチャルソースの動作は、コンフィギュレーションのタイプに関わらず同一です。
標準コンフィギュレーションのソースをアンビソニックスのバスにパンニングしたり("encode to ambisonics")、その逆を行ったり("decode from ambisonics")できます。
次ページ以降の事例で、上記アルゴリズムの様々な面のイメージを説明します。