『I Am Fish(俺は魚だよ)』は物理演算を駆使した魅力的なアドベンチャーゲームで、プレイヤーは4人の勇敢な魚の仲間たちの運命を手に、海への脱出を試みることになります。ロンドンのBossa Studiosが開発し、彼らのヒット作『I Am Bread』の精神を引き継いだ最新作です。このゲームでは物理学をベースにした奇妙な乗り物の音声、ダイナミックな音楽、水を扱うための数々のシステム(信じられないことはないと思いますが)が登場し、さらにプレイヤーが4匹の全く異なる魚になったように感じさせるというチャレンジが特徴です。Audiokineticはこのプロジェクトのオーディオデザイナーを務めたLookListen Audioのアリ・トーカー(Ali Tocher)氏に、Wwiseをゲームで使用した際のいくつかのトリックやヒント、注意点を聞きました。
さっそく飛び込んでみよう!…失礼、魚に関するダジャレは私たちのチームのSlackでよく使われていたので、このブログでも疲カレイない程度に登場するかもしれません(笑)
乗り物のダイナミックオーディオ
『I Am Fish』でプレイヤー、つまり魚がコントロールする風変りで突拍子もない乗り物の音づくりは、なんとも楽しいものでした。モップバケツ、ゴミ入れ、観察用の水槽、ビールグラス、トロッコ、大きなビン、球形の金魚鉢、スーツケース、氷、酔っ払いの男など、まだまだあります!今回は2つの乗り物を例に、Wwiseでどのようにデザインして利用したかを詳しく説明します。
球形の金魚鉢
金魚鉢には、超低速でも読みやすく、かつ超高速でも長時間再生できることが必要でした。回転するガラス製品の処理とレイヤー上の初期テストでは、レイヤーをブレンドさせながらピッチを上げていくという従来の車両オーディオのアプローチがうまくいかないことが判明しました。さまざまなガラス物体を転がしたり、コマのように回したりして録音と分析を重ねた結果、基本の「転がる音」は回転を表すサインスイープによって形成され、これを回転速度に合わせて加速させたり減速させたりするとよいことが分かってきました。個々の回転を分割したり再編成したりといった最初の試みは実を結ばなかったため、WwiseのLFOを使いデザインされたノイズの中に、この形状を動的に作り出すというアプローチに落ち着きました。
下の動画で分かるように、回転音のミックスバスにパラメトリックEQを設定し(Wwise画面左)、LFOのアタック、周波数のデプスを回転速度のパラメーターで制御し(Wwise画面右)、ノイズレイヤーに「回転音」を適用しています。
ここで紹介した以外にも、いくつかの注意点があります。
•この 動画では回転だけを抽出していますが、ゲームでは水のレイヤーや魚の動きのレイヤーもあります。しかし、金魚鉢のインパクト音は非常に早い速度から停止したり、地面に接地する際に発生する粗悪なフレームをカバーするという重要な役割を果たすために残しておきました。
•これは面のレイヤーですが 乗り物が空中を飛ぶ瞬間もたくさんあるので、地面に接しているかどうかをチェックしています。
•この動画の例ではかすかにしか聞こえませんが、高速になるとガラスのようなテクスチャーが警告として追加され、勢いを落とさないと金魚鉢が粉砕する速度に達したことをプレイヤーに知らせます。
アイスキューブ車
動画に出てくる氷の乗り物について少し触れたいと思います。この乗り物の勢いを利用してRTPCを駆動するという、割とストレートな方法でしたが、ゲームプレイの感覚に直結するインパクトには苦労させられました。私は初めてインパクト(衝突)の角度を使用してこれを解決しました。インパクト音を2種類デザインし、こすれるスクレープ音(衝突の角度10~60度)と衝突音(衝突の角度60~90度)をSwitch Groupで選択しています。いったん発見すれば当然のように思えるソリューションですが、見つけるまで時間がかかりました。
水
水が画面からはじけ散るようにした方法は、延々と滴るように語れますが、今回はほんの少しだけ選んで説明します。
面と辺
経験者なら分かると思いますが、水をオブジェクトベースのオーディオにするのは少し厄介で、プレイヤーと相対的に音源を動かすためにスプラインシステムを使う必要があります。私は水の音をうまくカバーできるように、2つの使い方に着目してみました。1つはグラフィックス担当プログラマーに各水域の「水面の境界線」、つまり図中の赤線部分を定義してもらいました。2つ目に、通常はプレイヤーの目的地であるため、ゲームプレイに重要なエッジ領域を「通行可能なエッジ」領域(黄色部分)として定義しました。
次の動画を聞くと分かりますが、表面スプラインはカメラの直下に位置しカメラの高さ分だけ音の減衰が適用され、さらに重要なことに、赤い境界部分に達するとスプラインが終わり、プレイヤーが戻るまで待機します。というのも、私たちのフグの友達は、境界を越えるのが本当に好きなんです!
飽きのこない水と音楽を目指して
このプロジェクトの初日から、気になっていたことが1つあります。水面下の時は高周波を排除するのが定番の手法であると分かっていながら、このゲームが水中でも平坦で地味に聞こえないようにするには、どうすればいいでしょうか。その答えはゲームの音楽が教えてくれました。『I Am Fish』の楽曲は魚の気持ちを反映するように作曲されていますが、ゲームでは一見脅威に見えないものでも体長10cmの金魚にとっては状況が違い、それを音楽が表現してくれます。魚は水中を好むので、私は音の減衰の考え方をひっくり返すことを思いつきました。カメラが水面から出ているとき(人間の領域)では音楽が減衰し、カメラが水中に戻り魚の本来の場所に入った時はすべての周波数が聞こえるようにしてはどうだろう、と思いついたのです。これにより水中ではLPFの影響をカバーしつつ、水上ではアンビエンスミックスに余裕を持たせることができるという利点がありました。別の問題まで解決するデザインソリューションは真に良いデザインソリューションだ、とはうまく言ったものです!さらにプレイヤーが水面上にいて、特殊能力(飛ぶ、転がる、噛みつくなど)を使用している場合にも、全周波数の音楽を維持できるように拡張しました。
魚の挙動やスペシャル音
フォーリーは何度やっても楽しい作業で、魚の場合でも同じです。ただし従来の足音の概念はリリースしてください。実際に魚の音をつくり出した過程を少し紹介します。
魚の足音?
考え方をひっくり返して成功した、もう1つの例です。一般的にキャラクターの動きが速くなればなるほどフォーリーサウンドが大きくなると思いがちですが、今回の魚ではそれが通用しませんでした。プレイヤーが魚を操作して方向転換や加減速を行った時に、フィードバックとして魚のしっぽの動きを聞かせた方が感覚的に正しく聞こえ、反対に一定方向を継続的に前進する時は水の音のレイヤー(または空中移動中は風の音のレイヤー)を使った方がスピード感をうまく表現できました。最初は正直、魚の動きをどうやって音にするのか見当もつかなかったため、しっくりくる解決策を見つけた時の満足感は大きかったです。結局ピッチ設定やフィルターで処理したハイピッチの泡ぶく音を単純ループにしたところ、こちらの動画の通り大活躍してくれました。
魚に個性を与える
このゲームの主人公は魚たち。ぜひ聞いてほしい音をいくつか紹介します。
フグ
フグの特技は身をふくらますことで、ボールのように転がったり跳ねたりします。少し空気の抜けたサッカーボールを思い浮かべました。
実際に動く様子:
ピラニア
ピラニアは予想される通りよく噛みつきます。まるで小型犬だと思ってワンちゃんのフンフン、キュンキュン、かみかみなどをライブラリで探しまくり、楽しくてダイナミックな楽器をつくりました。ダイナミックループにすることでゲームデザイン上の課題も解決できました。ピラニアがゲームプレイで小物にうまく噛みついた時は、この小物を引っこ抜くためにプレイヤーがメインの入力コントロールを操作する必要があります。音がないとプレイヤーは身動きが取れないため混乱してしまいますが、左スティックを小刻みに動かすと唸るような鳴き声が増える事で、意図がよく伝わりました。
このブログ記事の執筆を私に依頼してくれたAudiokineticとBossa Studiosに感謝します。お役に立つ情報を提供できていれば嬉しいです。これからのホリデーシーズンにみなさんも充分に休息してくださいね!
コメント