ゲームオーディオのコミュニティでよく聞くのが、「ミドルウェアを使うメリットを、上司やクライアントにどう説明すれば納得してもらえるだろう」という悩みです。我々オーディオ業界のプロにとっては、答えは明白です。しかし現実的に回答するには、クライアントの立場に立って考えてみなければなりません。実際はミドルウェア無しでも仕事をこなせるのに、なぜ余分にお金を出すべきなのか?コストに対してメリットはどれくらいあるのか?今日のゲーム開発の現場では、オールインワンのソリューションとして、オーディオ機能が最初から組み込まれているUnrealやUnityなどのサードパーティエンジンが、特に予算を切り詰めて制作を進めているインディー系チームで急速に広まっている中、どうすればサウンドエンジンという特化したものへの投資を承諾してもらえるのでしょうか?
プロジェクトを企画するプロデューサーやスタジオディレクターの立場から言うと、ライセンスフィーに支払うお金は、他で使えなくなる予算なのです。単一プラットフォームのプロジェクトで、制作予算が単一プラットフォーム用予算として15万ドルから150万ドルまでであれば、制作予算に対応するWwiseのライセンスフィーはレベルBの6,000ドルとなります。このような例では、Wwiseを使うと、経験者1か月分、または新人1.5か月分の出費と同じかもしれません。あるいは、ゲームの機能を1つ減らしたり、アセット数を縮小したりするのと同等かもしれません。要はトレードオフが行われるのです。コストを正当化するには、天秤にかけた時にWwiseを導入した方がなぜ良いのかを解説できて、理想的には、長い目で見ると品質が向上しつつサウンドデザイナーもプログラマーも時間を節約できることを示せると良いでしょう。
Wwiseのコストがオーディオプログラマー1ヵ月分の給料に相当して、実際に節約できるのがオーディオプログラマーの2ヵ月分の作業であれば、数字だけで効果を説明できます。Wwiseを使うことを決断したプロデューサーは、リソースを少しWwiseに割くことで最終的にはリソースを増やすことができ、プロジェクトのマージンを改善できるのです。
つまり、特定の機能やメリットを売り込む時は、クライアントの疑問に先回りして答えられるように、「この機能でどれだけ時間を節約できるのか、品質をどれだけ向上できるのか?」を必ず考えてください。もちろん具体的な内容はプロジェクトによって異なり、プロジェクト要件や使用中のエンジンの基本的な機能などでも左右されますが、Wwiseの主要機能がもたらす時間の節約と品質の向上を、以下にまとめてみました。
オーサリングワークフロー
Wwiseを使うと、サウンドデザイナーの作業のほとんどがオーサリングアプリケーション上で行われます。クリエイティブな観点では、オーサリングのワークフローに強力な機能がそろっているので、サウンドデザイナーにとってなじみ深い用語でツールを使いこなせます。例えば、ボリュームのdB表示、バスのミキシング階層、エンベロープ、LFO、パラメータのグラフによる視覚的な編集などです。DAWやサンプラーの用語と同じなので、サウンドデザイナーが素早く正確に作業しやすくなっています。次に、オーディオの機能とゲームオブジェクトを分けることで、プロジェクトファイルへのアクセス頻度を減らし、他のチームメンバーもアクセスする必要のあるシーンやマップファイル、ゲームオブジェクト、ブループリントなどを修正せずに作業のほとんどを終えることができます。サウンドデザイナーの時間を節約できるばかりではなく(ブループリントやソースコントロールを取り合ったり、ファイルアクセスを待ったりする時間が減れば、ゲームのサウンドを仕上げる時間が増えるのです!)、他のチームメンバーの時間も節約できます。
クリエイティブ機能
サウンドエフェクトのデザインと実装において(ボイスオーバーやミュージックについては後述)、Wwiseの中核となるのが、Actor-Mixer Hierarchyや、その中のコンテナの種類 、つまりRandom、Blend、Switch、Sequenceです。 この4つのコンテナタイプを自由に組み合わせたり入れ子のような関係を持たせたりして、実に様々なサウンド動作を作り上げることができ、何種類ものバリエーションからランダムにサウンドを選ぶ基本的かつ不可欠な動作から、非常に高度なレイヤリングやダイナミックなサウンド構成までを可能にします。そのさらに上に、RTPC (Real-Time Parameter Controls)、Switches、Statesなどを定義すれば、その情報をゲームから受け取り、様々なサウンドプロパティに紐付けることができます。
例えばフットステップ、つまり足音の場合を考えます。あるキャラクターが5種類の地面を3つの速度で進む時のフットステップ音には、サウンド構造として、次のように下から順に作り上げていきます:配列毎のサンプル(芝生+歩き、芝生+走り、など)の入った複数のRandom Container、これらの配列をスピードのパラメータやスイッチにマッピングするBlend ContainerまたはSwitch Container、そして最上位レベルで地面の種類に合わせて切り替えるSwitch Containerが必要です。以上は数分ほどでまとめられ、コード側から必要なのは、足音1つ1つの “play footstep” Event と、 “material” や“speed” が変化する時に値も変更されるような設定だけです。
別の例をみてみます。ウェポンのサウンドが、アタック、テール、そして近くでしか聞こえない機械的な “mechanism”というレイヤで構成され、それぞれ複数のバージョンがあるとします。1つのBlend Containerで3つのRandom Containerを組み合わせ、この中の “mechanism”レイヤだけを異なる時間でディレイさせても良いでしょう。この一連の作業も、数分で完成して、たった1つのイベントでトリガーできます。
このような動作を一から実装するには時間もテスト過程も必要であり、おそらくオーサリングツールのUIほど早い作業もできないはずです。信じてください、なぜなら私もUnityでやった経験があるのです!基本的なコンテナと同等のものをそろえるだけで、レベルBのライセンスフィーに匹敵するコストになりかねませんし、ワークフローはWwiseほどきれいにならない上、おそらく応用範囲も限られてしまいます。
Profiler
ProfilerはWwiseの最強機能の1つです。実行中のゲームにオーサリングツールWwiseを接続すれば、サウンドエンジン内で起きていることを全て、Profiler上でモニタリングできます。入ってきたイベントがリアルタイムで表示されて、その結果として実行される再生や停止、ボリューム変更、ポジション情報の推移など、関連するアクションも同時に表示されます。他にも、エラーメッセージ、パラメータ値、リソース消費なども表示できます。デバグや最適化の手段として最高のツールであり、サウンドが思い通りに動いてくれない時に素早く問題を発見して原因を把握できるので、時間をかなり節約できて助かります。
今のところ、オーディオツールセットとしてこれに匹敵する機能を備えた主要エンジンはなく、Profilerで達成できることを独自で開発することは、許容できないほどコストが高く複雑になると思います。この点に関して、「他で実装するのにいくらかかるか?」という次元ではなく、「これなくして、どれだけ損をするか?」の問題です。サウンドデザイナーがProfilerを見ながら一人で診断してすぐにフィックスできるようなバグも、Profilerがないと、多くの場合プログラマーのサポートや慎重なQAテストが必要で、フィックスするサウンドデザイナーの手間も増えると考えられます。一般的なプロジェクトで、この程度のバグが何十件も発生することを考えれば、少なく見積もってもWwiseで数日、多い場合は数週間分の作業時間を節約できると言っても過言ではありません。
リアルタイム編集
オーサリングツールがゲームに接続された状態(Profilerの時と同じ接続)で、リアルタイムで編集ができます。ゲームをプレイしながら、ミキシングをしたり調整したりできます。ライブ編集をする時の一部のゲームエンジンのやり方と異なり、Wwiseでは変更がセッションの終わりに維持されるので、レベルミキシングに重宝されるだけでなく、RTPCマッピング、減衰、エフェクト送信、タイミング設定、ブレンドなど多数のサウンドプロパティや動作設定を、その利用場面の中で微調整できます。サウンドデザイナーの反復作業が大幅に削減され、ミキシングや調整の精度も高まり、結果として品質の向上につながります。
ダイナミックミキシング
Wwiseにはミックスをダイナミックに制御する方法がいくつかあり、例えばゲームのEventやStateに応じて、または再生中のコンテンツに合わせて、変化させることができます。HDR(High Dynamic Range)は、再生中のコンテンツのラウドネスに合わせてミックスを調整する機能で、小さい音を退けて大きい音のために場所を空け、大きい音を感じ取りやすくします。Statesで、バスのボリューム、フィルター、エフェクトを変更できます。ダッキングもクリック数回で設定できます。
基本的なダッキングシステムはある種類のサウンドが再生中かどうかを判断するだけで、簡単に実装できるかもしれませんが、メーターで作動するダッキング(サイドチェイン)やフレキシブルなStateミキシングは難しく、特にHDRは複雑です。これらの機能が必要であれば、Wwiseなしで実装するには数日ではなく数週間を見積もる必要があります。
インタラクティブミュージックのシステム
ほとんどのゲームで、何らかの形のインタラクティブつまりダイナミックミュージックが必要ですが、これはゲームエンジン内のオーディオ機能が最も苦手とする分野の1つです。Wwiseが提供するソリューションはデザイナーの好みに柔軟に対応でき、同期をサンプルアキュレートにしたり、トランジション動作を細かく設定したりできます。Stateに基づくシステムなので、ゲーム側はゲーム開始またはレベル開始の時点でミュージックシステムをスタートさせ、適したStateを設定するだけでいいのです。
このようなパワーと正確なタイミング(ミュージックシンクには不可欠)、そして使いやすさを、ほんの一割でも備えたインタラクティブミュージックプレイヤーを自前で実装するには、何週間ものプログラマー時間が必要だと思います。
ローカリゼーション対応
インタラクティブミュージックと同様に、ボイスオーバーのローカリゼーションも普通のゲームエンジンの弱点であることが多いです。一方、Wwiseは驚くほど簡単にできます。名前が合致するアセットをドラッグしてきて、インポートする時のダイアログボックスでランゲージ(言語)を設定すればいいだけです。コーディングの観点からは、ファンクションコール1つで言語を設定できます。
プラットフォーム対応
クロスプラットフォーム開発は、一般的に普及しているエンジンが特に強い分野であり、オーディオに関しても同様です。そのような中でもWwiseを使えば、ShareSets(下記参照)で個別レベルでも全体レベルでも圧縮やフォーマット変換などを総合的に制御できるので、プラットフォーム別のコンテンツの最適化を素早く効率的に行う上で欠かせません。
Soundcasterを使ったプロトタイプ作成
Wwiseを設計するにあたり常に目標としているのが、サウンドデザイナーができる限り自分で音の動きをコントロールして、ゲームコードへの依存を最小限に抑えることで、サウンドを自由自在に操れるようにすることです。ウェポンが発射された時、ゲームはEventをWwiseに送るだけです。その後に何が起きるのかは、サウンドのレイヤリングであれ、ランダム化であれ、構成サウンドの並べ替えであれ、場合によっては他のサウンドを左右させることでさえ、全てサウンドデザイナーの手で行われます。
サウンドデザイナーはSoundcasterで、ゲームに組み込む前からゲームのインプットをシミュレーションしたり、ゲームよりも細かく条件を制御したりして、音の動作をオフラインでテストできます。つまり、オーディオとコードの依存関係を切るという考え方に基づいて、コードが全く書かれていない段階でも設計したサウンド実装をテストできるのです。その結果、早くプロトタイプ環境の中で何が使えるのかを明確に判断して、時間やコストのかかるコード反復を回避できます。
ShareSets
ShareSetsこそ、Wwiseの中でも価値が見落とされがちな機能の1つです。ShareSetsは、Attenuations、Modulators、Effects、Conversion Settingsなどで繰り返し使える設定だと考えてください。確かに聞こえはスマートでないですが、軽く見ないでください。これを使えば、全体の大幅な修正や詳細レベルの微調整などをサウンドデザイナーがとても効率的にできるのです。
プラットフォーム毎の最適化などが、良い例です。例えば、ゲームのリリース段階で、PS4のSoundBankがどうしてもメモリ制限に収まらないとします。「4MB分を削ってほしい」と言われたら、さて、どうしますか?ShareSetsを使えば、このプラットフォーム全体の圧縮設定を調節できます。または、ある種類のサウンドをひとまとめにして、一括して圧縮率を増やしたり減らしたり、ダウンサンプルしたり、極端な例では強制的にモノにしたりして、音質とメモリ消費のバランスを調整することも可能です。
同様に、同種サウンドをひとまとめにして、Attenuation設定の対象とすれば、サウンド数の多い少ないにかかわらず、1つのサウンドで何かを変えた場合に、他のサウンドでも希望通りの場所で同じ変更を適用させることができます。
これは、時間、作業効率、そしてプロジェクト管理上でも、多大なメリットがあります。一番恩恵を受けるのはサウンドデザイナーです。Wwiseを使えば、サウンドデザイナーは全ての時間をオーディオ品質の向上だけに費やせ、あちこちの設定を確認したり、調整してテストしてそしてまた調整するような作業を回避できます。
まとめ
では、Wwiseを導入した場合のプロジェクト全体のメリットは何でしょう?一言で言うと、サウンドデザイナーの時間をかなり節約でき、効率的なワークフローでコンテンツを作成したりプロジェクトに優れたサウンドをもたらしたりして、付加価値に直結する作業に集中できます。また、サウンドデザイナーが独自にコントロールしてクリエイティブな機能を使いこなすことでコードを書く時間を最小限にして、プログラミング担当者の負担を数週間、あるいは数か月分も減らして、浮いた時間を効果的に使えば、あなたのゲームやプロジェクト全体が確実にベストな状態に近づきます。
コメント