私たちは最近、MIGSでEmpowering Your Sound Designerという講演を行いましたが、2つの目的がありました。私たちが紹介したかったのは、リリース間近のゲームAnamorphineと同時進行で開発したオーディオツールセットと、ワークフロー全体でオーディオが担った従来にない役割についてでした。
私がArtifact 5に誘われたのはまだAnamorphineリリースの3年前で、実は彼らが助成金申請の手伝いを必要としていて、それを取得した結果、会社はシードファンディングに成功したのです。プロジェクトのサウンドデザイナーにとって特に魅力的な経験となり、これほど早い段階でゲーム開発に参加できるのはかなり珍しく、私のワークフローをメインのプロダクションパイプラインに組み込むことができたので、いつものようにサウンドワークフローを最後の方に取ってつけたのとは違いました。
その結果、私はプログラマー達と一緒にUnity-Wwiseインテグレーションの独自ツールセットをビルド、そしてイテレーションすることができ、特にインテグレーションが活発化した時期に不可欠なツールとなりした。これらのツールを“Audio Box”と名付けたコンポーネントの傘下に入れ、私はサウンドデザインやインタラクティブデザインのアイディアを思いつくと、まず音を作成してインテグレートして、自分でインゲームでテストしてから、オリジナルアセットのイテレーションに進むことができたのです。この一連のプロセスの最初から最後まで、自分のワークフローで作業できました。Unityを使って独自に進めることができたので、プログラマー達が優先順位の高い主要ゲームプレイ依存のコーディングタスクに関わっている間、後回しになりがちなオーディオタスクを待つ必要がありませんでした。一方、プログラマーも音の大量のニーズを詰め込む心配がなく、結果として、ゲームプレイと並行してシームレスにインテグレーションされた複雑で高度なオーディオシステムが完成しました。
もちろんすでにWwiseのインテグレーションツールがいくつかありますが、基本的なインテグレーションタスクだけが対象で、複数のツールやコンポーネントに分けられて入っています。Audio Boxを使うと、既存の全ての機能だけでなく追加の機能もコントロールでき、ゲームプレイの各セクションをそのままAudio Boxの様々なハブで集約して管理できます。例えば、Anamorphineはゲームの主要な仕組みとしてシームレスなシーン変遷が沢山あります。画面のシーン変遷と同じくらいシームレスに音も移り変わる必要があり、Audio Boxに集約されたコントローラ内で、複雑な変遷に合わせてオーディオを移動したり、シフトしたり、コントロールしたりできました。
それでは、実際のツールセットを説明します。
AUDIO BOX
中心的なハブであるAudio Boxにトリガーコライダーがある場合とない場合があり、ゲームオーディオ機能の複数のセクションをここからコントロールできます。Audio Boxのレファレンス先のゲームオブジェクトが、上図で紫の球体や線として示されています。
- 1つのAudio Boxに複数のコンポーネントが含まれていて、全てのコンポーネントにDelayオプションとTrigger Only Once オプションがあります。
- Delayを使うと、トリガーされるイベントにディレイ時間を設定できて、Trigger Only Onceはバグ対策に非常に便利です。
- どのAudio Boxにも多数の機能コンポーネントを入れられるほか、1つのゲームオブジェクトに対して複数のAudio Boxを設定できるので、機能セット別にAudio Boxを細かく仕分けられます。
EVENTのポスト
一番肝心なのは、Audio BoxからWwiseのEventをトリガーできることです。トリガーできるタイミングは、Trigger Colliderのとき(On Enter、On Exit)、On Startのとき、そしてAudio Boxが使う第2のツールセットであるEvent Tag System(後述)につながるOn Eventのときです。
イベントをポストできる仕組みのなかでも特にすごいのは、私がAkAmbientやAkEventのコンポーネントを使って既存ゲームオブジェクトをレファレンス先とすれば、それだけで、中にあるイベントをAudio Boxが自動的に引っ張り出して、プログラム通りにトリガーしてくれることです。1つのポストイベントコンポーネントで複数のゲームオブジェクトをレファレンス先にできるのは魔法のようで、それぞれのゲームオブジェクトが、対応するイベントをトリガーします。そうすると、例えばプレイヤーがある環境エリアに入った時にそのエリアをトリガーしたり、プレイヤーがあるゲームイベントをトリガーしたときに、いくつかのサウンドイベントをまとめたグループをトリガーしたりできます。また、“Event”ボックスのチェックを外せば、Audio Boxのドロップダウンメニューでイベントを選択して、今あるゲームオブジェクトをレファレンス先とせずにイベントをトリガーできます。
RTPCの設定
Audio Boxを使えば、RTPCを設定したり操作したりできます。パラメータ変更の絶対値と相対値を、それぞれToggle設定とAdd 設定を使ってトグルできます。コンポーネント内のゲームオブジェクトを指定するかどうかによって、パラメータをグローバルでコントロールするのか、またはあるゲームオブジェクトのスコープに限定してコントロールするのかを決められます。
StateやSwitchも、トリガーできます。
そして、ここからがおもしろいのですが、プレイヤーのポジションによってパラメータ値をシフトできる追加機能もあるのです。
Curve Over Distanceはパラメータ勾配を表し、コライダーの中央は範囲の一方の極限を表し、境界線はもう一方の極限となります。このトリガーエリアの中でプレイヤーが移動すると、パラメータ値も随時変化します。
Distance Sliderは、パラメータの両極限となる2点を自分で自由に設定できる機能で、コライダーを出た場合、パラメータの最終値がその現在値となります。
ATTACHとMOVE-TOWARD
AttachオプションとMoveオプションは、全く別の次元の機能性をもたらし、トランジション中でも、異なるシーンへでも、オーディオゲームオブジェクトを移動できるので、私がAnamorphineの作業をするときのかけがえのない存在でした。
- Attachで、私が選んだゲームオブジェクトを、同じシーンにある別のゲームオブジェクトに添付できます。
- Attach to Player で、どのゲームオブジェクトも、キャラクターコントローラがどのシーンで生きているかに関わらず、プレイヤーに添付できます。
- Move to と Move Toward Player で、あるゲームオブジェクトが別のゲームオブジェクトやプレイヤーに向かって動くようにして、そのスピードも自分で選べます。
私はこれらのツールを組み合わせて、3Dポジションを持つオーディオサウンドを、プレイヤーとの位置関係やプレイヤーアクションに合わせながら移動させることができました。
以下のスクリーンショットは、私がAudio Boxツールを組み合わせて、前のシーンのサウンドを次のシーンに溶け込ませてシームレスなシーン変遷を設定したときのものです。Attachの機能をトリガーするEvent Tagは、Trigger Exitではなくコードシーンでトリガーさせているので、プレイヤーがテレポートする前にプレイヤーに音を添付できます。この事例はMIGS動画として試聴できます。
EVENT TAGシステム
ここで説明した“On Event”トリガーは、Event Tag Systemという第2のツールセットにリンクしていて、このツールセットのおかげでインゲームの様々なトリガー、例えばアニメーションイベントやストーリーのデシジョンポイントなどに従い、オーディオのトリガーを設定できるようになっています。
Event Tag Systemはシンプルなイベントシステムで、イベントをアクションに結びつけます。Unity内のコンポーネントがタグを使って登録できるように、コンポーネント内部でイベントやアクションをサポートする必要があり、そのタグは、以下のようなパスの形式をとることが多いです:
Events / Apartment / Teleportation / Before
アクションやイベントを“many to many”(複数から複数へ)の関係に設定でき、1つのイベントまたはアクションを複数のタグ経由で登録できるほか、1つのタグに複数のアクションやイベントを関連付けることもできます。
シーン間でのクロスレファレンスはUnityで許容されていませんが、このシステムを使うと制限をバイパスできるので、ほかの制作分野のシーンセットでトリガーされるイベントとのやり取りが可能です。専門分野(アート、コード、そしてサウンド)のそれぞれのシーンセットで作業できるので、Gitのコンフリクト問題が最小限に抑えられ、複数のワークフローが共存できます。
最後に
Audio Boxはプロジェクトの進展と共に有機的に成長したものですが、音のワークフローを形成してくれる結果となり、サウンドデザイナーである私の貴重なアセットです。新しいニーズを私が思いつくと、プログラマーたちが必要に応じてAudio Boxに追加したり調整したりしてくれました。新しく調整した内容も柔軟で、当初の設計目標を果たすばかりでなく、私のワークフロー全体を改善してくれることが多々ありました。
その結果、プロジェクト初期の少量の努力の積み重ねが、時間の経過とともにチーム全体に大きなメリットをもたらし、プロジェクト全体の成長に伴走するかのように、オーディオのワークフローも効率的に機能しました。
さらに、ゲームデザインの制作前のフェーズにサウンドを引き込めたおかげで、一貫したゲームプレイ、ストーリーテリング、そしてゲームのフィーリングなどを、サウンドやその強みに耳を傾けながら決定できたと思います。開発プロセスのこれほど早い段階でAudio Boxを構築でき、具体的なゲームアイディアを注入したことで、没入感と感情があふれ、一貫性のある美意識を感じられるゲームエクスペリエンスが完成しました。
コメント