『Tell Me Why』のオーディオ日記パート4 ミキシングとマスタリング

ゲームオーディオ / サウンドデザイン

『Tell me Why』はXboxとPCでリリースされ、5.1サラウンドに完全対応しています。ストーリー性のあるゲームには、 ファイナルミックスの段階で特別な配慮が必要です。シネマティックな瞬間や、ストーリーのひとコマが、それぞれユニークなので、プレイヤーに特定の気持ちを伝えるには、体系的なアプローチだけを頼りにするわけにはいきません。プレイヤーが安心して、余計なことを気にしなくてもいいように、常にオーディオを調整する必要がありました。 

ミキシングのワークフロー 

ミキシングのアプローチは、映画のリニアなミキシングに似ているところがあります。できるだけ細かいところも表現できるように、掘り下げてミキシングしていきました。

先に進む前に、これから説明する点をすべて包括しているゲームシーケンスを、1つ紹介します。

シネマティックワークフローの流れ 

ミキシングに関する決断は、できるだけ自由に行いたいと私たちは考えました。そこで「ステム」を単位とした、以下のようなワークフローで進めました。 

ステム名 チャンネル ポジショニングタイプ リバーブタイプ Center %
ダイアログ 3.0 Listener Relative ランタイム 75
フォーリー 3.0 Listener Relative ランタイム 75
SFX 5.1 Balanced Fade ベイク + ランタイム 0
フットステップ 3.0 Listener Relative ランタイム 75
アンビエンスベッド 4.0 Balanced Fade ベイク 0

このワークフローのおかげで非常に柔軟に対応でき、ボリュームレベルやEQやリバーブをステムごとにエンジンで調整したので、ReaperとUnrealを行ったり来たりする手間を減らせました。

フットステップのシネマティックの管理 

シネマティックのフットステップは、Unrealのアニメーションシーケンスから直接、管理しました。カスタムツールを活用し、足骨が地面に着くときにUE Notifiesを生成させました。

このノティフィケーションが地形のマテリアルを追い、適切なフットステップ用のスイッチマテリアルをトリガーします。おかげでReaperでフットステップを手作業でシンクさせる必要はありませんでした。正しいジェスチャースイッチを設定すれば、あとは検知したコリジョン数が多くなりすぎないように、不要なノティフィケーションを落とせばいいのです。

UEシーケンサーのRTPCトラック 

先ほどの動画の例では、アリソンの緊張感が高まるにつれ、時計の音が大きくなるのが分かります。このような状況では、どのバスのレベルであれ、シーケンサーに直接送ることができる機能を使いました。

Unrealのカーブを使い、シネマティック内で、正確な自動化を設定できます。WwiseのRTPCはdBの絶対値で設定されるので、妙なdB変換の心配はありません。この機能をアンビエンスとミュージックのバスで多用し、会話の存在感を強めたり、前述のテンションをつくり出したりしました。

sequencer

sequencer2

ダイアログの一貫性を維持。 

何種類ものダイアログに、どう対応?

ダイアログは『Tell Me Why』の中核をなし、その中でプレイヤーは貴重かつ必須の情報を数多く入手します。

ゲームに組み込まれたダイアログは、4種類あります:  

Cinematics: カットシーン中に再生されるダイアログ。プレイヤーは自分の動きやカメラを制御できません。

Inspector: プレイヤーは自由に動けません。カメラを制御し、内部のオブジェクトとやり取りできますが、ゲームワールドの中を再び自由に動き回るには、Inspectorを出る必要があります。

Exploration: プレイヤーが自分の動きやカメラの動きを、完全に制御できます。

Bond:  タイラーやアリソンの記憶に関連するダイアログです。

この4種類のダイアログのために、エンジン内でいくつかのインテグレーションシステムが必要でした。そして、すべてのダイアログサウンドがゲーム中に等しく聞こえるように、Wwiseの設定を検討しました。

ダイアログタイプ チャンネル リスナーポジション Center % 距離に伴うランタイムフィルタ
Cinematics 3.0 Balanced - Fade 75 High Shelve EQ
Inspectors 3.0 Balanced - Fade 75 該当なし
Exploration 5.0 Listener Relative 75 High Shelve EQ
Bond 4.0 Listener Relative 0 LPF

CinematicsとInspector 

『Tell Me Why』には、ゲームプレイとシネマティックの間のシームレスな遷移が多数あります。2つのタイプのゲームモード間であまり差が出ないように、2Dと3Dの妥協点を見出す必要がありました。

そこで、対象となるオーディオのフロントパンニングを修正するために、組み込みのAzimuth(方位)パラメータに基づいて変化するような、Balanced-Fadeの空間配置を使いました。これで、ゲーム内の大部分のケースを網羅できました。

CinematicsAndInspector

なお、特定のカメラショットではフレームサイズによく合うように、パンニングの最小値・最大値の微調整が必要となることもありました。

微調整したパンニング値の例が、動画の1分12秒あたりで聞けます。警官のセリフがどんどん加工されるにつれ、そのボイスに、ランタイムにハードパンのエフェクトを適用しました。

Exploration

Explorationダイアログはすべて、IAもPlayerも3Dに設定しました。プレイヤーは、IAやNPCを、周辺の場所から正確かつリアルに感じ取ることができます。また、これを達成するためのチャンネルコンフィギュレーションは、5.1に設定しました。

距離に基づいたフィルターに関して、距離に応じた高周波の減衰には、パラメトリックEQをHigh Shelfの形で使いました。オクルージョンは、WwiseのLPFフィルタの傾斜がそのようなフィードバックにとても適しているので、ローパスフィルタだけを使いました。

 Exploration

一部の状況では、リスナーの後ろのNPCダイアログも処理することにしました。NPCがリスナーの後ろにいても、まだ近ければ、彼が画面に出ていなくても聞こえてきます。私たちの観点からは、ちょっと微妙で、しっくりきません。そこで、NPCのダイアログは、Azimuth RTPCで制御されるボリュームとリバーブ、センドレベルで処理することにしました。

Bond 

BondのダイアログをWwiseでリアルタイムに処理することで、5か国語対応ゆえのセリフの多さに対応しました。これだけ多くのファイルの、幅広いオーディオスペクトラムに問題なく対応できる処理が必要でした。

リアルタイム処理とした2つ目の理由は、Bondのダイアログが、ゲームで行動している最中に発生する可能性が高かったからです。Bondゲームプレイの仕組みが成立するためにセリフが聞き取れることが必要だったので、コードで指定された範囲の外にプレイヤー出たときに、リアルタイムでダイアログを変更する必要がありました。

 

The_Bond_RoomVerb

最終的に、軽いリバーブやディレイとなりました。ここでも、美しいLFOをドライレベルやウェットレベルに適用し、エフェクトのバリエーションを広げました。

TME_bond_Sterodelay

親密な場面で、プレイヤーを邪魔しないには? 

シネマティックス内で再生されるアンビエンスはゲームプレイ中のものと同じなので、シネマティックス中に、望まれないランダムなFXの再生が発生してしまうことがよくありました。誰もアリソンとタイラーの親密な時間に、カラスやチェーンソーの音を聞きたいとは思いません。このような動作を回避するために、コードでWwiseに、プレイヤーがシネマティックステートであるかどうかを定義するステートを送ります。そして、このステートをボリュームに対して使い、シネマティックス中の不要な音を除外します。

もう1つ、シネマティックス中のやっかいな問題は、ショット・リバースショット中の3Dサウンドやアンビエンスベッドのボリュームに一貫性がないことです。

この対処には、素晴らしいツールをいくつか使いました。

まず、シネマティックス中のリスナーポジションをフリーズできる、専用のシーケンサートラックがありました。これで、カメラが離れてもリスナーの位置と角度を維持できます。

PropegationFreezed

ただし、シネマティックスによっては、リスナーがいつも通りにカメラを追うことが求められることもあります。そのようなときは、前述のシネマティックステートを利用して、WwiseのSpeaker のパンニングレシオを変えるRTPCを駆動させます。この技で、シネマティックス内の、スペーシャリゼーションを適用するサウンドを選べます。 

RTPC

ロックダウンと、在宅状態でのミックスチェック 

コロナ禍は、もちろん『Tell Me Why』の開発に大きな影響を与え、3か月間、ミキシングルームではなく自宅環境で仕事をしました。最終的なミキシングセッションに備えるために、代替案を考えなければいけませんでした。

いつもならファイナルミックスは補正したスピーカーを75 dB SPLで使います。この値はプロスタジオには向いていますが、近所の人や同じマンションの住人にとって、75 dbSPLは大きすぎます。ヘッドフォンを使うのは、皆さんがご存知の通り、選択肢にはなりません。そこで、主にWwise Loudness Meterに頼るというリスクを取りました。

できるだけ頻繁に、4つのメインバスのラウンドネスを同時にモニタリングすることにしました。WwiseのLoudnessメーターで分析したいバスを選べるので、シーンが変わってもアンビエンスやダイアログの一貫性が保たれているかを確認するには、ぴったりの方法です。この迂回策は、フルタイムのレビューとミキシングの代わりになりませんが、ファイナルミックスに落ち着いて臨むための効率的な手段です。ロックダウンが終わる頃にファイナルミックスを仕上げるための役に立ちました。

Bus_VoiceAmbianceMusicCutscene
 

マスタリング 

ダイナミックレンジ 

『Tell me Why』は、オーディオのダイナミック性を管理するのに苦労したゲームでした。静かな環境が多く、声優の演技による微妙なバリエーションを保つために、ダイアログをあまり圧縮したくありませんでした。静かな環境、例えばルームトーンやエアーベッドは、大型のスタジオモニターで聞けば管理するのは難しくありません。ところが、スタジオで設定したモニター設定が、小さなテレビ画面にそぐわないことに、私たちは気付きました。

私たちは制作の初期段階に、プレイヤーの一般的なオーディオ設定にかかわらず、自分たちの意図を維持する方法を探ることにしました。メインバスのボリュームや圧縮の閾値を変えるのに、ステートに基づいた非常にシンプルなシステムを使いました。目標は、これらメインバスのレベルを変更するだけでなく、それぞれのダイナミック性を制御し、メインバス同士のバランスを変更することでした。 

このシステムのおかげで、例えば小さいスピーカーコンフィギュレーションだけで、アンビエンスのボリュームを上げることなどができました。プレイヤーはオプションメニューでスピーカーコンフィギュレーションを選択するだけでいいのです。

3種類のスピーカーコンフィギュレーションを提供しています:  

Low: テレビ内臓スピーカーに適しています。

Medium: テレビサウンドバーや、小型2.1キットなど、中型スピーカーに適しています。

High: 特にサラウンドセットアップなどの、大型スピーカーに適しています。

以下はダイナミックレンジのオプションに関連した、バスボリュームの違いを示す例です:  

  アンビエンスBus ミュージックBus フォーリーBus
Low + 6db + 2db + 2db
Medium + 3db + 1db + 1db
High なし なし なし

こちらはコンプレッサの閾値変更の例です:  

Bus_VoiceEffectEditor

さらにHeadphone Modeも提供し、デフォルトの パンニングルール に変更を加え、Bondに関連した一部サウンドのスペーシャリゼーションをより正確に、SpeakerPanning機能で表現します。 

ShowGameObjects

SurroundからStereoへのダウンミックス 

サラウンドとステレオのセットアップで私たちが感じとった違い、とくにリバーブやアンビエンスの差は、私たちがよく遭遇したもう一つの問題です。

ゲームでサラウンドを使うとき、没入感を深めようとして、バックチャンネルに信号を多く送る傾向があります。その副作用として、ハードウェアプラットフォームのダウンミックスルールを適用したときに、フロントスピーカーに送られる信号が多くなりすぎます。

Windows 10や、Xboxのプラットフォームでは、下図のように ITUのダウンミックス係数 の標準規格を適用します: 

SurroundToStereo

『Tell Me Why』ではこの推奨規格を排除して、リバーブやアンビエントのバスなどのダウンミックスによる影響が大きいバスに、カスタム設定の係数を適用しました。この機能のおかげで、ステレオダウンミックスについて心配する必要がなくなりました。

私たちは、Wwiseの GetSpeakerConfiguration 関数で、プラットフォームが2.0で実行されているのか、それとも5.1 / 7.1サラウンドなのかを、自動的に検知しました。ステートがこの情報を受け取り、私たちが修正したいプロパティを、駆動させます。これはランタイムに作動するシステムなので、プレイヤーが自分のハードウェアで行ったすべての変更が、活かされます。

システムをさらに洗練させるために、バスの個別のチャンネルに対応できるカスタムプラグインを開発しました。このプラグインを、処理したいバスにインサートして、ボリューム減衰を適用するだけです。以下の例では、リバーブバスのバックチャンネルに、12 dBの減衰が適用されています。

ChannelsGaindB 

以下のランタイムの測定値を見ると、サラウンド信号でセンターとバックの両チャンネルに過大に送られるようなワーストケースのシナリオで、ボリュームのオーバーロードを削減するのに、カスタム係数が役立っています。 

SurroundSignal

Louis_Circle_2

 

ルイス・マルタン(LOUIS MARTIN)
オーディオリード | Tell Me Why
DONTNOD

ビデオゲーム業界歴13年。DONTNODのオーディオリードとして『Remember Me』『Life is Strange』『Vampyr』、そして最近では『Tell Me Why』に携わる。前職Ubisoftでは、オーディオデザイナーとして『Ghost Recon Future Soldier』などのプロジェクトに関わる。

soundcloud.com/hellooomister

 

マテュー・フィオレンティーニ(MATHIEU FIORENTINI)

サウンドデザイナー Tell Me Why

DONTNOD

マテュー・フィオレンティーニ(MATHIEU FIORENTINI)

サウンドデザイナー Tell Me Why

DONTNOD

フランス人サウンドデザイナー。ビデオゲーム業界歴12年以上。最近のタイトルは『Tell Me Why』『 Watch Dogs Legion』『 Detroit Become Human』など。ISART Digitalで、WwiseとAbleton Liveを教える。

https://soundcloud.com/yakiemusic

コメント

Replyを残す

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

ほかの記事

『NieR:Automata』における空間音響表現と多様なゲーム性に対応するWwise制御 (Part 1)

18.6.2019 - 作者 PlatinumGames Inc.(プラチナゲームズ株式会社)

理想の仕事: ゲームオーディオにおける「倫理的な雇用」という考え方

3.9.2019 - 作者 ゴードン・マクグラデリー(Gordon McGladdery)

『Tell Me Why』のオーディオ日記パート3 サウンドデザイン

『Tell Me...

29.9.2021 - 作者 マテュー・フィオレンティーニ(MATHIEU FIORENTINI)

『Spacefolk City』の音楽

ゲームの紹介 『Spacefolk...

7.12.2022 - 作者 アレックス・メイ(Alex May)

「No」を言う方法

19.9.2023 - 作者 ゴードン・マクグラデリー

『Scars Above』におけるWwise Spatial Audioの実装ワークフロー

これは何についての記事?Spatial Audio APIとは?Spatial Audio APIのワークフロー Rooms and Portals アセットの整理と命名規則 ...

7.2.2024 - 作者 ミラン・アンティッチ