Sabotage Studioは「モダンなデザインのレトロな美しさ」をゲーム制作の哲学としており、ゲームオーディオの方針も同じ考え方です。スタジオメンバーの多くがNES・SNES・メガドライブ(Genesis)・N64の時代に育ち、ある意味そこから離れていません。Sabotage Studioを設立した一番の目的は、自分たちの子ども時代とぴったり同じゲームをつくることではなく、親の許可のもと週末に近所のレンタル屋さんから借りてきたゲームを兄弟と一緒に、床にあぐらをかいて着古したTシャツにくるまりながらプレイするという感覚をとらえたかったのです。ピクセルアートを最終目的としたのではなく、特定の制約をつくることで根本的な要素だけに研ぎ澄まされたエクスペリエンスを創作したかったのです。つまり名作に敬意を払いつつ、何十年にもおよぶゲームデザインの進化や現代のプレイヤーの期待値に応えようとしています。
『Sea of Stars』について
『Sea of Stars』はかつての名作にならったレトロの影響が強いターン制JRPGです。プレイヤーは2人の「至点の戦士」として協力しながらそれぞれの太陽と月の力を融合させ、邪悪なフレッシュマンサーが生み出す敵を撃退する唯一のパワー、蝕の魔法をつくり出します。
オーディオの方向性:音楽
音楽の観点において、私たちの最初のゲーム『The Messenger』のニーズは大変分かりやすかったです。まるで超高性能NESタイトルのような見た目と感覚を目指した、8bitから16bitのアクションプラットフォームです。私はレトロなゲーム機のオーディオ制限に倣った専用トラッカープログラムで、チップチューン音楽を制作してきた経験を活かし、NESやGenesisのハードウェアで実際に再生することのできる2パートから成る本格的なチップチューンサウンドトラックを作曲しました。
一方で『Sea of Stars』の世界はより詳細に設定されており、単純なチップチューンのサントラでは対応しきれませんでした。実は私は制作に入る数か月前(下手すると数年前)から研究開発に励み、「このサウンドだ」というものを見つけるためにさまざまな楽器や音で実験していました。
最終的に行き着いたのは私が「SNES++」と呼んでいるサウンドであり、ゲーム制作をすすめた5年間でかなり発展してゆきました。基本的な考えとして、各曲の主役は聞き覚えのあるSuper Nintendoサウンドで、このSNESっぽいサウンドに必ずと言ってよいほどモダンなサウンド、巧みなミキシング、加工、世界各地の打楽器などを重ねたり補助したりして、独特でありながらなじみのある感触をつくり出しています。
少し補足しますと、SNES音楽はサンプルベースですが、このゲーム機の特徴的なサウンドに至る要素はいくつかあります。音楽とSFXが共有するチャンネルが合計8チャンネル提供されており、これとは別に8チャンネルがリバーブ用にありますが、リバーブと言っても実際には単なるステレオ・ピンポンディレイです。ゲームカセットのメモリに音楽の個々のインストゥルメントサンプルが入っており、サンプルをシーケンサデータがトリガーを出し、音楽が再生されます。これはMIDIのしくみと似ていますが、MIDIの代わりに当時はこの用途のために専用のカスタムトラッカープログラムがつくられました。インストゥルメントサンプルは市場に出ていたシンセサイザー(ローランド、コルグなど)からきたもので、32kbというメモリ予算に収まるよう、1周期分の波形に短縮されました。伸びる音はハードウェアでサンプルをループさせたため、ループ中はやや「揺れ」のある音となりました。これに少しBRR(ビットレートリダクション)圧縮を適用すると、SNESサウンドのできあがりです。
『Sea of Stars』の音楽制作においては、レトロなハードウェアのサンプルを提供する既存ライブラリを使用したほか、前述の要領と似た方法で独自の楽器をつくることもありました。
『Sea of Stars』の中にはいくつかの島があり、島によって独特のバイオーム、立ち寄れる場所、文化などがあります。私はそれぞれの島を表す楽器について考えました。例えば、風が山の穴を吹き抜ける眠り竜の島ではパンフルート、暗闇に包まれて呪われたレイス島では弦楽器を選びました。
オーディオの方向性:SFX、UI、アンビエンス
レトロ感を維持するために肝心なのがサウンドデザインです。レトロのくくりから大幅に外れないよう、サウンドに関する意図的な決断が必要でした。磨きあげられたエフェクトではプレイヤーがレトロの雰囲気から引き離されてしまう恐れがある一方、何もかもビット数を圧縮してしまうと不快な音となり、アニメーションに対する配慮に欠けますし、ミュートしてしまうプレイヤーも出てきます。
シンプルにすることが鍵でしたが、魅力的で整理された状態にキープするためにWwiseが大きな役割を果たしました。本ゲームのサウンドエフェクトの多くは、分割して複数のレイヤーとしてブレンドコンテナの中に入れてあり、どのレイヤーも微妙にピッチやフィルターがランダム化されているため、絶対に同じ音が繰り返されないようになっています。これで耳の疲労を防ぐことができ、特にリピートするエフェクトに有効です。
各レベルにはビジュアルや環境に合った固有のアンビエンスベッドがあり、これが音楽やSFXを補完して環境をより活き活きとさせています。アンビエンスだけは忠実度の観点で妥協せず、主に高品質のフォーリー録音を使用しています。しかし非常に繊細な表現であるため、違和感なくゲーム体験を損なうことなく、臨場感あふれるサウンドを実現しています。
サウンドの潮流を実装
制作が本格化してプロジェクトの全体像、詳細レベル、予想される作業量などが見えてくると、タッグを組む相手が必要であることに気づき、友達のJakeに声をかけて週に数日手伝ってもらうことにしました。彼はゲームオーディオの初心者でしたが、『Sea of Stars』に取り掛かる前の私のように、時間と気合を入れてWwiseのドキュメントやサンプルプロジェクトを活用してWwiseを一から独学で学んでくれました。
音楽はゲーム設定によって変化するステートを使い管理します。設定は主にWwiseのサンプルプロジェクトを反映したもので、ゲーム内のアクションに対応するようにハードコードとして入っています。例えば、探検中のデフォルトのミュージックステートは「Explore」であり、戦闘中は「Combat」に切り替わり、台詞中心のカットシーンは「Dialog」、ボスファイトは「Boss」といった具合です。具体的なトランジションルールはプレイテストを何回も重ねて洗練させました。さまざまな理由で必要な量が増え続け、最終的に各タイプ10個近くとなりました。
ゲーム内には昼も夜もあり、自動に循環するのではなくプレイヤーがアンロックしてから自由に変えることができます。すべての屋外エリアに音楽の「昼」バージョンと「夜」バージョンがあり、互いに同期しています。ボリュームRTPCをゲーム内の時間にリンクさせて同期させており、実は昼夜どちらも常に並行して再生されているのですが、日中は「夜」をミュートし、夜間は「昼」をミュートしています。どちらの楽曲もコアのつくりは同じですが、夜間は鈴を多く使う、トーンを控え目にする、半テン(ハーフテンポ)とするなど、明確に異なる特徴も組み込まれています。
1つの島だけは例外で、ここでは戦闘中に同じ音楽を再生させたいと考えました。プログラマーのFroがカスタムスクリプトをUnityで開発し、出会い(encounter)ごとに設定を選べるよう、チェックボックスをチェックしてドロップダウンリストから音楽ステートを選択できるようにしてくれました。
"EncounterState"という追加のステートグループを使い、プレイヤーが戦闘中かどうかを追跡しています。戦闘中に切り替わらないミュージックトラックでは、EncounterStateがOnの時にフェードインするパーカッションまたはギターの追加レイヤーを設け、戦闘中のトラックの激しさを高めるようにしました。
こうした「Fro作の魔法」を使い、Unityシーン内にAudio Zoneを設定してさまざまな目的に利用しました:
- 洞窟の奥へとすすむ時、アンビエンスのトーンを変化させるため
- Unityのカットシーングラフで対応できない場合、その場で特定ポイントにおいて音楽の変化をトリガーさせるため
- 「屋内」と「屋外」のゾーンによってアンビエンスを調整する手段として、ボリュームやフィルターを変化させたり、一部要素をミュートさせたり、新たな要素を導入したりするため
- 同じレベルで「水面下」と「水の外」を差別化するため
SNES風サイドチェイン
今回のオーディオ面で最もおもしろかったのが、その存在自体に気づいてもらえないような、私が「SNESサイドチェイン」と呼んでいる自作機能です。
SNESのゲームではゲーム機が対応できるのはモノフォニーのオーディオサンプル8チャンネルだけで、音楽とSFXが共同で使います。エフェクト用の場所を確保するためにミュージックトラックのチャンネルが1、2チャンネルほど落とされることもあり、それはハーモニーの場合もありましたが、ドラムのことが多く、『クロノ・トリガー』で特定の動きをした時などに目立ちました。
私はこの制約をエフェクトとして再現しようと思いました。
これに影響するのは主にインパクト音であると判断し、私はこれらのサウンド出力をすべてアサインするサブバスを作成しました。
Meterプラグインを使い、一定のスレッショルドを超えたオーディオを検知させ、これに反応するRTPC「SFXvol」を設定しました。
影響を受けるのは戦闘テーマのドラムトラックに限定したかったため、曲をインポートする時にキックとスネアを別のトラックに入れ、設定したスレッショルドよりも大きいサウンドエフェクトが入ってきた時に反応するよう、ドラムトラックにローパス、ハイパス、そしてボリュームのカーブを設定しました。
実際のハードウェア制限を模して、意図的にゲームに課した偽の制限の完成です!
課題
どの大型プロジェクトでもそうですが、多くの課題に突きあたりました。Wwiseを使うのがはじめてだったこともあり、それなりの学習期間が必要でしたが、ドキュメントが徹底されており成功するための環境は整っていました。本プロジェクトが最終的に必要としたアセット数は膨大であり、私がオーディオディレクターの役割をこなせるようになるまで、それなりに苦労しました。
どのプロジェクトもセットアップが違うため、変に具体的な疑問の具体的な回答をネットで見つけるのは難しいこともありました。試行錯誤の連続でした。問題が発生して夜中までトラブルシューティングして悩みまくり、結局は翌朝、Wwise側の問題ではなくUnityの問題であることが判明し、プログラマーが2分で解決してくれたことも何度かありました。
プラットフォームによってはボイス制限があり、ランダムコンテナに入れた沈黙オブジェクトも含め、サウンドエフェクトを何レイヤーも無制限に放出してはいけないことを失敗により学びました。これを発見したのは人に言いたくないほど後になってからのことで、水中深くまで歩み入った時にボイスカウントが150くらいにまで跳ね上がり、パフォーマンスが落ちた際でした。
問題点の診断と解決ができるよう、Profilerの正しい使い方を知ることになりました。
実際のサウンドデザインとなると、シンプルに抑えた方がベストな場合などは、音として突き詰め過ぎる自分に急ブレーキせざるを得ないことも多々ありました。
私はこれまでずっとミュージシャンであり、コードやスクリプトの効率的な作成経験もなく、自分でできるところまでやりましたが、壁に突き当たったり特定のインテグレーションが必要だったりするとFroやほかのプログラマーたちのことを突っつき、助けてもらう必要がありました。
まとめ
私にとって『Sea of Stars』のオーディオエクスペリエンス制作は貴重な体験となり、1人では絶対にできないことであり、WwiseのようなソフトウェアやAudiokineticのサポートなしでは成立しませんでした。多くの場合、最良のアイデアは制約を受け入れた時に生まれ、最良の結果はやる気のあるチームが複数の頭脳を突き合わせて同じゴールに向かって励む時に達成されるものだと思います。
コメント