- Part 1. 拡張できるサウンドへ
- Part 2. Crowd Soundboxシステム
- Part 3. 追加レイヤ
Planet Coasterは、世界一のジェットコースターのあるテーマパークを建設して管理しながら、自分の作品を世界中の仲間とシェアできるゲームです。これはFrontier Developmentsの今までのゲームの中でも、最も意欲的で技術的に進化したシミュレーションゲームです。Planet Coasterのコミュニティがゲームを前進させる中、Planet CoasterのSteam Workshopには既に10万件を超える作品が投稿され、発売以来、何度もアップデートされているこのゲームは、近日さらに更新予定です。
Planet Coasterの中心となるのが、来園者であるゲスト達です。ユーザーが作成したパークにゲストたちが押し寄せると、来園した人々の気分や雰囲気が美しく描かれたアニメーションによって表現されるので、一目で自分のパークの人気具合が分かります。ゲスト達は、パークの「心」を視聴覚的に表現してくれるだけでなく、ジェットコースターのテーマパーク体験を1対1でシミュレーションしてくれる生命線です。ゲスト無しでは、アトラクションに乗る人も、ファーストフードを買う人も、トイレに入る人も、パーク全体に躍動感を与えてくれる人も、存在しません。ゲスト一人ひとりがお金を使い、意見や好みを主張して、自分の好き嫌いによってユーザーが作った景色やアトラクションを判断できるのです。
本物のテーマパークと同様に、Planet Coasterのパークも、要となるのはお客様の「感動」です。ジェットコースター音や花火の打ち上げ音が鳴り響く中、ゲストがワクワクしたり怖がったり大喜びしたりする声が聞こえてきます。本物のジェットコースターに乗るゲストの音を遊園地で録音することで、Frontier Developmentsのオーディオ実装のアプローチは刷新されたので、その様子を3回に分けてブログで詳しく説明していきます
はじめに
私たちは、Audiokineticの依頼でPlanet Coaster のオーディオに関するブログ記事を書き始めた時から、Crowd(群衆)Soundboxシステムを話の中心にしようと決めました。内容を具体的に絞り込んだのですが、それでも4,000ワードのブログに成長してしまいました!踏み込んで説明したブログを3つに分けることができて、Audiokineticに大変感謝すると同時に、読者の皆様の進行中や計画中のプロジェクトのお役に立てれば、嬉しく思います。
- Part 1. 拡張できるサウンドへ
- Part 2. Crowd Soundboxシステム
- Part 3. 追加レイヤ
PLANET COASTER - 群衆オーディオ PART 1
拡張できるサウンドへ
Planet Coasterは真のトリプルA級のシミュレーションゲームで、Frontier Developmentsの独自ゲーム開発テクノロジーCOBRAを使ってビルドされています。当初からPlanet Coasterの魅力の1つが賑やかでリアルな群衆(crowd)であると考えて、Frontier Developmentsのアニメーションチームは、手の込んだ細かいゲストのリアクションを作るつもりでPlanet Coasterに大勢の群衆を登場させ、同時にFrontier Developmentsの品質ベンチマークを達成させる考えでした。Planet Coasterの群衆の音も、ビジュアルと同じくらい生き生きとさせたかったので、オーディオチームとしては直感的に、素晴らしいビジュアルに音を全て同期させて、開発チームの他のみんなが目指すであろうベンチマークに見合うサウンドを出すつもりでした。
ただ、膨大なゲスト数に対応しながらサウンドを効率的に管理する必要があり、アニメーションフレームでトリガーするソリューションやゲスト対エミッタ―の一対一の関係に頼ることは、すぐに不可能と判断されました。
リードプログラマーのアンドリュー・チャペル(Andrew Chappell)がプリプロダクションで端的に指摘した通り、「今までのオーディオのつくり方は、Planet Coasterで計画している群衆では、使えなくなるよ。」
私達はこれを機会に、今までのゲーム開発で慣れ親しんできたオーディオシステムを見直して、エミッタ―の配置をもう少し積極的に考えつつ、Wwiseにはプレイヤーに聞こえる仕事だけをさせようと思いました。
Planet Coasterでは、まさにオーディオへのアプローチを変える必要があったわけです!
プリプロダクションのホワイトボード。Frontier Developmentsでは、ほとんどのオーディオプロジェクトがホワイトボードで誕生。プロジェクト要件、実用的な例、ブレインストーミングセッションなどを一覧にしてから、ガイドラインをひと通り洗い出す。.
オーディオのプリプロダクション段階で活発に話し合ったのは、ゲームのことや、音が必要となる大量のオブジェクトの扱い方の問題についてでした。チーム内で、どのような状況で何を聞かせたいのかを話し合いましたが、同時に他の部署とも話し合って、よく彼らの話を聞いたことが、役に立ったのかもしれません。
その結果から自分たちのガイドラインを抽出して、テーマパークのサウンドスケープに何が必要なのかを形作っていきました。
サウンドスケープ(音楽とオーディオ)は、パークのつくりの情報に基づくこと(ユーザーの創造力を補強すること)。サウンドスケープは、ダイナミックで応用が利きインタラクティブであること。
サウンドスケープは、上記2つのルールを適用できない場面を除き、diegeticであること。
そして、コードやWwise経由で行った実装は、必ず拡張可能であること。
これらのガイドラインは、開発で使った全てのシステムで私達のアプローチに影響を与えました。例えばジェットコースターで、単純な「ジェットコースターループ」を使ってしまうと、ユーザーが様々な種類のジェットコースターを作成できるのに、「ダイナミックで応用が利きインタラクティブであること」のガイドラインに対応が不十分です。「ダイナミックで応用が利きインタラクティブである」ことを意識したことは、音源と、その音源周りにユーザーが作り込んだ環境との関係を、私たちが認識するのに役立ちました。
群衆にも同じルールが適用され、私達は、ガイドラインに従って以下を考慮することにしました:
パークのどこに、ゲストがいるのかパークに、何人のゲストがいるのか
パークのゲストが、今何をしているのか
つのシステムで、予想される様々な群衆の状態に満足な対応ができる可能性は低かったため、群衆用の「万能」ソリューションは最初から計画しませんでした。物事を更に複雑にしたのは、プレイヤーが巨大なパークを素早く移動する時にカメラが瞬間的に動くので、それにも常に対応できるソリューションでなければならないことです。
大量の音源候補や、ユーザーによって生成されるコンテンツの幅広い質や、カメラの動きに合わせて詳細を素早く追加したり削除したりする必要性などを意識しながら、全体のミックスを常にきれいに、ダイナミックに、豊かに維持するには?我々オーディオプログラマーやデザイナーにとって、仕事が単純で飽きてしまう恐れは決してないプロジェクトでした。
遠景から、アップまで。 様々な場面に合わせてオーディオの縮尺を調整。左上: 空のサンドボックス。右上: 複雑なテーマパークの、近接したアトラクション。左下: 間近で見る詳細。右下: 全体像。
カメラやパフォーマンスに考慮して、オーディオを「舞台」に例えて考え始めました。演劇と同様に、メインの俳優達が一番大切なキャラクターなので、彼らは同期されて、はっきり聞き取れなければいけません。メインの俳優達は舞台演出やその他の役者達に囲まれていますが、それら脇役の同期の必要性や描写のレベルは、低くなります。
このように考えるうちに、オーディオをダイナミックな前景と背景の2つのレイヤに分けることにして、前景のサウンドは同期させるディテール、背景レイヤはアニメーションに細かく同期する必要がないもののパークの内容に関する情報に従うべき「バーチャルサウンドスケープ」とします。このカメラ周りの考え方を基にプロジェクトを設定すると(コードやWwiseで)、舞台の前景と背景がダイナミックに替わります。
Planet Coasterのあらゆる難題の真っただ中にあったのが、群衆サウンド(crowd)です。群衆は、散らばっていたり集中していたりします。また、離れていたり、カメラの数メートル先にいたりします。スクリーンの視錐台(frustum)の域外から歓声が聞こえてくることも、あります。目標はプレイヤーの手作りパークからダイナミックに生成されるサウンドスケープ(配置されたアトラクションの密度や動きを認識して順守するサウンドスケープ)だったので、リアルタイム情報は、状況を表現するオーディオに常に活用されます。
最終的にPlanet Coasterでは、急なカメラの切り替えや、パークのゲスト数の増減や密集具合、ゲストの現在の行動(雰囲気)などに対応するために、2つのソリューションを組み合わせました。
Crowd Soundbox システムでデータ送信レイヤを作成して、バーチャルサウンドスケープ内の群衆全体の密度、位置、そして雰囲気をおおまかに表現します。先ほどの舞台の例で言うと、背景レイヤが、カメラポジションに合わせてダイナミックに変化して、一定数のエミッタ―によって管理されます。Close-Up Soundsシステムは、前景にいるゲスト用に個別にシンクされたエミッタ―を作成して、そこまで細かく見えるくらいにカメラが近づいている時だけ、起動させます。
次回のブログでは、群衆の動力源となるSoundboxシステムについて、詳しく見ていきます。
コメント