サウンドデザイナー Wwise研修紹介
サウンドデザイナーの佐野です。本記事では、研修の一環として実施されたWwise研修の内容をご紹介します。
Wwiseとは?
ゲーム開発で用いられるオーディオミドルウェアの一つです。残響や音の聞こえてくる方向の処理など、3D空間での音響表現に必要な処理をツールが担ってくれるメリットがあります。さらにサウンドデザイナーとエンジニアの工程をある程度分離して、ノーコードでも複雑なサウンドデザインを実現できる強みがあり、サウンドデザイナー入門者にとっても大きなメリットがあるツールです。
この研修では、Wwiseを用いて行うサウンドデザインと組み込みの方法を学びました。基本的な使い方は、Wwiseの開発を行なっているAudiokinetic社が公開している「Wwise Certification」と呼ばれる教材群があり、こちらで学ぶことができます。本研修でも最初のフェーズではこちらの教材に沿ってWwiseの基本的な操作方法や組み込みの考え方を学びました。
サンプル環境でのサウンドデザイン
次のフェーズではUnityで作られたサンプル環境での、Wwiseを用いたサウンドの組み込み方法を学びました。サンプル環境は、3Dゲームに存在する基本的なオブジェクトのみで構成されるミニマムな環境です。この環境のサウンドには、プレイアブルなキャラクターの足音や、銃の発射音、焚き火などの音源を持つオブジェクトから、BGMやUIなどのノンダイエジェティックなサウンド(ゲーム中の世界に実際は存在しない音)まで、必要最低限なものが含まれています。研修では無音の状態からサウンドを制作してゲームに組み込むまでの流れを実践的に行いました。
イベントの実装
まずUnityで実装済みのリスト化されたイベントを、Wwise上で制作する流れを学びました。実務上でもイベント名のみを組み込み担当のエンジニアと共有し、サウンドデザイナーの作業はWwise上で完結するような状況は多々あり、最もベーシックな作業方法の一つです。ここでは、サンプル環境に存在する音源やBGMなどの基本的な音は全て実装済みであり、Wwise側のデータを作成すれば音が再生される状態からスタートしました。画像のようなEvent一覧の情報を元にデータを作成していきました。
自分で制作した音をWwiseを使用して組み込み、サンプル環境でモニタリングし、必要に応じて制作工程まで遡り調整する、というサウンドデザイナーとしての基本的なイテレーションを実践的に学ぶことができました。
Game Syncsの組み込み
ゲーム内の状況に応じて、再生させるサウンドの音色や音量などを変化させたい状況はよくあります。 WwiseのGame Syncsと呼ばれる機能を用いることで、こうしたインタラクティブな変化を比較的簡単に実装することができます。この機能は、 画像のように横軸にGame Syncsの値を取り、縦軸に再生速度や音量などを割り当て、カーブを作成することで柔軟な実装が簡単にできる仕組みです。
サンプル環境にもキャラクターの攻撃音を切り替えるためのGame Syncsや、キャラクターのHPに応じてBGMを変化させるためのGame Syncsなどが実装されています。 研修ではこれらのパラメータを用いて、BGMの再生速度を変化させたり、メニュー画面でのダッキングなどを実装しました。 ダッキングに限らず、ゲーム内の特定の状況で特定のサウンドのみの音量をコントロールしたいシチュエーションは実務でもよくあります。こうした状況に柔軟に対応するためのWwiseでのデータの作り方など、実践的に役立つテクニックを学ぶことができました。
新機能の実装
先述の通り、サンプル環境にはサウンドの発音・調整機能が実装されており、無音の状態から実装された機能が全て動くようにするまでの作業を研修として行いました。 一方でこのフェーズでは、既存のサウンドを踏まえて改修したい点を自分で見つけ、制作から実装までを行う研修を実施しました。 ここではBGMに着目し、ゲーム内の状況に応じて音数を変化させるいわゆる「Vertical」なインタラクティブミュージックを実装しました。 BGM用のGame Syncs(MusicState)を作成し、このパラメータによって楽曲のアレンジが変化するような仕様をゴールとしました。
まずサンプル環境にコリジョンを設置しました。 プレーヤーがコリジョン内部にいる場合にMusicStateを変化させることでBGMの変化を実装します。 今回は「Drum」と書かれたコリジョン内ではDrumのみのアレンジ、「NoDrum」と書かれたコリジョン内ではDrum以外のアレンジ、どのコリジョンにも入っていない場合はフルアレンジ、のように3種類のアレンジを遷移する仕様としました。
アレンジごとの楽曲データをWwiseに読み込み、「BGM_switch」というコンテナの内部に並列に配置します。 これは、MusicStateの値によって再生する楽曲データを、コンテナ内部で逐次変更していくような仕組みです。
MusicStateに応じてどの楽曲ファイルを再生するのかを設定し、それぞれどのように遷移するのかのTransitionを設定します。 ここでは、MusicStateの変化があった場合にはBGMの次の拍を待って遷移していくような実装をしました。 ただし、ゲーム開始時に再生されるイントロ部の「BGM_Full_Into」が再生中にMusicState が変化した場合に限って、イントロ部が全て再生しきるのを待ってBGMが遷移するようなTransitionを設定しています。
カットシーンのサウンドデザイン
次のフェーズではリリースタイトルである「PRINCIPLES」において、カットシーンに音を当てていく作業を研修として行いました。 カットシーンに限らず、ディレクターの意図を汲み取って表現することは重要ですが、カットシーンではプレーヤー全員が等しい体験を得られるため、特に気を配って演出を作り上げることが求められます。
Timelineを用いた実装
「PRINCIPLES」のカットシーンはTimeline機能を用いて実装されています。 Timeline機能では、WwiseのインテグレーションによってWwiseで作成した組み込み用のデータをシーケンス上で制御できる仕様となっています。
このフェーズでは、組み込み用のデータの音声ファイルを作成するところから行いました。 カットシーンに音をつける際には、2通りの実装方法が考えられます。上記の画像のようにカットシーンの尺分に調整した音声をカットシーンの開始と同時に再生させる方法と、下記の画像のように、カットシーンでの動きに合わせて細かくした音を、逐次発音していく方法です。
どちらの方法にも長短はありますが、再生途中でスキップ出来る可能性のあるカットシーンでは、後者のように 細切れに発音していく手法が好まれます。この手法には途中での停止処理をしやすい利点があり、今回はこちらの実装方法を選択しました。
カットシーンからプレイ可能な状態への遷移
「PRINCIPLES」には複数のカットシーンが存在しますが、オープニングのカットシーンではプレイ可能な状態へとシームレスにつながるような演出となっています。 このため、カメラの回転にあわせてサウンドもシームレスに遷移させる必要があります。
研修の最後のフェーズでは、カットシーンからプレイ可能な画面までの遷移の一連をキャプチャした動画に、音を当てていく作業を行いました。プレイ可能な最初のシーンでは、背景としてゲーム上に環境音が配置されています。この環境音はカメラの動きなどのゲーム内の状態によって、その聞こえ方が異なるような仕組みで発音されています。一方でシーケンス上に貼り付けていた音は、こうしたインタラクティブな表現ができません。シームレスにつながる演出の実現のためには、このような鳴らし方の異なるサウンドも違和感の無いように繋げる必要があります。背景で聴こえる環境音のほか、方向表現が重要になる水滴の音・洞窟の奥から聞こえる風の音などサウンドも、聴感上の違和感が生じないような発音方法の工夫が求められます。
上記のように実装方法の異なる演出同士の繋ぎ目では、その遷移をどう実現するのか考える必要がある、ということが大きな学びとなりました。
おわりに
今回はWwise研修の内容を紹介いたしました。 Wwiseを使用することで、サウンドデザイナーだけでも、ある程度複雑な音の表現を実現できることが学びとなりました。 しかし今回紹介した機能や手法は、意図したサウンドデザインを実現するための選択肢の一つに過ぎません。 「どんな音を鳴らすか」だけでなく、「どう鳴らすか」についてもサウンドデザイナーが最適な手法を考え、その選択をしていくことが重要です。
オーディオミドルウェアを利用したゲーム開発は一般的なものになってきました。 コロプラでも複数のタイトルで導入が進められており、新しい体験をユーザーさまへ届けるために、サウンドを「どう鳴らすか」にこだわった様々な取り組みを日々行なっています。
※WwiseはAudiokinetic Inc.の商標です。
参考
Audiokinetic社が公開しているWwiseの教材群「Wwise Certification」 [https://www.audiokinetic.com/ja/learning/learn-wwise]