『Alan Wake 2』におけるマインドの内側(連載)
「『Alan Wake 2』におけるマインドの内側」では、このゲームのオーディオエクスペリエンスを形成したクリエイティブな過程と技術的なプロセスを深堀りします。『Alan Wake 2』のサウンドスケープの裏にある決断、課題、そして革新に迫る連載です。ゲームの世界観に息を吹き込んだオーディオチームのマインドの内側を覗き、動的なダイアログや没入感あふれるエコーのつくり方、オーディオQAの重要性、そして本ゲーム独自のプロファイリングシステムを紹介します。
第1回目は『Alan Wake 2』のダイアログ実装の詳細をシニア・ダイアログ・デザイナーのアーサー・ティセロンとタネリ・スオランタが解説し、話し言葉とナレーションを組み合わせたダイアログの相互関係や、「現実」が常に変化する環境の中で明瞭さを保つためのオーディオデザインを説明します。
はじめに:ダイアログの区分け
『Alan Wake 2』のダイアログ実装では、特殊な問題がいくつが発生しました。2人のプレイアブルキャラクター(サガ・アンダーソンとアラン・ウェイク)の言葉で語られる、作家と現実化してしまった彼の小説のゲームであり、常にナレーションと話し言葉が交錯しますが、現実世界のルールにとらわれないダイアログがストーリーの文脈に従いながらも、プレイヤーの興味を引きヒントとなるような実装を目指し、私たちはかなり自由に工夫することができました。
Wwiseの構造
ダイアログはRemedy社のNorthlightエンジンを使用して統合しているため、外部ソースファイルを使うことができ、Wwise自体にはゲーム内ダイアログのファイルが入っていません。ダイアログをどのカテゴリの空間化バスやエフェクトバスに送るのかを、Wwiseで1行ずつ詳細に制御することができ、同時にファイル自体は別の場所で適宜管理します。ダイアログの各行を独自ツールでWwiseのサウンドイベント(私たちが「ダイアログタイプ」と呼ぶイベント)に割り当て、ゲーム中に台詞をどのように空間化するのかを、これらのイベントで定義します。ほぼすべてのダイアログに減衰やオブストラクションなどのゲーム条件のルールを包括的に適用することができる一方、特殊ケースの場合の設定(特定の台詞に限りオクルージョンをバイパスさせる、など)は、新たなサウンドイベントとして追加することができます。これにより、バス構造も全体的にシンプルになりました。
このように外部ソースを使用することで、Wwiseプロジェクトは軽く、且つすばやくロードできました。外部ソースフォルダには何万行にもおよぶ台詞があり、1言語あたり合計約27,000行になりましたが、これらはWwiseを開く時にロードする必要がありません。
ただしシネマティックスだけは例外です。本ゲームのシネマティックスはすべてオフラインで処理されており、1つのシネマティックスに対してWwiseイベントを1つ設定して再生し、7.1フォーマットのダイアログを7.1.4出力バスにルーティングしています。これはシネマティックスの映像と音を厳密に同期させ、最高のミキシング品質を確保するためであり、またそのような瞬間の楽しい処理やSFXの相互作用をオフラインで実行するためです。
外部ソースを利用しているため、Wwise自体の中でダイアログアセットをミックスすることはできませんでした。制作中、Wwiseに通す前にアセットが仕様通りにミキシングされていることが大前提となりました。ゲームの最終ミックスの作業時間が限られていたため、レコーディングセッション後の、仕様通りのミックス済みアセットが必須でした。この意味では実装プロセスの最中にミキシングを反復的に行ったため、Wwiseを用いたダイアログの最終ミキシングは、ダイアログタイプの包括的な調整以外は不要でした。
実際のところ、ナレーションとは?
ダイアログタイプの使用方法について、はじめにダイアログの「ナレーション」と「話し言葉」の区分けを説明します。私たちは以下のように分けました:
- 話し言葉:キャラクターが声を出し、口を物理的に動かしながら話している時。
- ナレーション:キャラクターが自分の考えを表現している時や、進行中のストーリーをナレーションしている時。
ダイアログのカテゴリはこれ以外にもありましたが、ゲームの意味が通じるために最も肝心なものがこの2種類です。
ゲーム内の誰が話しているのか、そしてその人は実際に声に出して話しているのか、プレイヤーが常に正確に把握できるよう、この区分けをできる限り徹底させました。さらに1つのシーンで複数のナレーターが登場することもあり、例えば以下の短い動画では、実際に口に出した言葉とは別にアランが「闇の世界」からナレーションをしており、ゲームの同じ場所にいるサガは自分の思いをナレーションしています:
以下の順に聞こえるはずです:
- サガが声を出して話します
- サガが自分の考えをナレーションします
- 「闇の世界」にいるアランがストーリーをナレーションします
- 再びサガが自分の考えをナレーションします
区分けの必要性がこのクリップで少しわかると思います。
声に出して話すダイアログは常にプレイヤーキャラクターの頭に配置され、Game-definedのリバーブのセンドが有効になっています。これだけでも2つのタイプの区別がよくできます。エフェクトをさらに強めるため、話し言葉をWwiseのステアリングパナーの前方に押し出しました。
これ以外にも、ダイアログをWwiseに送る前のマスター方法を話し言葉とナレーションで変えています。アランの声を担当するMatthew Porrettaの声は、110hzあたりですばらしい響きをするノードを有しています。ナレーション用のダイアログではこれをマルチバンドコンプレッションとEQの微調整でさらに強調させている一方、話し言葉のダイアログでは抑えています。サガの2種類のダイアログにおいても、同様の処理をしています。サガとアランのナレーションはオンライン処理も少し施しており、シンプルなWwiseステレオディレイを非常に低いボリュームでかけています。
このような些細な処置の積み重ねを通し、世界に向けて語られるダイアログと、ナレーションとしてのダイアログを明確に分けていますが、これだけではありません。
息づかい
私たちはダイアログのほかに、プレイアブルキャラクターごとの息づかいを表す呼吸システムをつくり、キャラクターたちをゲーム内の世界に結びつけました。ゲーム中、サガもアランも本物の人間と同じく常に呼吸しており、状況に応じて呼吸のペースや調子も変わります。これにはWwiseのオートダッキングとゲームステートを活用しており、「ナレーション」と「話し言葉」を差別化しています。話し言葉のダイアログ中はキャラクターの呼吸ループを止め、話し終わった後は短いディレイを挟み、呼吸を再開させています。一方、ナレーションのダイアログはそうではありません。微妙な違いですが、キャラクターが声に出して話をしているのかどうかを、プレイヤーが直感的に判断するヒントになります。
この呼吸システムはMusic Hierarchy内にあり、1つの呼吸が1つのミュージッククリップになっています。主要ステートはリラックス(relaxed)、危険(danger)、取り込み中(engaged)の3つであり、それぞれ静止(stop)、歩く(walk)、走る(run)のバージョンがあり、さらにプレイヤーが弱っている時の負傷(wounded)ステートがあります。
Wwiseのインタラクティブミュージックのトランジションシステムを使うことにより、ステート間の遷移がシームレスに行われ、プレイヤーキャラクターがしばらく走った後や動きの激しさが強から弱に移行する時はクールダウンがあり、人間が体を動かした後に息を整える必要のある状況を模倣しています。
このクールダウンとは呼吸の各タイプに所属する特別な息づかいのセットであり、キャラクターが動きを弱めているように聞こえ、長さや順番は以下のように手作業で設定しました:
アランはサガよりも息が切れるのがはやく息づかいも荒く、やはり特訓を受けたFBI捜査官と比べると、どうしても体力が劣っています。息づかいの変化はすべてプレイヤーキャラクターの心拍数と連動しており、走ったり攻撃を受けたりするアクションで心拍数は上がり、穏やかな場所で下がます。心拍数が高くなると息づかいもはやくなります。このシステムを支える呼吸のアセットはキャラクター1人につき1,000個強あり、バリエーションを確保するためにイン・アウトや開口・閉口などのアセットを幅広く揃えています。
この呼吸ループにプレイヤーの足音からくるサイドチェインも加えました。足を踏み下ろすたびにプレイヤーの呼吸音がすばやくダッキングされますが、最も大きく影響するのはジョギングやランニングの動きです。人が足を重くおろした時に、肺から空気をより多く吐き出す様子を表現するための工夫です。厳密には正反対のエフェクトですが(実際は足をおろした時により多くの空気を吐き出します)、この方が呼吸におよぼすリズムが似ており、逆に足をおろした時にボリュームを上げて試してみたところ、その効果はあまりよくありませんでした。走るプレイヤーの呼吸のボイスボリュームは、以下のグラフのようになります:
ミックス全体の中で、息づかいはかろうじて聞こえる程度です。静かな場所における緊張の瞬間以外では、呼吸を聞くのではなく感じるようにしたかったのです。以下の動画はゲーム中の呼吸のボリュームを極端に上げており、再生される様子を聞き取ることができ、体系的な選択を積み上げた結果が分かります。
こうしてプレイヤーキャラクターと彼らが住む世界の繋がりに配慮することで、キャラクターとプレイヤーの絆が強化され、キャラクター周りでストーリーが展開されてゆくにつれ、プレイヤー自身にも影響が出ると思います。
敵の動きもゲームの展開にそれなりに作用するようにしたいと考えました。
ダイアログをアンビエンスとしてとらえる – フェードアウトと「闇の世界」
ゲーム中のアランの部分において、プレイヤーはアラン自身の作品からつくり出された超現実的な悪夢の次元である「闇の世界」を歩き回ります。ここで彼を脅かすのは自分の反響音であり、視界の隅に見える影です。フェードアウトたちが常にひそひそ声で彼の声をやまびこのように繰り返し、それは徐々に攻撃的な声となり、やがて叫び出します。
「闇の世界」の環境を制作する上で、長時間経ってもささやき声が耳障りにならないように実装することが、最も難しい課題の1つでした。あるエリアに何十ものフェードアウトが存在することもあり、常時ささやき声が押し寄せてくることを避けなければなりません。テンションが完全に失われてしまうからです。またプレイヤーと影がかち合うまで、影がどこにいるのかを確信できないようにしたかったため、ささやき声は大きくなり過ぎないようにしました。ささやき声を駆動するシステムにおいて、声のペースを調整しなければなりませんでしたが、それ以外にも「闇の世界」のどこに出現するのか、屋外なのか屋内なのか、何人なのかも分からず難しかったです。可聴範囲の減衰が、どの状況においても必ず作用する保障などありませんでした。
そこでプレイヤーが室内にいるのかどうか(室内性)に連動させたブレンドコンテナに、ささやき声を入れることにしました。屋外の減衰は屋内の減衰よりも10メートルほど広くなっています。これにより「闇の世界」全体で私たちが注意深く微調整した体系的なペースを、スクリプトを複雑化することなく維持できました。
モンスターとボスたち
敵のダイアログ実装の中で、ボス戦が最も困難でした。多くの場合、ボスはテレポートしたり完全に画面外に出たり、その他の方法でプレイヤーのいる次元から離れることがありますが、戦闘中はその存在感と脅威が常に必要です。シンシアを例に解説します:
このファイトの第1フェーズではシンシアがほとんど水面下に潜んだままで、プレイヤーにまったく見えません。姿が見えなくても周囲にいるのは確かで、プレイヤーが間違いを犯した瞬間に捕まえようと待ち構えていることを、プレイヤーに伝える必要がありました。このファイト中、シンシアはエンジン側では完全に隠され停止しているため、シンシアのダイアログを彼女のゲーム内位置に紐づけることはできませんでした。さらに彼女が自分の水中の悪夢に引き込んだトールも、ファイト中に常にプレイヤーに向かって叫んでいます。ごちゃごちゃしているのです。
これらを表現するために使用したのが、Wwiseの空間化オプションのListener with Automation設定と、カスタマイズした面白いコンボリューションのImpulse Response(「闇の世界」の標準AUXセンドに使用したものと同じ)の組み合わせで、水中にいるシンシアがプレイヤーに話し続けているように聞こえます。プレイヤーがシンシアに追いかけられていない時、シンシアのダイアログはループし、リスナー周りをランダムに浮遊して回り、プレイヤーは取り囲まれているような気になります。Wwiseの空間化タイプSteeringを利用し、彼女を常に強制的にプレイヤーの少し下にいる感じにしています。
シンシアがプレイヤーを追いかけはじめると、プレイヤーはどこから逃げればよいのかを正確に知る必要があるため、その時点でゲームの世界における彼女の物理的な位置に結びつけ、通常の空間化に戻します。
トールは静的で中央にいて、アリーナ下に固定されていますが、シンシアと同じリバーブがかかっているため、プレイヤーは直観的に同じ次元にいることを感じます。
ほかのボスも画面外に行くことがよくあり、そのたびに同じような手法を用います。例えばゲームの最初のボス戦であるナイチンゲール戦では、ナイチンゲールが特別な攻撃の後に画面外にテレポートすることがあり、その後にプレイヤーの視界の外から突然現れ、再び攻撃します。彼が画面外の時はダイアログに似たような自動効果を適用し、この状況を表現します。
オーディオ駆動型のビジュアル
ダイアログでゲームのほかの重要場面の映像も駆動します。例えば「闇の世界」に散乱しているほかの世界からきた幽霊の映像や、ゲームの所々で見つかる特定の種類の原稿ページなどです。このダイアログを以下のようにWwiseのカスタムプラグインであるQAnalyzerを使いFXセンドに送り、バスの出力RMSデータをランタイムにエンジンに送ります:
VFXチームはこれらの値を使い、プレイヤーがゲーム内で遭遇する、消えてしまいそうなオーディオ反応型のビジュアルをつくり出しました。現在のシーンをナレーションしているのが誰かを判断する材料にもなります。
エコーシーンのダイアログは独自のダイアログタイプであり、エコーが物理的に存在している場所に合わせて空間化されますが、聞こえてくる音がプレイヤーの世界のものでないことを示すため、追加のリバーブがかかっています。
減衰、オクルージョン、エッジケース
おもしろくて独特な方法で音を空間化させる努力も、オクルージョン、オブストラクション、伝搬が適切かつ細かく計算されていなければ無駄になります。これがないと話されたダイアログの位置が必ずと言ってよいほど環境の中で不自然に感じられてしまい、ダイアログ再生中にプレイヤーが動き回るとなおさらです。
オブストラクションとオクルージョンの計算のカスタムソリューションを開発したのが、オーディオプログラマーのIiro RossellとSamuel Andresenです。いくつもの音響プローブ、つまり直線トレースでエミッターとリスナーを繋げることのできるゲーム内のポイントが、ランタイムにゲームワールド内にランダムに配置されます。
これらに加え、ドアや屋内のジオメトリが密集した場所などの重要なエリアにプローブを手作業で配置し、以下の条件に基づいてオブストラクションやオクルージョンのデータを計算します:
- リスナーから最も近いプローブまでの距離
- サウンドがエミッターからプレイヤーに到達するまでに経由するプローブの数
- プローブの経路が固体のジオメトリによって遮られているかどうか、そしてその素材が音響的に透明であるかどうか
サウンドにオクルージョンを適用する場合、このシステムがエミッターの位置を最も近いプレイヤー視界内のプローブの場所に物理的に動かします。つまり音が固体オブジェクトの中を通過せず、周りをまわって伝わる様子を再現します。
このデータを使い、オブストラクションやオクルージョンのカーブをダイアログタイプのレベルで定義しました。いくつかの可聴距離に合わせて減衰の標準セットを設定し、ゲームのほとんどの場所でこれを使用しましたが、オクルージョンやオブストラクションを一切適用しないダイアログや、具体的なオンライン処理が必要なダイアログなど、特別なケース用にオーバーライドをいくつか用意しました。
コーン減衰はキャラクターが頭を動かした時に聞き取りにくく、ポジショニングが一貫していない印象がするため、使わずにダイアログのスプレッドを最小限にしました。
演技力について一言
最後に、この記事ではゲーム内のダイアログの効果を向上させる面白い工夫や技術的な詳細を中心に説明しましたが、これらの努力の成果も、アラン・ウェイク役のMatthew Porrettaやサガ・アンダーソン役のMelanie Liburd、その他の重要キャラクターやボスキャラクターの声優たち、「闇に支配された者」を務めてくれた21人の敵NPC役のすばらしい声優たちなど、みんなの絶妙な演技なくしては意味がありません。私たちがどれほど心を込めて制作し、楽しい空間化を適用したとしても、声優たちが自分のキャラクターに個人的に加えた「ひねり」なくしては、今回のダイアログに見られる美しさは出現しなかったでしょう。「闇に支配された者」の台詞はウェイクの原稿のページから直接出たものであり、Sam LakeやClay Murphyの執筆もゲーム実装の基盤となる重要な要素です。どれほど洗練された技術も、最高の台詞のすばらしい演出の代わりにはならず、演技の輝きにさらなる磨きをかけているだけです。
まとめ
『Alan Wake 2』は現実を打ち破るワイルドな展開と、それを支えるユニークなダイアログ要件に満ちたゲームであり、Wwiseの柔軟なシステムにより、私たちは必要な時に必要なことを自由に行うことができました。実装の大部分はさほど複雑なものではありませんが、プレイヤーが重荷に感じたり、文脈において奇妙にならないよう、ゲームのほかのすべての部分と照らし合わせながら、注意深く調整して検討しました。Wwiseの機能なくして、ここまで手の込んだ手作業による実装はできませんでした。
コメント