Wwise 2018.1.0の新機能の1つが、Positioningタブの強化です。このタブのリファクタリングの目的は、表示内容を分かりやすくし画面スペースを有効活用することと、新しい2つのWwise機能の導入です。今回はWwiseユーザー向けに、新しいUIの変更点を説明します。また、以下の新しい2つのPositioning機能も説明します:
- 2Dと3Dを滑らかに切り換えるスライダ: Speaker Panning / 3D Spatialization Mix
- エミッター周りの3D User-defined設定: EmitterとAutomation設定

さらば「2D・3D」の切り換え
Positioningタブの文言を改善するにあたり、「2D」というのはここで行う音のビヘイビア(動作)設定に合った表現方法ではないという結論になりました。音を「2D」「3D」と表す考え方は90年代に始まったことで、そこから次に進むべきだと私たちは考えました。Wwise 2017.2版台以前でサウンドを2Dに設定すると、その音は3D空間に配置することができませんでした。2D Panner機能を使えば、モノラル音の具体的なXY座標を指定することで、あたかもその「ポジション」が設定できるかのようでした。マルチチャンネルのソース(つまりモノ以外)の場合、結果としてスピーカーに送る音量のパンニングを変更することになり、車のオーディオ設定でBalanceやFadeを調整するのと似ていました。
Wwise 2018.1.0では、2D Positioningという名称がSpeaker Panningに変わり、Direct Assignmentという設定にすればソースのコンテンツがそのままL、R、Cなどそれぞれのチャンネルで再生され、Balance-Fadeという設定にすればSpeaker Panner機能が起動するようになりました。

この方法で音をパンニングさせるとサウンドエンジンでエミッター対リスナーの位置関係を分析しなくても音が空間内に配置されているかのような印象を、聞く人に与えます。DAWで音楽をパンニングするときと同じで、ノンダイエジェティック音をパンニングする標準的な方法です。
3Dの意味は、前からListener Relative Routing
Listener Relative Routingオプションを選ぶと、Positioningタブのほかの項目がいくつか、設定できるようになります。例えば、あるSpeaker Panningの音を、リスナーがエミッターに接近したときに限り聞こえるようにしたければ、エミッター対リスナーの位置関係を計算する必要があります。そこでListener Relative Routingを選択し、Attenuation Editorにアクセスし、Output Bus VolumeのカーブのMax distanceを適切な値に設定します。
ある音が、あるゲームオブジェクト上で再生されるという設定であれば、そのゲームオブジェクトの位置で再生されているかのように聞こえるには、サウンドエンジンがエミッターとリスナーの位置関係の3D Spatializationを計算する必要があります。なお3D Spatializationとは、ゲーム内のオブジェクトのポジションに基づいて、各スピーカーに対し音をパンニングさせる行為です。これを行うには、3D SpatializationをPositionに設定するか、Position + Orientationに設定します。Position + Orientationに設定すると、ソースのマルチチャンネルコンテンツが、オリエンテーション(向き)に基づいて回転されます。なお、この効果を得るにはSpreadを0よりも大きい値に設定することが不可欠で、Spreadを0に設定してしまうと、マルチチャンネルのソースがすべて畳まれ、モノラルになってしまいます。参考としてWwise Helpにある3Dポジショニングのイメージ図を見れば、Position + Orientationの詳細や、Wwiseで使うSpreadやFocusの役割を知ることができます。
新機能Speaker Panning / 3D Spatialization Mix
2017.2版台以前では、Game Parameterを使いRTPC (Real-time Parameter Controls) 経由で2Dまたは3Dのポジショニングタイプを決めることができましたが、この2つのポジショニング表現が瞬時に入れ替わるので、不自然な遷移となることが多く、ノイズが聞こえることさえありました。あえて工夫して1つの音の2Dと3Dのバージョンがスムーズに切り換わるようにするには、まずこの音のサウンドエフェクトをコピーし、2Dと3Dの2つのバージョンを作成した上で、両者を1つのBlend Containerに入れ、Blend Track内でクロスフェードさせるしかありませんでした。この苦肉の策がWwise 2018.1.0ではもはや過去の話となり、新しくSpeaker Panning / 3D Spatialization Mixスライダができました!

このスライダでスピーカーパンニングと3Dスペーシャリゼーションの割合を固定しておくか、RTPC経由でコントロールしゲームコードでダイナミックに設定できます。さらに別の方法として、Game ParameterをDistanceなどの既定パラメータに紐づけ、スピーカーパンニングと3Dスペーシャリゼーションの音の間の遷移を自動化することもできます。
3D Game-definedが、3D Positioned Emitterに変身
Wwise 2017.2版台以前で、3D Game-definedに設定された音はゲームオブジェクト(つまりエミッター)上で再生されるので、Wwise SDKファンクションへのコールを通して、ワールド内の音のポジションが設定されました。Wwise 2018.1.0でこれと同じ結果を得るにはListener Relative Routingオプションを有効にし、3D Spatialization設定のPositionまたはPosition + Orientationを使い、以下のように3D PositionにEmitterを設定します:

デフォルトでHold Emitter Position and Orientationオプションが無効になっていますが、もし音の再生が終わるまでエミッターの初期ポジションをそのまま利用したい場合は、このオプションを有効にし、エミッターであるゲームオブジェクトの動きを無視します。
3D User-Definedが、Listener with Automationに変身
Wwise 2017.2版台以前では3D User-definedに設定された音に、リスナー周りにパス(通り道)を単数または複数、事前にデザインすることで、音が再生中にそのパスに沿って動くようにすることができました。用語の意味を明解にするという目的に沿って、Wwise 2018.1.0では、名前がListener with Automationに変更されました。

Hold Listener Orientationオプションを選択すると、リスナーの初期オリエンテーションが使われます。もし再生中にリスナーのオリエンテーションが変われば、新しいオリエンテーションが反映されるように音もパンニングします。このオプションを解除すると、リスナーのオリエンテーションが変化したとしても、音は同じスピーカーから出てくることになります。
新機能Emitter with Automation
もう1つ、多くのWwiseユーザーからリクエストがあったのが、3D User-definedポジションをリスナー側ではなく、エミッター側のゲームオブジェクトに適用する機能でした。これを可能にするのが、新しいEmitter with Automationです!

Listener with Automationと同じPosition Editorを使い、こちらもHold Emitter Position and Orientationというオプションがありました。移動中のゲームオブジェクトの上で再生される音に対し、このオプションを利用すると、音が再生され始めた初期のゲームオブジェクトのポジションが、再生が終わるまで使われます。
Wwise 2018.1.0で更新されたPositioning機能について、この記事がお役に立つことを願っています。
コメント