LumoteのVFXをWwiseで動かす

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

Wwiseユーザーランドのみんな、こんにちは!私はカナダのバンクーバーにあるStudio X Labsのオーディオディレクターのポール・ラスケイ(Paul Ruskay)です。間もなくリリースされる私たちのインディー3Dパズル・プラットフォームゲームのタイトルLumote(PC、Switch、PS4、XBox One)では、WwiseのMeterプラグインを使ってゲームのVFXを動かし、パーティクルやライティング、カメラシェイクやメッシュワープを操作させた方法を、このブログで説明しようと思います。Lumoteはインディーゲームなので、私はMeterプラグインをこのゲームの世界やストーリーの中で使って実験したり習得したりする時間と、自由を、充分に確保できました。ビジュアルエフェクトを動かすようなサウンド要素を設計することがわかっていたので、このセットアップで、ほかにはないビジュアルや音響の場面を作成するチャンスをたくさん発見しました。

lumote2

Lumoteは色彩豊かな美しい3Dパズルのプラットフォームゲームで、Steam2020年2月20日にリリース予定 です。2020年内に、Switch、XBox One、PS4向けにも提供されます。

概要

通常のゲームオーディオ制作では、アニメーターやVFXアーティストたちの仕事が終わってからサウンドの作成にかかるという流れになっています。私たちサウンドデザイナーの責任は、完成したこれらのアニメーションやビジュアルエフェクトに沿ってオーディオをつくり上げることです。Lumoteの開発で、私はWwiseのMeterプラグインを利用してサウンドデザインの音波を「収穫」し、RTPC値の文字列を生成してゲームエンジンに返すことで、様々なビジュアルエフェクトやアニメーションシステムを動かしました。今回は開発者4人のチームでアニメーターがいなかったので、進め方を工夫する必要があり、そのうちに私たちはオーディオがゲームのVFXシステムの多くを動かすようにすれば、視覚的なものの多くをプロシージャル方式で生成できることに気づいたのです。オーディオでVFXを動かすという考え方のおかげで、とても有機的で流動的な感じのするゲームができあがりました。私は多くの作品でゲームオーディオ制作に携わってきましたが、波形でビジュアルエフェクトを駆動させるというアプローチは初めてで、とても楽しかったです。

今回のブログで取り上げるトピック:

  1. Lumoteの紹介
  2. 開発チーム
  3. Lumoteのオーディオデザイン
  4. Meterプラグインのセットアップ
  5. Lumoteのオーディオで動かすVFXの事例

Lumoteについて

Lumoteは2つの勢力が対峙するゲームです。青の勢力をコントロールするのがLumote(ルモート)で、赤の勢力をコントロールするのは敵のMastermote(マスターモート)です。プレイヤーは、この3Dパズル・プラットフォームゲームの中でLumoteを動かしますが、使えるのは、ほかの生物たちに「取りつく」能力と、「ジャンプする」能力の2つだけです。「取りつく」ことでLumoteは世界の住人(Mote)たちをコントロールしてその固有の力を借りることができ、徐々に難しくなるパズルを解いていきます。Lumoteの最終目的はワールドマップの底にたどり着いてMastermoteの権力を奪うことですが、Moteたちはそのときの支配者のエネルギーによって、Lumoteの助けになったり(青エネルギーのとき)、邪魔になったり(赤エネルギー)します。

lumote3

Lumoteはワールドマップの底までたどり着くのに6時間かかる3Dパズル・プラットフォームゲームです。このゲームは、このプロジェクト用にLumote開発チームのメンバー(Kyle Rocha、Aaron Arnt)がプログラミングした独自ゲームエンジン(rEngine)で開発されました。

Lumoteの世界は3つのバイオームに分かれていて、それぞれに3つのタワーがあり、Lumoteがタワーのエネルギーを赤から青に変換しないと次のパズル群に進めません。それぞれのタワーが1つのMoteタイプと、具体的なゲーム機能を持ち、タワーを完成させると制覇できます。ゲームにいるMote(モート)は全部で5種類です(小Dumbat、大Dumbat、Hover Mover、Jellyfish、Divertor)。各Moteに特別な能力があり、Lumoteはその能力を使いこなさないとゲームの終わりまでたどり着けません。

 

Lumote4

初期のころのMoteコンセプトアート。パズルデザインの中で見事に機能する、素晴らしいキャラクターデザインの一部。

 

開発チームのメンバー:

Lumote5

左から:
ミシェル(Michelle Rocha、パズルデザインとコード)             
カイル(Kyle Rocha、コードと美術)   
アーロン(Aaron Arnt、コードとレンダリング)          
ポール(Paul Ruskay、音楽、サウンドデザイン、Wwiseインテグレーション)              


全員がリモートワークだったので、Perforce、Slack、rEngine、Wwiseが私たちの開発環境となりました。打ち合わせは最小限にして、プロジェクト中の主な連絡手段はSlackでした。みんな自分の「サイロ」の中で作業しつつ、必要なときはすぐにほかの人にSlackでつながることができます。振り返ると、これは優れたゲーム制作の方法で、私はオーディオ主導型のVFXを実験する時間と創作的な自由度を得ることができました。Luminawesome Gamesはカナダのバンクーバー市を拠点とするインディースタジオで、ビデオゲーム業界のベテランたちで構成されています。どのチームメンバーもAAAタイトルの経験があり、リリースに関わってきたので、Lumoteに導入された開発ノウハウは多大なものでした。2014年10月にカイルとミシェルは、あるUnreal Game JamでミニゲームBumpを制作し、受賞チームの1つとなりました。2人はコンセプトがとても気に入り、さらに開発を進めてフルゲームにしようと決めました。アーロンは2015年に入り、そのときにUnreal Engineから離れることになりました。2015年は、カイルとアーロンがLumote専用に独自のグラフィックスエンジンをプログラミングした年で、名前をrEngineにしました。私がプロジェクトに参加したのは2016年3月のことで、作曲とサウンドデザインとWwiseインテグレーションの担当になりました。

Lumoteのオーディオデザイン

このゲームでは、サウンドデザインの主な目的がプレイヤーの操作に対して生き生きとした表現力に富んだ反応をする世界を作成することでした。Lumoteの音と映像を、有機的で、電子的で、この世のものでないものにする必要がありました。私たちの少人数チームにはアニメーターがいなかったので、リソースの最適化は必須でした。それが頭にあった私たちがすぐに気が付いたのが、Moteたちのサウンドデザインからプロシージャル方法でアニメーションを生成できるということです。Meterプラグインを使い、ゲームオブジェクトのdBメーターからRTPC値の文字列を、そのゲームオブジェクトのWwiseのオーディオフォルダに作成しました。カイルがrEngineでVFXをプログラミングしましたが、そこにWwiseのRTPCアウトプットを取り込み、ライティング、パーティクルエミッション、カメラシェイク、メッシュワープのそれぞれのシステムに送りました。Lumoteのビジュアルエフェクトは、Wwiseのゲームオブジェクトフォルダがトリガーする波形を、文字通り変換した結果となります。私がオーディオを「ビジュアル的」に検討する必要がでてきたのです。そこで考えた内訳が、こちらです:

Lumote6

繰り返されるパルス音をライティングに適用すると、ストローブエフェクトが生成されます。同じ音をパーティクルに適用すれば、継続的なストリームができあがります。音波が映像としてアニメーションに変換される様子を考えるのは、特にキャラクターの反応という観点で、おもしろかったです。

 

 

一番時間のかかったタスクはMoteの5種類のバリエーションを開発することで、どのMoteタイプをとっても、キャラクターのStateや反応をLumoteに示す必要がありました。Lumoteのオーディオデザインで頭を悩ませたもう1つの問題は、どのMoteタイプにもエネルギータイプ(赤と青)別の音のセットを2つずつ、作成しなくてはならなかったことです。ゲーム中はいつでも、環境やMoteに、赤エネルギー(Mastermoteに取りつかれたとき)と青エネルギー(Lumoteに取りつかれたとき)のどちらかがかかるので、どちらのエネルギータイプも特別なオーディオ処理が必要でした。結果的に、ゲーム中のすべてのやり取りに、エネルギータイプ別のサウンドデザインが2種類ずつ必要となりました。すべてがうまくいくには、私がこのゲームのサウンドデザインを実質2回、行わなければいけなかったのです。また、Moteのサウンドデザインと音楽が調和的に一緒になるようにする必要があり、それはMoteのボイスが楽器(フルート、ベル、ホイッスルなど)のサンプルから生成されたからです。この環境の音楽スタイルには「水面下」や「別世界」という雰囲気の音楽が必要だったので、アンビエントがぴったりでした。また、アンビエント音楽であれば、空間的な3Dパズルを解くために集中するプレイヤーを邪魔せずに済むと考えました。さらに、Lumoteキャラクターは言葉のリアクションがなく、発声音だけです。そうすると国別のローカリゼーションのレコーディングが不要になりますが、同時に、ゲームのストーリーは言葉で語られず、オーディオデザインと音楽だけで表現されることを意味しました。

私がインスピレーションを受けたのはInsideLimboOri and The Blind Forestなどで、どれも言葉を使わない素晴らしいナレーションでプレイヤーの興味を維持し、緊張感を保ちながらメインキャラクターの感情を表現する信ぴょう性のあるゲームプレイ場面をつくり出しています。

Lumoteのコアにある、パズルを解くというゲームプレイのループで、非常にシンプルなオーディオEventが続きますが、私はこれがゲームで驚くほど繊細で変化に富んだ表現をかもし出すことを発見し、例えばLumoteが1つのMoteに取りついて、そのエネルギー状態を切り替えたときなどに起きます。  

Moteのコアのオーディオイベントループ:
アイドル状態 – ハロー – グッドバイ(青または赤)
アイドル状態 – ハロー – 「取りつき」開始 – 「エネルギー」切替 -「移動」開始 – 「移動」終了 – 「取りつき」終了 – アイドル状態開始
 
Lumoteのコアのオーディオイベントループ:
歩く
ジャンプ
ダブルジャンプ
着地(落下高さによってRTPCで動かす)
「取りつき」開始
「取りつき」終了
Mote「ハロー」への反応

 

Lumoteのリアクションはエネルギー状態に基づいていて、Moteのタイプによっても変わります。赤のMoteと挨拶するときは反感を表し、青のMoteと出会ったときは愛想よく丁寧な態度を示します。

 

Meterプラグインの設定と、Wwiseの設定

私は、ゲームオーディオアセットをすべて最大限に制御してプログラミングのサポートを最小限に抑えられるようなWwiseプロジェクトを作成することを、目標としました。そこでカイルと私は、同じEventをシェアするゲームオブジェクトをグループ分けして、それに基づいてオーディオEventレイヤを「紙の上で設計」したのです。そうすることで、私がオーディオ制作に手をつける前から、オーディオEventの80%をWwiseに送ることができました。私たちのSwitchカテゴリと、共通(Common)Event:

Lumote7

rEngineがオーディオEventをWwiseに送るので、私はフォルダの構成を構築して中にオーディオアセットを入れ始めました。サウンド開発プロセスの最初にrEngineから送られるEvent全体の80%を入手できたので、私は独自に仕事を進め、プログラミングのサポートがほとんどなくても、すべてのオーディオ要素を作成してテストすることができました。4人だけの開発チームだったので、全員が可能な限り他人に頼らず進める必要があることは、明らかでした。

 

lumote8

カイルがOutputMeterプリセットをいくつか作成してくれたので、それをゲームオブジェクトにアサインして、オブジェクトのライティング、アニメーション、パーティクルなどを変化させるために連携させました。OutputMeter_VoiceはWwiseのRTPCをMoteのビジュアルシステムにリンクさせるプリセットで、全体の90%で使いました。

AkGameObject, AkSoundEngine.PostEvent:

次のようにして、WwiseからゲームエンジンにRTPCを送ります:

  1. ゲームの各キャラクターに、Mote Type Switchを設定します。
  2. 次にCommon_OnMoveBeginCommon_OnMoveEnd といった共通EventのPostEvent を設定します。
  3. 次にAK::SoundEngine::Query::GetRTPCValue()で、オーディオフォルダのdBメーターに基づいて、WwiseのMeterパラメータを読み返します。 
  4. ゲームのこれらのメーターパラメータをポストプロセスで処理し、サイン波の振幅や周波数を修正して、これが実際のライティング、メッシュアニメーション、カメラシェイク、Emmisive Materialパラメータなどを動かします。

 

Meterプラグインを使って気づいたこと:

  1. 私たちはMoteのStateを強化するためにMeterプラグインを使い、様々なState(アイドル状態、びっくり、停止、開始、勢力切替)のときの、生物のボイスを作成しました。
  2. Meterプラグインは、ゲームオブジェクトの直前のオーディオEventの信号が残存していない限り、調子良く動きました。前のゲームオブジェクトのサウンドデザインが必ず完全に停止してからSFXがトリガーされるように、私はEventレイヤの調整に時間をかけました。前のオーディオEventのオーディオが少しでも残っていると、それがMeterプラグインをのっとり、新しいオーディオRTPCをゲームエンジンに送ることができなくなってしまうのです。また、あるフォルダに対してPause Eventsを使った場合も、Meterプラグインがのっとられることを知りました。フォルダの再生を完全に停止してから次のオーディオEventをトリガーするのが一番無難で、そうすればMeterプラグインが次の新しいオーディオ信号のために待機できます
  3. VerbエフェクトをMoteのサブフォルダに追加すると、Moteの異なるState同士をオーディオ的にもビジュアル的にもブレンドできるようになります。別々のサウンドフォルダを、1つにまとまるようにブレンドするときに役立ちます。
  4. ImpactをPitch RTPC(Impact用)にリンクさせた結果、本当に面白いビジュアルができました。SFXの低ピッチのバージョンは、よりゆっくりした、広いビジュアルエフェクトをつくり出しました。

lumote090

まとめ

  1. Lumoteのサウンドデザインのプロセスは、私がMeterプラグインで遊ぶうちに進化していきました。Mastermoteのオーディオとカメラシェイクを連携させたときのタワーの一連の動きは、まるで生命がやどったようでした。
  2. ふざけたようなアイディアでも受け入れるように心がけ、何がプレイヤーにとって一番楽しく、印象に残るようなエクスペリエンスなのかを、常に探し求めてください。また、このゲームはサウンドが多すぎないか、と自問自答することを忘れないでください。プレイヤーがゲーム環境を心地よいと感じられるように、オーディオの「余白」を充分にとってありますか? 
  3. EventレイヤとSwitchのカテゴリを、早い段階から紙で設計するようにします。
  4. ほかの分野(プログラミング、美術、デザイン)を担当するクリエイティブな人たちの目的を研究し、彼らの目的を達成するために自分がオーディオを使って何ができるのかを気にするようにしてください。

 

 

 

ポール・ラスケイ(PAUL RUSKAY)

オーディオディレクター

Studio X Labs

ポール・ラスケイ(PAUL RUSKAY)

オーディオディレクター

Studio X Labs

1999年にカナダのバンクーバーでポストプロダクションスタジオStudio X Labsを設立し、オーディオディレクターに就任。過去26年に、40を超えるゲームタイトルのオーディオを制作。特にHomeworldとStrike Suit Zeroの作曲で有名。

コメント

Replyを残す

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

ほかの記事

UIデザインを切り口に、UIオーディオを考える – パート 1

12.3.2020 - 作者 ジョセフ・マルチューク(JOSEPH MARCHUK)

Aporia: Beyond the Valley - 幽霊のサウンドをつくる

7.7.2020 - 作者 トローオルス・ニガルド(TROELS NYGAARD)

3Dインタラクティブミュージックのエクスペリエンスに、なぜWwiseを選んだのか

スマホ用VRアプリ ‘Dirty Laundry by Blake Ruby’ ーオーディオの説明ー

8.12.2021 - 作者 ジュリアン・メッシーナ(Julian Messina)

『 It Takes Two 』のサウンドの裏側 ― Hazelightオーディオチームに聞く ―

Hazelight Studiosの『It Takes...

26.1.2022 - 作者 Hazelight

アイコニックなパズルゲームをビートに合わせて

1年以上も前のことですが、新しいゲームの仕事で声をかけられた時、それがまさかあの有名なフランチャイズゲーム『テトリス®』であろうとは思ってもいませんでした。...

31.10.2023 - 作者 ウリエル・オロスコ

『SEASON: A letter to the future』 | ゲームメカニクスとしてのフィールドレコーディングを体験する

はじめに 『SEASON: A letter to the...

14.5.2024 - 作者 Vibe Avenue