リリース2019.2では、スペーシャルオーディオ(Spatial Audio)で様々な進展がありました。重要な展開の1つが、Wwiseのレイキャストエンジンの刷新です。照明技術からインスピレーションを受けたもので、私たちのチームメンバーのクリストフ・トルニエリ(Christophe Tornieri)が去年の秋にAES NYでその一部を発表したとおり [1] 、三角形やエミッターの数、そして反射の次数などの許容範囲を大幅に拡大しました。また、2019.2版では、WwiseとSpatial Audioのインテグレーションが改善され、プログラマーにとってもデザイナーにとってもセットアップが簡単になり、クリエイティブな才能を引き出しやすくなりました。チームメンバーのタリー・ケクリキャン(Thalie Keklikian)によるWWWOEのプレゼンテーション [2] で、これをご覧になったかもしれません。
AudiokineticのSpatial Audio Researchチームは今回のリリースの少し前に、プロダクト部門を率いるサイモン・アシュビー(Simon Ashby)に、新しい機能を使ってWwise Audio Labをリミックスした感想を聞いてみました。嬉しいことに、「リスナーにダイナミックであり明暗のはっきりした世界を提供してくれる。実に活き活きとした世界!それをスペーシャルオーディオが約束してくれる」と積極的に話してくれました。面白いことに、サイモンはワークフローについて「ミキシングのルールをコントロールするは自分だけど、最終的に決めるのは、このシステムだ」と言いました。
これをきっかけに、私たちのスペーシャルオーディオのアプローチと、まるで二分法のような「サウンドデザイン」対「物理的な精度」について考えてみました。Wwise Spatial Audioは、サウンドデザイナーに数々のコントロールを与えてくれるので、確かにWwiseらしいものです。一方、音の伝播は不変の物理の法則に従います。それなのに、なぜユーザーにコントロール権を与えることにこだわったのか?そのまま、勝手に動作させればいいのでは?この連載では、Wwise Spatial Audioの方向性を決めるにあたっての私たちの考え方を、実用的な例を通してみなさんと共有したいと思います。
距離のモデル化
さて、多くのデザイナーが自分のゲームを聞こえ良くして納得のいく音にしようと思うわけですが、そこで物理の法則から外れてしまう典型例が、距離のモデル化です。ゲーム用サウンドエンジンには、距離に基づいて音を変化させる方法が必ずあります。ただ、音の減衰はよく知られている上、どのような音にも共通します。点音源の減衰は、エネルギーが外側に放射されるにつれ、より広い面積に広がっていくので、逆2乗の法則に従っています(つまり振幅は1/rに比例し、言い換えれば、距離が2倍になるたびに6dB小さくなります)[3]。距離がさらに遠くなると、エネルギーの広がりによる影響は小さくなり、空気に吸収されることによる減衰の方が大きくなります [4] 。
ところでデザイナーたちは、音によって適用するカーブを変える上、カーブが物理的に正確でないことが多いです。実際、距離による減衰はサウンドデザインするうえで重要なツールの1つとなり、それにはいくつかの理由が考えられます。
ゲームプレイ
ゲームプレイの方が、物理的な精度よりも大事です。例えば、遠くにいてもセリフが聞こえるように、ダイアログの減衰カーブは最小(または一定)に設定されます。
ダイナミックレンジの制約
限定的なダイナミックレンジという制約の軽減です。現実世界の音は非常に広範囲のダイナミックレンジ(0~190 dB SPL)を有していますが、バーチャルの世界は箱の中に収められ、オーディオはスピーカーやヘッドフォンから出てきます。デザイナーは、音が非常に大きいのか小さいのかによって、距離に基づくボリュームカーブを編集すると予想されます。
(a)
(b)
図 1 - 大きい音のカーブの一例。より正確なのは (a) のカーブだが、デザイナーは (b) のように調節して大音量の部分をつぶし、プレイヤーのサウンドシステムで表現するのに適したダイナミックレンジに合わせることがある。
ゲームワールドの縮尺
3Dワールドの縮尺を決める際に、音より見た目が重視されます。例えば、Wwise Audio Lab [5]のリビングルームは普通に見えますが、奥行きが約12メートルもあります。結構広いです。さらに、プレイヤーは秒速7.5 mで歩き、秒速18 mで走ります!
図 2 - Wwise Audio Lab にあるこのリビングルームは、ジオメトリの座標によると、奥行が12mもある。
収録された音
収録された音は、環境の一部が中に「ベイク」されて入っています。音をオーサリングするときに、私たちは普段聞こえているような音、あるいは少なくともこう聞こえて欲しいという音をつくりますが、正確な物理的な過程による部分と、音の伝播や周りの環境によるものとを、分別するのが難しいこともあります。音の中に存在するリバーブの量は、direct-to-reverberant ratio (DRR) で測定されますが、距離感を出すのに重要なヒントであることはよく知られています [6] 。実際に、人は音源から離れるにつれ、音源を直接の音波より反射によって感じ取るのが一般的です。無響室に入ったことがあれば、典型的な音の手がかりが不足することに気づくでしょう。
私たちは、無響室で録音した音をインポートすることは滅多にないのに、ゲームシステムは一般的に環境に基づいたリバーブを足します。これは直接音や、ドライ・ウェット比に使われる距離減衰のカーブ(つまりDRRのシグナルフローに相当するもの)に影響を与えます。
これに関連して、距離のモデル化でハイパスフィルターが頻繁に使われるのはなぜか、という疑問がわいてきます。ミキシングの観点で言うと、リバーブに送られる信号が増えるにつれ、ローエンドを取り除けばミックスが濁ってしまうのを防げます [7]。ところが音響の教科書に、低周波数帯に特に見られる距離によるエネルギーの消散に関する記述はありません [8]。
読者の中には、ゲームで距離減衰の活用を工夫するほかのアイディアのある人がいるかもしれません。私たちはそういったご意見を、是非とも聞いてみたいと思っています。
もし距離減衰でも現実と実用でそれほど違いがあるのなら、もっと複雑な、または微妙な音響現象を、物理的に正確に表現することができるのでしょうか?
アーリーリフレクション
アーリーリフレクションについては、前のセクションでも触れました。波面がエミッターから広がりながら障害物に到達すると、エネルギーの一部は障害物の材料に吸収され(つまり、そのまま透過し)、一部は反射されます。リスナーは反射音と直接音が到達する時間差と、到達したときの角度から、周辺環境の形状に関する多くの情報を取得します。アーリーリフレクションと呼ばれるのは、これら初期の反射のことで、私たちが環境を把握するための重要な役割を担い、没入感や頭外定位にも大きく貢献します [9] 。
Wwise Spatial Audioに導かれ、Wwise Reflectプラグイン [10,11] はこれらのアーリーリフレクションをモデル化します。サイモンは、アーリーリフレクションが部屋の情報を跳ね返してくれることで、ワールド内の自分の位置と向きを立体的に、そして瞬時に、教えてくれると言います。これまで私たちはWwise Reflectを通して、ジオメトリに完全に依存したリバーブと比較して演算負荷が比較的低いかたちで、アーリーリフレクションのダイナミック性と没入感を提供することを目指してきました。
アーリーリフレクションの減衰は、空気と物体との接触面における距離とエネルギー損失によって、起きます。さて、正確にモデル化された反射を前にしたときでも、どうしてサウンドデザイナーは「ズル」をするのかを検討するのも、面白いかと思います。
(a)
(b)
図 3 - Wwise Reflect は、Wwise Spatial Audio が計算したデータを使いアーリーリフレクションを表現する。(a) アーリーリフレクションのパス。Wwise Spatial Audio が計算し、3D Game Object Viewに表示。
(b) Wwise Reflect の UI には、該当するイメージソースがリアルタイムで表示される。
距離減衰
距離減衰(distance attenuation)をカスタム化する理由は、直接音と同じです。Wwise Reflectには専用のカーブが数種類、用意されています。その理由の1つは構造上の問題で、バス上に存在するプラグインが、ソースのAttenuation ShareSetを確認するのは容易ではなく、場合によって複数のソースがあり、それぞれ距離減衰の設定がカスタム化されているかもしれないので、その場合はさらに厄介になります。それでもWwise 2019.2における前進のおかげで、この問題の解決に近づいています。また、デザイナーが直接音と同じにしたがらないこともあるのが、もう1つの理由です。
オーディオクリエイターたちがアーリーリフレクションの距離減衰をオーサリングするときに、なぜドライサウンドのオーサリングと違う方法を採用しがちなのか、また前者が後者とどう関係するのかは、明確ではありません。憶測ですが、場合によってDRRが関係するのではないでしょうか。こちらの調査 [12] て提案されているように、最初のいくつかの反射を主体に距離感が出され、Wwise Reflectでつくり出される信号が、確かにDRRのリバーブ面に貢献します。ただ、ReflectはAuxバスにおいて従来の距離に基づくセンドレベルから除外されていて、それは簡素化されたこのモデルが、各反射で距離の違うReflectに適用されないからです。そこでサウンドデザイナーは距離に対応したアーリーリフレクションの動きをデザインする上で、グローバルDRRがないという状況を、ある程度補う必要があります。ソースに近いとき、デザイナーは近い様子を強調するために、反射を本来よりも静かにしがちです。逆に遠くにいるときは、ある程度の距離感を表現するために、デザイナーは反射音を大きくします。このように誇張するのは、結局は手間を省いて多くを成し遂げようとしているのだと、私は思います。実際に、Wwise Reflectによってつくられるアーリーリフレクションの数は現実世界よりも非常に少なく、それはジオメトリの理想化とパフォーマンス上の制約のためです。いずれにせよ、Wwise Reflectの距離モデルをシンプルにすべきかどうかに正解はまだなく、まずはドライサウンドの距離モデルからどう外れているのかを理解することが大事です。以上のことから、私たちは、読者のあなたのデザイン判断を左右するのが何か、とても関心を持っています!
壁による吸収
手間を減らして成果を増やせる別の例が、壁による吸音です。日常的な材料の周波数別の吸音率は文献などで簡単に確認できますが、わりと低いことが分かります(言い換えれば、高反射です)。とは言え、室内の音波は壁に何百回も反射され、その都度、壁材に吸収されてエネルギーが少しずつ失われます。つまり、ある周波数帯で数dBを吸収することで、リバーブの合計ディケイタイムや、その部屋で感じられる音色に、大きく影響が出る可能性があります。
逆にWwise Spatial Audioでは、1つのパスに対して反射を最大4回しかシミュレーションせず、なんとリリース2019.2より前は1回より多く反射させるのがやっとでした!WwiseはAcoustic Texturesで材料による吸収(absorption)をシミュレーションします。デザイナーはAcoustic Texturesを使って実際よりも材料の吸音の特性を誇張して、環境の音響的な特性を強調し、出てくるオーディオに壁の材質をしっかりと入れ込むことができます。
Materials |
Absorption coefficients by frequency (Hz) |
||
125 (~Low) |
500 (~Mid Low) |
2,000 (~Mid High) |
|
Painted concrete |
.10 |
.06 |
.09 |
Brick |
.03 |
.03 |
.05 |
Heavy curtains |
.15 |
.55 |
.70 |
図 4 - Factory Reflect Acoustic Textures のカーテンやレンガ材、そしてこちらのWikipediaページ [13] 掲載の実際の吸音率。なお、Wwiseの数値は単位%。「コンクリート」(Concrete)はわりと近く、「レンガ」(Brick)はスペクトルの形状が似ているものの全体的に吸音性が高い。「カーテン」(Curtains)では、どうやら私たちのアーティストが思いっきり羽を伸ばしたみたい!
Reflection Send
新しくWwise 2019.2に、Reflection Sendというサウンドプロパティが入りました。その音に望ましいWwise Reflect ShareSet(ほかのエフェクトも可)を選択したり、そこに送り込みたい音の量を調整したりできます。「一体なんのため?物理的な音は、その性質に関わらず、必ず同じ強さで反射するはずなのに?」と思うかもしれません。これはゲームプレイやストーリーなどの内容に配慮して、一部の音をもっと「反射させる」ようなときに使うのです(人気のない廊下のフットステップなど)。あるいは、すでにリバーブが充分にベイクされている音の場合は、反射を抑えたいと思うこともあります。さらに、音の反射に信号処理などを少し加えて調節したいこともあるでしょう。これをきっかけに、みなさんがシステム本来の柔軟性を活用して新しい方法を切り開いてくれることを期待しています。
図 5 - Wwise オーサリングツールの Early Reflection Send 。
次回は、引き続きWwise Spatial Audioの方向性について考えるとともに、重要な音響現象である回折(diffraction)について、実用的なユースケースを紹介します。
コメント