時はビクトリア朝、場所はロンドン。大英帝国の全盛期。イギリス海軍は世界の主要海路を支配し、海では絶対的な地位を誇る。ヨーロッパ各国にパクス・ブリタニカとよばれる時代の豊かさが広がり、今までにない科学技術の研究と実用化が始まり、やがて第二次産業革命に発展。同時期に芸術も花開き、特にフランスではベルエポックと呼ばれる新たな文化的パラダイムやスタイルが芽吹き、モネなどの印象派運動を含むアバンギャルドな動きが成熟し、世に認められたのも、このころ。
そして激変のこの時代を背景に展開するゲームAnother Sightは、ストーリー性の強いアドベンチャーゲームです。イタリアのビデオゲーム業界のベテランが集い設立されたLunar Great Wall Studiosの、初めての作品です。
主人公となるのは堂々とした雰囲気が新鮮なティーンエイジャーのKitと、謎の多い赤毛の猫Hodgeで、少女は建設中のロンドン地下鉄を冒険中にトンネルの崩壊で視力を失い、暗闇の中で猫に出会います。シュールなファンタジーワールドを探索するKitとHodgeは、行動を共にすることも、別々になることもあり、ニール・ゲイマンの都市ファンタジー『ネバーウェア』にインスピレーションを受けた世界で、巨匠クロード・モネやジュール・ヴェルヌなどの芸術家に遭遇します。
私は最初にAnother Sightの元となるコンセプトの説明を聞いたときから、とても興奮しました。ゲームの背景となる時代を心から愛していた私は、歴史的な出来事と魔法やSFの要素を持つキャラクターの組み合わせに個人的に魅了されたのです。また、KitとHodgeを交互に使って冒険が前に進むという前提のゲームプレイが気に入り、印象派フィルターなるものを適用して独特の美しいビジュアルを表現するという考え方にも惹かれました。
そして忘れてはならない、一番気に入った理由は、すべてを変える1つのディテールでした。Kitは目を覚まし、何も見えないことに気付き、謎のエコーロケーション(反響定位)能力のようなもを使い、周囲の環境を理解するようになるのです。
Another Sightのサウンドスケープの目的
すぐに私はこのプロジェクトにのめり込んでいくのですが、Lunar Great Wall Studiosが目指す品質からして、決して楽なプロジェクトではありませんでした。
プロジェクトの開始にあたり、まず芸術面でも技術面でも何が求められているのかを書き並べてみて、そこから、どのような問題があるのかを予想しようと思い、全体的な計画を細かく立ててみました。
- Another Sightは何よりもまず、成長と発展を表現し、主人公たちへの共感を育みながら、KitやHodgeが見つけ出す不思議な世界への感動を引き出す、近代的なおとぎ話です。
- これを達成するには、従来の描写型サウンドデザインの一部や、うまく演じられた音声や、感動的な音楽が求められました。
- Kitは、なぜか全盲になり、エコーロケーションを利用して自分を取り巻く世界をみます。
- エコーロケーションとは、近くにある物体から反射される音波、つまりエコー(反響)を感じ取り、周囲の環境を把握する能力で、一部の動物の特徴です。例えばコウモリは11 KHzから200 KHz以上の超音波シグナルを喉頭から発し(信号の種類はコウモリの種類による)、次に目的に合わせて進化した聴覚システムでそれを処理することで、自分のおかれた環境を明確に「見」て、完全な暗闇の中でもエサを捕獲します。
- エコーロケーションは、適切な訓練を受けた人間にも使えます。視覚健常者は、目を使って周囲の物体の情報を察知しています。そうすると、物体から発せられる(または反射される)音に関係するエコーは、その人にとって通常は余剰の情報となり、音響心理学の先行音効果(またはハース効果)とよばれる現象が起きます。
- 先行音効果は基本的に、最初に耳に届く音(音の波面)の方向を音源の位置ととらえ、たとえ少し遅れてほかの複数の方向から反響音が届いても、方向が同じに聞こえる現象です。
- 音源の位置の受け取り方は、次にくる波面との時間差や、音源を表す信号の種類や、反響の強度によって変わってきます。
- 正しく訓練された人は、周囲で発生する自然のエコーを使ったり、口でクリック音を出してあえてエコーをトリガーしたりして、環境の詳細を感じ取ることができることが分かっています。エコーロケーションのエキスパートとなった盲目の人の中には、脳の一次視覚野が活性化し、ある意味、音や残響を「見る」ことができるようになった人もいます。
- 私たちはこれを考慮し、Kitの視界は、真っ暗闇なのに近くの音源と合わせて小さな閃光が見える、という概念を形成していきました。Kit自身が口でクリック音を出しながらエコーをトリガーできないとしても、猫の鳴き声は環境の中で響くので、Kitは周りの世界をより上手く把握できます。
- 視界がHodgeとKitの間で切り替わるときの影響は大きく、少女の場面では別の次元に移ってゆく感覚を盛り上げたいと思いました。そんな私にとってインスピレーションとなったのは、ゲームでいうとLimboやInsideなど、ほかと切り離されたようなサウンドスケープ、そしてドラマではStranger Things(ストレンジャー・シングス 未知の世界)の裏側の世界などでした。
- Kitの世界観をバランスよくしなければならない理由は2つあり、ゲームプレイ中にはっきりと判別できる物体や音源が必要なのと同時に、まるで別世界にいるようなマジックを届けられる没入感のアンビエントサウンドも必要でした。
- さらに、Kitの視点に重ねる印象派フィルターの細かい筆の動きを真似て、アンビエント音を粒子的な表現としてデザインし、この流派の絵画の特徴を反映させようと思いました。
- 実装の観点から言うと、私は、タイトなスケジュールを守りつつプログラマーの負荷を軽減できるような強力なツールを求めました。
• Another SightはUE4を使い開発したので、開発プロセスを速めるためにエンジンのインテグレーションが組み込まれていることは必須でした。
•オーディオソースに合わせて音や光を生成し、オーディオのコールバックやマーカーやリアルタイムのシグナルプロセシングを使いこなせるように、オーディオデータを自分で深層までコントロールする必要がありました。
• インタラクティブな物、例えばドア、レバー、スイッチ、発電機などは、それぞれ複雑な動きが必要で、物理的な刺激に反応します。私は、プログラマー達がもっと困難な仕事に集中できるように、そして自分の求める結果が得られるように、自分でオーディオ動作を開発しましたが、数種類のイベントに対応でき、ゲームオブジェクトのプロファイリング機能が優秀なツールを、強く望んでいました。
•このゲームは、Xbox One、PS4、Switch、PC向けに、短期間にデバグ、プロファイリング、そして最適化を行う必要があり、複数の言語にローカリゼーションしなければなりませんでした。マルチプラットフォーム対応が簡単にできることが、必須の条件でした。
以上のことから、Another SightのオーディオにはWwiseが一番の選択だと考えました。アセットの作成(音楽以外)のすべてと、ミドルウェアやブループリントのスクリプティングを通した実装は、私の責任範囲でした。また、オーディオプログラマーのディエゴ・ロドリゲス(Diego Rodriguez)に、巨大なWwise SDKのどこを見ればいいのかを助言したり、私が何を求めているのかを伝え、彼はAKファンクションをUE4エンジンの独自バージョンにC++でインプリするという高度な作業や、オーディオをゲームのコアロジックに統合することなどを担当しました。
音の可視化
Another Sightのオーディオ開発で一番興味深かったのは、オーディオのデータをリアルタイムで取得し、音のエンベロープに基づいてダイナミックに音を管理し、Kit独自の「エコーロケーション視覚」なるものに合わせて、分かりやすく光を生成する部分だったかもしれません。
達成するためにまず、AkDeviceの中の隠れたファンクション“getRTPC”をUnrealに公開し、register\unregisterをAkCallbacksに対して行いました。
次に、私たちのニーズに有利になるように、私たちのAudio ClassesにWwiseを取り込むことにしました。例えば:
- 私たちが作成したオーディオマネージャから、ちょうど良いタイミングでオーディオ機能にアクセスできるようにしました(例えば、あるサウンドの関連アクターが初期化されたり、各種SoundBankが正しくロードできたりしたときに、サウンドを再生できるようにしたり、信頼できるデータがそろった場合に限りRTPCを設定したり)。
- このオーディオマネージャがアンビエントサウンドのトリガーや、オーディオステートの管理なども行います。そして、ほかのゲームマネージャとシンクして動作します。
- 移動できるダイナミックリスナーを設定することに決め、Unreal/Wwiseの標準リスナー(カメラポジションにあるもの)と、コントロールするポーンの間で、ポジションを補完しました。
- カスタム化されたanim notifyをいくつか開発し、例えばKitのボイスのエフェクトを含むスイッチを動かすために必要な操作量のレベルなど、追加の情報を取り込めるようにしました。
- 一旦設定してしまえば、この基本的な要素いくつかと、オーディオプログラマーによる基礎的な部分の工夫のおかげで、インタラクティブオブジェクトやオーディオに刺激されて動くグラフィックオブジェクトのために私が作成したカスタムコンポーネントの複雑なオーディオの動きを管理できるように、ほとんど一人ですべてをブループリント化できました。
例えば、以下のファンクションはWwiseで生成したRTPC値から取ったいくつかの値でティックタイムを出すものです。
ボリュームを0に設定したAux busにWwiseのMeterというエフェクトを適用してRTPCを生成し、ミックスに影響を与えず、RPTC値をアウトプットするためだけに使いました。場合によってメータリングの前にフィルターを追加し、周波数に依存するRTPCを取得しました。
こうすることで、私たちのサウンドバブルの光のいくつかのパラメータを、オーディオによって、リアルタイムでモジュレーションすることが可能になりました。これだけにとどまらず、私たちはゲームパラメータを(ゲーム内で、またはcall-in-editorファンクションを用いて)使い、例えばparametric eqのカットオフ周波数を変化させ、信号のフィルターや、その結果生成されるアウトプットRTPCを、ダイナミックに調整しました。
こちらは、サンプルメッシュに対する簡単なテストの動画です:
サウンドの単純な再生や停止と光の同期に関しては、ほかに方法がなければ、Wwiseコールバックにバインドさせ、サウンドがいつ終わったのかを把握するようにしました。
ステートや、その他のモジュレーション
私は各種StateやRTPCを大いに頼りにして、様々なゲームの状況に合わせオーディオを管理し、KitとHodgeのどちらでプレイしているかによって、またはほかのケースでも、ゲームプレイの条件によって異なるサウンドスケープを提供しています。
例えば以下は、私たちのプロジェクト初期の段階の、Environmentモジュレーションの状態を示すスナップショットです(まだ数個の値を変更しただけの頃のものなので、どのようなバリエーションが可能か、分かりやすいと思います)。
また、遅いRPMの「リズムマシン」をシミュレーションするときに、Wwiseは非常に役立ちました。
例えば、ファーストレベルの最後に出てくるエンジン駆動の蒸気船を、複数のレイヤを使って実現しましたが、最初はエンジンスピードによってループをいくつかピッチシフトする、という伝統的なアプローチを使い、次に同じスピードのファンクションを常に用いたサンプルの「トリガーレート」で変化させる別のレイヤも追加し、蒸気船のサイクルを適格にシミュレーションできました。
Trigger Rateのモジュレーションは、もちろん一部のケースでしか採用できませんが、例えばクリッキングするメカニズムや、転がる鎖など、機械的な動きに便利だと感じました。
音楽
私はパッド音や雰囲気音のデザインにグラニュラーでコンクレートなアプローチで挑み、サウンドエフェクトを楽器として使いましたが、音楽面でLunarはJingle Bell Productionsと、Another Sightのサウンドトラックコンポーザーのステファノ・チゾット(Stefano Cisotto)とコラボレーションし、おとぎ話やストーリー性といった伝統的な感覚を達成するために、オーケストラ音楽のアプローチをとっています。サレルノ市のClaudio Abbado Orchestraでレコーディングを行い、追加の楽器レコーディングはゲーム開発中に行われました。
ビジュアル面とスタイルの一貫性を保つために(カットシーンは2Dの印象画風だったので、特に)、よりトラディショナルなサウンドトラックという選択が当然でした。ステファノはその時代に最も活躍したコンポーザーであるクロード・ドビュッシーやエリック・サティなどを参考にして、実際に、ドリーミーでややエキゾチックなメインテーマをつくり出し、これを後々、いくつかの方式にアレンジしました。
ゲームのサウンドスケープは2人で協力して開発し、オーケストラのコンポーネント以外に、彼は電子音も、ゲームのSF色が強くなるときや、よりモダンな音を投入する必要があるときに、採用しています。また、Wwiseの標準ミュージックツールを使いダイナミックミュージックも開発しましたが、正直なところ、全体で言うとほんの一部にしかあたらず、なぜならステファノが作曲したピースはどれも、その正当なつくりのまま、ストーリーを引き立てるのに十分なパワーがあったからです。
最適化の作業
忘れてはならないのは、コンソールのパフォーマンスを適切に保つためにWwiseのコンバージョンやプロファイリングの機能を多用したことで、特に必要メモリ量や、ボイス管理や、ゲームオブジェクトのプロファイリングなどの機能が充実していました。
Wwiseのコンバージョンツールでオーディオアセットの品質を簡単にプレビュー表示できるので、メモリの最適化とオーディオ品質のバランスが取りやすく、特にXbox OneやSwitch向けには本当に開発しやすかったです。サウンドバンクの適切なリファクタリングやコンバージョンを行うことで、CPUやオーディオ品質にあまり影響を与えず短期間に、メモリ使用を1/10に抑えることができました。
コメント