このシリーズでは、従来、現在、そして最新のリバーブテクニックを、没入感とスペーシャル(空間)化の観点から幅広く見ていきます。前回までの記事で、リバーブで表現する没入感とVR(バーチャルリアリティ)の関係を探り、従来のリバーブアルゴリズムの裏にある技術や、バーチャル音響アルゴリズムによる音伝播シミュレーションについて確認しました。今回は、これらの技法を組み合わせてリバーブエフェクトを使った効率的かつ魅惑的な空間表現について考えます。この記事は、Audiokineticがリリース予定の spatial reverberation(スペーシャルリバーブ)テクノロジーの予告編でもあります。
前回の記事で、新たなリバーブアルゴリズムの開発が行われている理由やその背景などの理解を深め、新ツールがどのように作成されているのかを考えました。従来のリバーブアルゴリズムの限界や、音伝播シミュレーションで犠牲になる様々な要素を理解することは、新しいエフェクトを模索する上で重要です。バイノーラル技術やアンビソニックスなどのスペーシャルパンニング技術の進展でサウンドデザインのガイドラインが改められているのと同様に、ダイナミックなスペーシャルリバーブを取り入れるには新しいデザインパラダイムが要求されます。
新しいspatial audio(スペーシャルオーディオ)テクノロジー開発のきっかけは、確かにVRの没入感のニーズでしたが、VR以外のプラットフォームでもインタラクティブなサウンドデザインに使える、パワフルなツールです。3D空間を感じ取れるリバーブはどうつくり出せるのか、そしてこのエフェクトは今後のサウンドミックスにどう貢献するのか?これまでの記事で紹介した技法の現場での影響を考えながら、Audiokineticから近日リリース予定のダイナミックなアーリーリフレクションを開発した過程で学んだことを紹介します。
ハイブリッド型リバーブレーター
スペーシャルリバーブレーターの開発にあたって、直接音と同じパンニングアルゴリズムを通したリバーブの3D化を目指しました。実現するには、主要な反射の方向や距離に関するある程度の情報を、リバーブレーターから発信する必要があります。Ray-based(レイベース)法やwave-based(波動ベース)法などを使えば良質な空間認識を達成できるものの、課題や限界があるのも事実です。例えば、レイベース法はアーリーリフレクションのシミュレーションに適していますが、レイトリバーブのレンダリング結果が現実味に欠けます。一方、波動ベース法は高周波になるほど伝播演算の負荷が増大します。面白いことに、リバーブレーター内でエコー密度が増大すると同時に出力が徐々に拡散するので、スペーシャル表現の精度が重要でなくなってきます。このような理由で、リバーブを時間が経過するにつれ段階的に変化するエフェクトとして考えれば、段階に応じて最適なリバーブ方式に切り替えることもできます。それには、段階の切り替え時に問題なくブレンドして全体としてまとまるハイブリッド型アルゴリズムを形成する必要があります。
既にある方式の中で、波動ベース法がシミュレーションの精度が高く際立っています。これらのテクニックはゲームのジオメトリ(空間形状)から自動的にインパルスレスポンス(IR)を生成する時に使いやすいので、リバーブのプロパティを巨大なバーチャル環境に割り振る作業が多少なりとも軽減されます。残念ながら、この方式の演算負荷は非常に高く、多くの場合、実用化が現実的ではありません。実際には、その利便性よりも、従来のリバーブ方式の柔軟性と表現力の方が勝ります。従来のマルチチャンネルリバーブレーターであるambisonics impulse response(アンビソニックスインパルスレスポンス)などが、late reverberations(レイトリバーブ)に非常に適した選択肢なのです。多くのマルチチャンネルのレイトリバーブレーターに共通する制約事項が、インタラクティブなアーリーリフレクションがないことです。アーリーリフレクション専用にレイベース法を組み合わせれば、ハイブリッド型リバーブレーターとして統合できます。レイベース法をここで採用するメリットの1つが、個別の反射に対して細かくコントロールできることで、サウンドデザインツールとしての潜在力が大きいと思われます。
没入感を表現する新たなサウンドデザインのパラダイム
レイベース法のアーリーリフレクションを採用して、反射の発生位置をシミュレーションできます。仮想ジオメトリの中でリスナーとエミッタ―のポジションを両方とも把握できると、各反射のディレイ時間とspatial positioning(空間的な位置)を用いたリバーブエフェクトを作成できます。そして、各反射の個別の位置情報から、適切なHRTFスぺ―シャリゼーションによるバイノーラルパンナーが可能です。反射がリスナーに届くまでの距離でディレイの長さが決まり、音がゆっくり伝わる特質をシミュレーションできます。個々の反射の振幅も距離に応じて調整できます。例えば、部屋の隅付近にある音源が近くに聞こえるようにするには、ディレイを非常に短くして、結果として聞こえる音がより大きく聞こるようにします。エフェクトの周波数コンテンツを調整するためにシステムにオーディオフィルターを追加すれば、周波数によって異なる壁面吸音をシミュレーションできます。これらのパラメーターを通して、レイベース法音伝播シミュレーションから来る情報を使って、変動する部分が多いシステムを作成できます。許容範囲の演算負荷でspatial cue(スペーシャルキュー)を提供しながら、スペーシャルリバーブも適宜調整できるようにします。なお、リバーブはあくまでもエフェクトなので、シミュレーションの精度よりも感覚的な品質を優先すべきです。
他のリバーブエフェクトと同じで、スペーシャルリバーブレーターのエフェクトもあらゆる場面のデザインに対応できなければいけません。例えば、必要に応じてエフェクトを抑えて台詞が目立つようにミキシング全体に余裕を持たせたり、音源に近づく時に起きる近接感のエフェクトを表現したりします。
また、同時再生中の音が多すぎるような場合は、それぞれの反射経路を計算しても演算負荷の割には実感できるメリットが低いので、リバーブレーターに入る音源に優先順位をつける必要がでてきます。
別の場面では、主要な反射を、物理的に予想されるものよりも大きくして、大げさにすることが適しているかもしれません。例えば、メインキャラクターが延々と続く狭い廊下を進む場面では、最も近くにある2つの壁面を意識するようにフットステップ音を表現して、耳で聞く緊張感を作り出せます。音によっては、狭い部屋のジオメトリでも、広いスペースの音響をシミュレーションした方が良く聞こえるかもしれません。
エフェクトのfrequency response(周波数応答)がミックス全体に入るように、各壁面に付けられたオーディオフィルターは、各種材質の吸音性能を再現するだけでなく、求めているミックス全体にも寄与します。
以上の例から、仮想空間のジオメトリとシミュレーションアルゴリズムで構築されるスペーシャルエフェクトでも、クリエイティブな柔軟性を維持することがいかに大事かが、分かります。
ダイナミックなアーリーリフレクション
それでは、レイベース法のダイナミックなアーリーリフレクションと、それをクリエイティブに活用できる場面について、詳しく説明します。リバーブレーターのIRに話を戻すと、ここで変調したいのは最初のいくつかのエコーだけです。これらの反射はまだ間が空いているので、鏡面反射として明白に聞こえますが、その後の反射はもっと詰まって重なり合い、拡散したリバーブを形成します。最初に変調したいのは、振幅です。壁面吸音やdistance attenuation(距離減衰)などの設定に従って、1つ1つの反射が調整可能な減衰をたどります。振幅は、このエフェクトを強調したり特定の反射を目立たせることができる強力なパラメータとなります。また、レイトリバーブのウェット・ドライ比率をコントロールする通常の距離パラメータとは独立して、こういった反射を制御できます。例えば音源にリスナーが非常に近い時に起きる近接効果では、レイトリバーブをミュートしながらも室形状に基づいたアーリーリフレクションを一定レベル維持した方が、もっとリアルで効果的かもしれません。
アーリーリフレクションの振幅の変調。[1] による図表を一部修正。
各アーリーリフレクション間の時間差も、変調すべきです。各種反射面までの距離、音速、リスナー位置、音源の位置などを総合して様々なディレイの長さを計算できます。音速は、バーチャル空間の感覚を広くも狭くもできる、興味深いパラメータなのです。
フレーム毎の位置が変化する可能性があるので、ディレイ長さをダイナミックに変更できるようにします。これは time-varying delay lines(時変遅延ライン)または fractional delays(非整数遅延)と呼ばれます。非整数遅延の長さを増減する時に、変化が充分に大きいと、ドップラー効果が聞き取れることもあります。これは、読み取るサンプル数を増やして、または減らして、新しいディレイ長さに合わせる必要があるためで、要はリサンプリングです。
アーリーリフレクションの time delay の変調。[1] による図表を一部修正。
最後に、個々の反射を別々にスペーシャル化する必要があります。簡単な方法として、中間にspatial bus(スペーシャルバス)を入れることができます。例えば、反射を高次アンビソニックスバスに出力すれば、入ってくる角度を維持できます。あとでこの高次アンビソニックスバスを、自分で選択したバイノーラルプラグインを使ってヘッドフォンに対してミックスします。この処理を行うことで、例えばリスナーが回転しても、それぞれの反射の整合性を時間の経過に合わせて保て、かつ反射にHRTFフィルターを適用する際の演算負荷を最小限に抑えられます。
アーリーリフレクションの中間パターンをスペーシャル化してから、角度に応じてHRTFを通す。
以上の設定を全て1つのインターフェースにまとめて、エフェクトのパラメータとして提供できます。下の例では、複数の距離減衰カーブを活用して、reflection distance(反射距離)と listener-emitter distance(リスナー・エミッタ―間の距離)に基づいて、attenuation(減衰)や spread(拡散)を決定しています。部屋の広さ感覚に影響するディレイを調整するには、時間を変更します。Wall(壁面)のオン・オフも壁ごとに選べるので、特定の壁面をソロにして設定を適宜調整することもできます。
Wwiseのスペーシャル アーリーリフレクション画面(プロトタイプ)
仮想ジオメトリ
仮想ジオメトリは、アーリーリフレクションの動きを決めるのに重要です。バイノーラルプラグインでよく使われる方式の1つが、リスナー周りに長方形の部屋を固定することです。実際は、バイノーラルエフェクトをダイレクトパスだけに制限してしまうと、スペーシャル表現が乏しい音になるので、エフェクトにある程度スペーシャル位置を意識した反射が必要です。シンプルな対処法として、広さが異なる数種類の固定の部屋をプリセットとして準備すれば、ゲーム内のジオメトリ情報に依存せずにすみます。位置が定まった静的な反射を、単純に、同じHRTFフィルターセットに通すだけです。
リスナーの周りに固定された部屋。それぞれの反射の位置は、静的である。
エフェクトをもっと洗練させるには、ゲーム内でray casting(レイキャスティング)を行って、最も近い反射面を見つけます。一般的な方法として、ある特定の点から複数の方向にレイを送信します。レイとは、単純な直線のことで、レイキャスティングとは、ゲーム内でこの線と交差する面や物体を見つけるための操作です。普通はゲームエンジンが実行します。このエフェクトを生成するには、まず求める音をモノバスにミックスして、それを反射アルゴリズムへの入力に使います。次にミックスされた音をレイを妨害する最も近い面に反射させて、伝わった距離に従って音をディレイさせ、出力の場所はレイの方向に配置します。この方式は、例えばメインキャラクターが発する音に使えます。メインキャラクターがサウンドデザインの中心になることが多いので、そのサウンドのみを強化するのに適しています。BlizzardはこのエフェクトをゲームのOverwatchで使いました。この場合は、レイから情報を得た4本の遅延ラインを使ったので、quad delay と呼びます [2]。
リスナーの周りから決まった角度でレイを発信して、反射面の位置を確認。
もっと複雑な空間をレンダリングするには、サウンドエンジンがジオメトリ情報を直接アクセスできるようにします。この場合は、完全に拡散した音場ではなくてアーリーリフレクションをシミュレーションするだけなので、ジオメトリを簡素化した3次元ボックスがあれば充分です。簡素化されたジオメトリにアクセスできることで、アーリーリフレクション アルゴリズムを使って、複数の音源の主要な反射経路の場所を判断できます。この方が、複数の音源のレイトレーシング処理を行うよりも効率的です。
アーリーリフレクションを個別に取り扱うおかげで、各音源の場所に応じて変調したリッチなエフェクトを作成できます。音源を別々にすることで、音源ごとのカスタム設定も作成できます。場合によって、演算負荷を軽くしたり全体の仕上げを向上させるために、反射を2つだけに押さえた方が良いこともあります。特定の音源では最も近い壁面だけを優先して、それ以外の音源では全ての壁面を採用して違ったエフェクトを達成する、という方法もあるでしょう。
実験中に発見したのが、天井と床の反射は、標準的なサラウンドシステムで出力すると望ましくない結果になることがあるということです。実際には頭上と直下にチャンネルがないので、リスナー周りの水平方向に配置換えされると、誤った方向感覚を強化してしまいます。そうであれば、ミュートした方が良いでしょう。つまり、求められている出力チャンネルのコンフィギュレーションも考慮すべきです。
パラメータをグループ分けするには、メインキャラクターの立場からの設定と、外部サウンド用の設定に分けるのが一般的です。その根拠は、リスナーから来る極めて近いサウンドに対するエフェクトを維持しながら、外部サウンドがリスナー近くにある時にその反響をミュートできる点です。
音源によって異なる、それぞれの反射パス。1つの音源は、使われる反射が少ない。
反射経路を個別に扱うには、サウンドエンジンとゲームエンジンの間のコミュニケーション強化が必要です。サウンドエンジンが、音源の様々なカテゴリーの設定を保有します。また、各種壁面やレイトリバーブのパラメータも保有します。この情報がゲームエンジンに送られ、そこでプロパティがジオメトリに付けられます。例えばゲームエディター上で、サウンドエンジンから提供された音響部材のリストを壁面のタグ付けに使います。逆にゲーム側は、ジオメトリや、それに付随する音響プロパティとポジショニングの情報を、サウンドエンジンに送り返します。この段階で、サウンドエンジン側にエフェクトのレンダリングに必要な情報がそろうので、アーリーリフレクションをレイトリバーブと組み合わせることができます。
サウンドエンジンとゲームエンジンの間のデータフロー
サンプルサウンド
以下の2つの短いサウンドクリップを聞き比べて、このエフェクトの効果を確認してみてください。最初のサウンドクリップはスペーシャル要素を全く加えない通常のリバーブ、次は完全にスペーシャル化した4つのアーリーリフレクションが伴うものです。両方とも、バイノーラルプラグインAuro®-HeadPhones™ を使っています。このエフェクトを体感できる機会が、今後沢山増えると予想されます!
まとめ
ダイナミック アーリーリフレクションを使えば、幅広いスペーシャルエフェクトを作成して、基礎となるテクニックの枠組みを遥かに超える没入感を実現することが可能です。主要な反射のパラメータを細かく調整することで、豊かな表現力を幅広くかもしだせます。マルチチャンネル リバーブと組み合わせれば、没入感のあるサウンドスケープ全体を再現できるので、台頭し始めたスペーシャル感覚のあるプラットフォームと共に成長できるような、新たなサウンドデザインのパラダイムが出現すると思われます。
参考文献:
[1] V. Välimäki, J. D. Parker, L. Savioja, J. O. Smith, J. S. Abel, “Fifty years of artificial reverberation”, IEEE Transactions on Audio, Speech and Language Processing, vol. 20, no. 5, pp. 1421–1448, July 2012. Available at: https://aaltodoc.aalto.fi/bitstream/handle/123456789/11068/publication6.pdf
[2] https://blog.audiokinetic.com/overwatch-game-audio-using-wwise-part-2/
コメント