ロケーションベースエンターテイメント、不規則なスピーカーセットアップ、そしてWwise

インタラクティブオーディオ / ロケーションベースエンターテイメント(LBE)

Wwiseは、コーンソールやPCのゲームなど、オーディオのチャンネル数やスピーカー配列が消費者向けの従来のチャンネルコンフィギュレーションにそった開発に定評がありますが、Wwiseが輝く場はほかにもあります。ロケーションベースエンターテイメント(LBE)、テーマパークのアトラクション、没入感を体感できるサウンドインスタレーション、そしてライブパフォーマンスなどの開発も、Wwiseでさらに良くなります。

LBEのエクスペリエンスは、ほぼすべてがカスタムデザインされていて、スピーカーセットアップが不規則な上、大量のオーディオチャンネルが含まれることがあります。そして多くの場合、エクスペリエンスを開発するときに使われるのが、UnityやUnrealなどの人気ゲームエンジンです。これらのゲームエンジンの多くは、そのままでは従来のスピーカーコンフィギュレーションにしか対応できないので、別途のソリューションが必要となります。

以下に、例外的なスピーカーコンフィギュレーションを使うときに必要となるWwise設定を説明してから、LBEエクスペリエンスに簡単にインテグレートできるWwiseの実装案を3つ、紹介します。

Wwiseのセットアップ

ASIOアウトプット

多くのLBEエクスペリエンスで従来と異なるスピーカーコンフィギュレーションが採用されるので、Wwiseを使うには、Wwise ASIO Outputプラグインという、開発者とASIO対応の出力デバイスとのインターフェースが必要となることがあります。セットアップは簡単で、"ASIO Output"のデバイスを選定して作成し、このデバイスを"Master Audio Bus"にアサインするだけです。オーディオチャンネル数は、自動的に正しく検知できるほか、プラグインに関連するXMLファイルで明示的に指定することもできます。

image2020-5-1_15-38-6

image2020-7-14_21-50-9

Channel Router

Wwise Channel Routerプラグインは、サウンドデザイナーや開発者がチャンネルコンフィギュレーションの異なる複数のバスを、1つの出力デバイスに送れるようにルーティングしてミキシングできるWwiseのミキサープラグインです。LBEでは複数のスピーカーセットを使いこなすために1つの出力デバイスを使うことがよくあるので、これは特に便利です。複数の子バスのチャンネルをオフセットし、そのシグナルが適切な出力チャンネルに対してミキシングされるようにするプラグインです。オフセットは、Wwiseで静的に設定することも、RTPCでダイナミックに設定することもできます。

image2020-7-14_21-49-2

例 1 -  従来のサラウンドスピーカーチャンネルのコンフィギュレーションと、追加のアウトプット

サラウンドサウンドのセットアップが従来通りで、プレイヤーが1人であれば、Wwiseでオーディオを実装するのにプレイヤーサウンドのための特別な手配は不要です。環境や、NPCや、プレイヤーから生成される音は、すべてサラウンドスピーカーから出されます。

さて、プレイヤーが9人いて、それぞれが、ハプティックやオーディオを出すウェポンコントローラを手に持った、サラウンドサウンドのスピーカー環境におけるLBEのエクスペリエンスを考えてみます。この例では、位置関係のある環境音やNPCのモノ音源がサラウンドサウンドスピーカーから再生されます。また、マルチチャンネルのアンビエントコンテンツもサラウンドサウンドスピーカーから再生されます。プレイヤー1人につき、ウェポンオーディオやハプティックフィードバックを出すのに、ペアのモノチャンネルを使えます。

image2020-7-10_13-29-56

結果として24チャンネルのオーディオコンフィギュレーションとなりますが、内訳は、5.1サラウンドサウンドのための6チャンネル、各プレイヤーのウェポンコントローラのオーディオのための9チャンネル、そして各プレイヤーのウェポンコントローラのハプティックフィードバックのための9チャンネルとなります。

image2020-5-14_15-46-21

環境音

これをWwiseで実装するには、"Master Audio Bus"の真下にあってチャンネルコンフィギュレーションが意図的に5.1に設定された"Surround Sound Bus"を、サラウンドサウンドスピーカーから出るすべてのサウンドが通るようにします。

image2020-5-14_15-53-54

プレイヤー別のオーディオ

プレイヤー別の音はすべて、Listener Relative Routingを使って設定された、Wwise Channel Routerを使う"Player Sound Bus"に送ります。

image2020-7-13_15-33-12

image2020-7-10_12-24-3

上図では、ゲームパラメータ"GP_PlayerId"を利用してチャンネルオフセットを決定しています。これで、プレイヤー全員に共通する音を、Wwiseを使って全く同じ設定にすることができます。また、下図のようにSwitchGroupにゲームパラメータを使い、個々のプレイヤー専用の音をSwitch Container経由で簡単に実装することもできます。

image2020-7-10_12-28-46

Wwise Channel Routerセットアップのチャンネルオフセットをゲームパラメータで制御するので、ゲームコードは、対象プレイヤーのウェポンコントローラのゲームオブジェクト上で適切な音がトリガーされるように、そのオーディオチャンネルのチャンネルオフセットに、該当値を送ります。また、各プレイヤーのウェポンコントローラのゲームオブジェクトは、そのオブジェクト自身に対するリスナーにもなるので、その設定もゲーム側が担います。

image2020-7-13_15-12-48

プレイヤー別のハプティックフィードバック

プレイヤー別の音と同じく、プレイヤー別のハプティックフィードバックも、Wwise Channel Routerを使い実装すれば、該当するプレイヤーのウェポンコントローラにハプティックフィードバックを届けることができます。Wwiseでウェポンサウンドのチャンネルオフセットを出すゲームパラメータを、ウェポンフィードバックのチャンネルオフセットを決めるためにも使えます。

image2020-7-10_12-22-33

ゲームへのインテグレーション

以上をWwiseで実装すれば、全サラウンドサウンドに関して、ゲームは、ポジションを有するゲームオブジェクトに対してイベントをポストすることができ、ウェポンオーディオやハプティックフィードバックが"GP_PlayerId" RTPC の設定で適切なプレイヤーのウェポンコントローラに届くようになっているプレイヤーゲームオブジェクトに、イベントをポストできます。

image2020-7-13_15-10-56

分かりやすくするために、上図の"Advanced Profiler"画面の、"Wwise Channel Router"プラグインを見てください。ゲームオブジェクト"Player 03"の"GP_PlayerId" RTPCは「2」に設定されていて、"Player Sound Bus"のオーディオチャンネル9にあたり、"Player Haptic Bus"のオーディオチャンネル18にあたります。一方、ゲームオブジェクト"Player 07"の"GP_PlayerId" RTPCは「6」に設定されていて、"Player Sound Bus"のオーディオチャンネル13にあたり、"Player Haptic Bus"のオーディオチャンネル22にあたります。デフォルトリスナーを通り、続いて"Surround Sound Bus"を通る音はすべて、"Wwise Channel Router"によって変更されることがなく、ASIO Outputデバイスの最初の6つのオーディオチャンネルに出力されます。

例2 - デュアル・クアッド・スピーカーのチャンネルコンフィギュレーション

現在、非標準型のスピーカーコンフィギュレーションに自動的に対応する機能はWwiseにありませんが、開発者が標準コンフィギュレーションを応用できるという意味では、優れた柔軟性を提供します。

この例は、8台のスピーカーを立方体に配置したスピーカーセットアップのLBEエクスペリエンスです。スピーカーが天井の四隅に計4台と、床の四隅に計4台配置され、モーターの周る静かな音がするドローンが、空中を飛び回ります。

Wwiseの実装

天井の"Ceiling Audio Bus"と床の"Floor Audio Bus"の両方のバスに、4.0chコンフィギュレーションが2セット使われます。

image2020-5-13_14-33-13

Wwise Channel Routerを使って"Floor Audio Bus"のベースチャンネルを静的にオフセットして、"Ceiling Audio Bus"の各チャンネルと重ならないようにします。

image2020-5-13_14-55-18

Wwiseで、ゲームパラメータを使って天井と床の音のミックスを決めます。求める結果や、都合のよい単位に合わせて、ドローンの相対的な高さ(relative height)、または相対的な標高(relative elevation)を、ゲームパラメータで表します。

下の例では"GP_RelativeHeight"というRTPCを使って天井(Ceiling)と床(Floor)の音のミキシングを行っています。エミッターがリスナーと同じ高さにくると、天井スピーカーも床スピーカーも音のボリュームは等しくなります。

image2020-5-13_14-53-11

image2020-5-13_14-53-39

次に、この2つのバスの音を同時にトリガーするEventを設計します。下図では"Play_FlyingDrone_Motor_Sfx"というイベントを構成しているオーディオターゲットとして、"Drone_Motor_Ceiling_Sfx"と"Drone_Motor_Floor_Sfx"の2つがあり、前者が"Ceiling Audio Bus"、後者が"Floor Audio Bus"に対して出力されます。

image2020-5-13_14-35-39

ゲームへのインテグレーション

Wwiseでサウンドやイベントの実装が済めば、ゲームは、ドローンを3D空間にポジショニングして、高さまたは標高のRTPC値を更新します。この空間において距離による減衰が正しく表現されるように、クリエイティブな判断として減衰カーブやRTPCカーブを工夫していきます。設定が終わればゲームはドローンであるゲームオブジェクトのポジションを、3Dポジションで更新し、Wwiseの標準の距離減衰を使うか、距離減衰のカーブに似せたRTPC設定を使い、飛行中のドローンの音が、このエクスペリエンスの適切な場所から発せられるようにします。

例3 - 平面グリッドに配置したスピーカー

LBEエクスペリエンスとは言っても、動きがすべて2Dの平面で起きることもあります。平らなグリッドに複数のスピーカーが配置されていて、このグリッドのあらゆるところから、しかもスピーカーの間からも、音が聞こえてくるように感じる例を紹介します。このスピーカーコンフィギュレーションは、非標準型のコンフィギュレーションであり、ベクトルに基づくアプローチであるVBAPでパンニングが決まるのではなく、距離に基づくパンニングが使われるので、作業が難しくなります。このような難題にも関わらず、Wwiseを使い、多少の知恵を出せば、簡単に乗り越えられるはずです。

それでは、スピーカー9台が垂直なグリッドに3x3で設置され、この平面上に自由に置けるエミッターが1つあるような事例を考えます。

Wwiseの実装

WwiseのListener Relative Routingや、3Dスペーシャリゼーションの適切な設定を使い、ポジションを有する音を設定します。音が確実に適切な台数の周辺スピーカーから出されるように、減衰カーブを設定します。これで、希望通りのスプレッドやフォーカスとなるように、減衰カーブが調整されます。

image2020-7-14_10-39-41

下図では、複数の音が同じ設定を必要とした場合に備えて、"Planar Array Mixer"というActor-Mixerを使ってセットアップを単純化しています。

 

image2020-5-13_16-58-8

ポジショニングが決まった音は、減衰や3DスペーシャリゼーションがなくListener Relative Routingが有効な"Speaker Bus"にルーティングされます。"Speaker Bus"では、Wwise Channel RouterのChannelパラメータに、RTPCが適用されます。"Speaker Bus"の"Attenuation"(減衰)を“None”に設定し、デフォルトリスナーまでの距離によって、ボリューム計算に影響が出ないようにしています。

image2020-5-13_16-51-53

image2020-5-15_16-23-28

ゲームへのインテグレーション

ゲームは、物理的なスピーカー1台に対し、1つ以上のデフォルトリスナーと、デフォルト以外の1つのリスナーゲームオブジェクトを登録します。

image2020-5-19_11-47-29

デフォルトでないリスナーゲームオブジェクトのインゲームのポジションは、実際の物理的なロケーションに類似した位置になり、一番適した出力オーディオチャンネルと連携するように、そのチャンネルオフセットのRTPCが設定されます。

image2020-7-14_10-16-59

次に、各エミッターゲームオブジェクトが、デフォルト以外のすべてのリスナーゲームオブジェクトに聞こえるように設定します。その結果、これらのゲームオブジェクトから出された音は、周囲のリスナーゲームオブジェクトがキャプチャーします。

image2020-5-19_11-46-42

下図では、"FlyingDrone_Motor_Sfx"という音の距離による減衰が、最も近くにある、最大4つのリスナーに、確実に聞こえるように設定されているのが分かります。

image2020-5-19_23-43-33

まとめ

現在、多少の工夫さえすれば、Wwiseを使ったLBEインスタレーションのサウンドデザインがしやすくなります。今後、スピーカーコンフィギュレーションが標準的でない場合も、もっと楽に音の空間配置に対応できるように、Wwiseがさらに進化します。ご期待ください.... 

https://www.audiokinetic.com/ja/discover/wwise-in-lbe/

 

 

 

 

 

ショーン・ラプティステ(SHAWN LAPTISTE)

フィールドエンジニア

Audiokinetic

ショーン・ラプティステ(SHAWN LAPTISTE)

フィールドエンジニア

Audiokinetic

美しい音とクリーンなコードに魅かれ、20年近くソフト開発の仕事をし、趣味のコンピューターミュージックも楽しむ。興味の対象はゲームデザインからサウンドデザイン、そしてインスタレーションアートにまで広がる。Audiokineticのフィールドエンジニアとしてクライアントを助け、成功へと導く。

 @lazerfalcon

コメント

Replyを残す

メールアドレスが公開されることはありません。

ほかの記事

Krotos誕生の舞台裏

KrotosからリリースされるIgniter Live...

19.8.2020 - 作者 オルフェアス・ボテアス(ORFEAS BOTEAS)

『Star Trek: Dark Remnant』の音 VRで伝説の世界を再現

アメリカのエンターテイメント施設Dave & Buster’sは、エクスペリエンス第3弾となる『Star Trek: Dark...

20.10.2020 - 作者 HEXANY AUDIO(ヘキサニーオーディオ)

オーディオオブジェクトで音の空間配置の精度を向上

3.6.2021 - 作者 サイモン・アシュビー(Simon Ashby)

日常生活のなかで、Wwiseでインタラクティブミュージックをつくってみる

3.11.2021 - 作者 レッサ・シュバルツバルト(Ressa Schwarzwald)

インタラクティブミュージック 自分の選択肢で展開されるバラード

inXile Entertainmentは、2018年にクラウドファンディングに成功してゲーム『Wasteland 3』の制作を本格的に始めました。前作『Bard's Tale...

13.4.2022 - 作者 アレキサンダー・ブランドン(Alexander Brandon)

World Beastの歌

自己紹介...

8.11.2022 - 作者 サム・トワイデール(Sam Twidale)

ほかの記事

Krotos誕生の舞台裏

KrotosからリリースされるIgniter Live...

『Star Trek: Dark Remnant』の音 VRで伝説の世界を再現

アメリカのエンターテイメント施設Dave & Buster’sは、エクスペリエンス第3弾となる『Star Trek: Dark...

オーディオオブジェクトで音の空間配置の精度を向上