コロナ禍の影響を受け、オンラインに移行して開催されたGDC Summer。2020年8月4日(火)から6日(木)まで開催された本カンファレンスから、CGWORLD読者にとって注目度の高いトピックスを厳選してお届けする。第2弾では2019年末に発売され、全世界で高い評価を得たアクションアドベンチャー『CONTROL』のプロシージャルな破壊表現のしくみについて紹介する。なお本講演はGDCVaultで動画ビデオが無償公開されている。
●関連記事
『Sky 星を紡ぐ子どもたち』のアートワークはこうして生まれた~GDC Summerレポート(1)
INTERVIEW_小野憲史 / Kenji Ono
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada
プロシージャルな破壊表現を少人数の開発チームで実現する
PlayStation5とXbox Series Xの発売を年内に控え、リアルタイムCGのクオリティアップが期待されるゲーム業界。こうした中、2019年末に発売されたアクションアドベンチャー『CONTROL』は、ゲーム内容もさることながら、その卓越したビジュアル表現で注目を集めた。リアルタイムレイトレーシングにいち早く準拠しただけでなく、机・椅子・ソファなど、様々なオブジェクトを自在に投げつけて攻撃できるなど、プロシージャルな破壊表現を存分に盛り込んだのだ。
ゲームは三人称視点のアクションアドベンチャーで、舞台は異世界の脅威に侵食された米ニューヨークの秘密組織FBC(Federal Bureau of Control)。プレイヤーは新米局長のジェシー・フェイデンとなり、様々な脅威に立ち向かっていく。オブジェクトを敵に投げつけたり、瓦礫で壁をつくって敵の攻撃を避けたり、空中浮遊をしたりと、多彩な超能力アクションをくり出せる点がポイントだ。様々に形を変える銃器をカスタマイズすることも可能で、心強い相棒になってくれる。
本作を手がけたのはフィンランドの開発会社、Remedy Entertainmentだ。同社は『マックス ペイン』(2001)、『ALAN WAKE』(2010)、『Quantum Break』(2016)などの開発で知られ、20年以上の歴史を誇る老舗スタジオ。中でも最新作『CONTROL』はゲームデベロッパーズチョイスアワード(GDCA)2020の大賞にノミネートされるなど、全世界で高い評価を得た。理由のひとつがフォトリアルなグラフィックで、NVIDIA RTXによるリアルタイム・レイトレーシングをステージの表現で採用。次世代の映像表現を先取りしたタイトルになっている。
「Destructible Environments in 'Control': Lessons in Procedural Destruction」と題して本セッションを行なった同社のヨハネス・リヒター/Johannes Richter氏は冒頭で、「ゲームの照明は映画のような雰囲気で、それがゲームの世界観に求められていました」と述べた。理由のひとつがゲームの舞台となるFBC本部だ。建物が異世界の侵略と関係があり、生き物のように刻々と形状を変化させる設定になっている。これがグローバルイルミネーションや反射効果と相まって、高い没入感につながっているのだ。
もっとも、フォトリアルな影像表現はゲームプレイとの矛盾を引き起こす。いくら現実そっくりに見えても、ゲーム世界は「何でも触れるわけではない」からだ。そこで鍵を握るのが、激しいアクションをベースとしたゲームデザインとなる。目の前に敵がいたら、のんびりと室内を探索している暇はない。その一方で机や椅子やコンピュータなど様々なものを投げつけ、破壊できれば、ゲーム内環境とインタラクションしたいというプレイヤーの目的を、多少なりとも叶えられるからだ。
「粒度の原則」に支えられたエフェクト制作
リヒター氏ははじめに「粒度の原則」という、エフェクト制作の原則を紹介した。過去の制作体験から導き出したもので、映像業界を経て2019年にゲーム業界に転身したリヒター氏にとって、この原則はゲームも映像も関係なく、等しく当てはまるものだ。「自然は巨大な物体から、塵や煙などに至るまで、滑らかに続く連続体のようなものです。そして、この豊かなグラデーションをつくり出すために、アーティストは常にそれらを粒度化したいと考えています」。
これをゲームエンジン(同作は内製エンジンのNorthlight上で開発された)上で実現するために、エフェクトが3段階に分けて実装されている。第一層が大きめの破片や、机や椅子などの小道具類だ。これらは物理エンジン下の剛体(リジッドボディ)シミュレーションで表現される。第二層はより小さな破片類で、パーティクルやリジッドボディヒエラルキー、デカールで表現される。最後に火花や炎、粉じんなどはビルボード上での連番アニメーションや、パーティクルで表現されるといった具合だ。
続いてリヒター氏はワークフローについて紹介した。もっとも、他のゲームと特別ちがったことをしているわけではない。まず背景アーティストがスタティックな(固定された)ステージを作成する。その上にゲーム中で動かすことのできるアイテムやオブジェクトを配置していく。その後、これらのデータがVFXチームに送られ、破壊可能な形にセットアップされる。最後にデータをゲームエンジンにインポートし、テストプレイを重ねて修正していく、というものだ。
「もっとも、ひとつだけちがった点があったとしたら、これらをプロシージャルなアプローチで行なったことです」。リヒター氏は講演でこう続けた。ちなみにリヒター氏いわく、ここでいうプロシージャルとは、「ルールに基づいて世界のデータを処理し、解釈する」ことだという。
例えば、あるオブジェクトがあったとして、それはどのような材質の組み合わせでできているか。その結果、オブジェクトを破壊するとどのようなことが起きるか。このように、オブジェクトを構成する最小単位を決めて、そこにメタデータを設定し、全てをその組み合わせで表現する。このようにルールに基づいて世界を表現することで、世界で起きうる全てのことに反応できるようにする......こうした原則が『CONTROL』では貫かれていると述べた。
裏を返せば本作は「Material(材質)ドリブン」のゲームということになる。これにより武器でステージを攻撃すると、材質によって様々な変化を見せる(コンクリートはコンクリートらしく、木箱は木箱らしく、ガラスはガラスらしく破壊される)ようになった。さらに複数の材料で構成されたオブジェクトを攻撃すると、それぞれの材質ごとに異なった破壊表現を見せ、それらが互いに連携する(パーティクルやデカールも表示される)という、複雑な表現を可能にしている。
もっとも、あるオブジェクトに対して破壊行動を続けると、どんどん細分化されていき、最後は塵になる......というわけではない。他のゲームと同様に、オブジェクトは最初から破片の結合体として構成されている。そして破片間は結合体で互いに結合されている。こうしてできたオブジェクトが複数集まって、階層構造を取り、机などのアイテムをつくり上げている。破壊のシミュレーションはHoudini上で行われた後に、メタデータとメッシュデータがゲームエンジンに送られるしくみだ。
[[SplitPage]]ゲーム体験を向上させる最適化の数々
セッションの後半では本作で用いられた最適化の手法について説明が行われた。どれだけリアルな爆発が起きても、それで処理落ちが頻繁に発生するようでは、ゲームの体験が低下してしまう。そのため、グラフィックとゲーム体験のバランスを取ることが重要で、本作においても様々なテクニックが用いられている。
最も基本的なテクニックとして挙げられたのが、画面上で飛びかうオブジェクトのうち、衝突判定を行うものを限定することだ。リヒター氏は「画面上でアクティブなリジットボディをもつオブジェクトは、常時200個以下になるように制限されている」と述べた。そのため画面外に飛び出たオブジェクトは、そのまま消滅させるなどしている。他に大規模な爆発が起きたときに、オブジェクト間で衝突遅延を発生させたり、リジットボディを一時無効にしたり、といったテクニックも多用したという。
また、『CONTROL』の世界では現実よりも、格段にアイテムや破片が跳ね回る回数が抑えられている。プレイヤーの立場からいえば、それらはゲームプレイの障害でしかないからだ。
炎や粉じんなどのパーティクルを多用することも、処理負荷を抑えつつ、画面の密度感を高める上で重要だった。前述のように本作では1つのアイテムが複数のオブジェクトや破片の集合体で記述されている。その上で、個々の繋がりが破壊されたときに、そこからパーティクルが飛び散るように設定された。その後、元となったオブジェクトを画面から文字通り「消す」ようにした。これにより、まるでアイテムがバラバラになったかのように感じさせることができたという。
他に本作ではテクスチャ(デカール)による破壊表現も多用されている。主に床や壁などの、実際には破壊できない部分に対して用いられるもので、攻撃の結果で日々が入ったり、凹んだりしたような表現ができる。デカールはHoudiniやSubstance Painterで作成され、プレイヤーの行動に基づいて動的に表示される。このように本作の破壊表現はリジットボディとパーティクルとデカールの合わせ技で構成されているとリヒター氏は説明した。
リジットボディのみ
リジットボディ+パーティクル
リジッドボディ+パーティクル+デカール
もっとも、全てがこの原則でつくられているわけではない。特別に手が加えられたアイテムも存在する。ノズルから消化剤をまき散らしながら空中を飛び回る消化器、モニタから火花を発生させながら壊れるコンピュータ、攻撃するとクルクルと回転するホワイトボード......これらはプロシージャルな階層構造とは別に、特別につくられたアイテム類だ。これらが渾然一体となって、おもちゃ箱をひっくり返したような本作ならではのゲーム体験が演出されている。
プロシージャルな破壊表現を行う上で重要な4要素
最後にリヒター氏は、これまで述べてきたようなプロシージャルな破壊表現を実現する上で求められる、開発環境のあり方について解説した。キーワードは「ジオメトリの品質向上」、「命名規則の遵守」、「一枚岩な破壊ツール」、「パフォーマンス測定」の4点で、各々が互いに関連性をもって影響を与えているという。
「ジオメトリの品質向上」とはデータの一貫性を保つという意味だ。いくらプロシージャルな破壊表現を行うといっても、元となるデータの記述方法に誤りがあれば、結果が間違ってしまうのは自明だ。ただし、実際には尺度が間違っていたり、マテリアルの割り当てが間違っていたり、タグ付けが間違っていたりと、細かい問題がつきまとう。これらを防ぐためには、パイプライン全体の標準化と事前チェックの徹底が重要になる。ツールのUIを改善するなどの施策も重要だ。
「命名規則の遵守」では、ファイルやデータに開発者が自分で名前を付けさせてはいけないと指摘された。「ジオメトリの品質向上」と同じく、人間は必ずミスをおかす生き物だからだ。これを防ぐために、できる限りツール上で自動化するようにパイプラインを整備するというわけだ。あるツールが吐き出したファイル名を、そのままツール間で使用するようにするのが、最も効率が良く、ミスの発生も防げる。そのためには、何らかの統一されたメタデータ生成のAPIが求められるという。
「一枚岩な破壊ツール」では、ツールの機能を拡張していくことで便利になっていくことと、それによってツールの見通しが悪くなり、保守運用の費用が増していくことのバランスの重要性について指摘された。本作の破壊ツールはHoudini Digital Assetとして制作され、ゲームエンジンと連携するようにデザインされている。これにより、2年間の間に20回ものアップデートがあっても、一貫したメンテナンス性と柔軟性を保持することができたとした。
最後に「パフォーマンス測定」で、『CONTROL』の開発でも、これが大きな課題として残った。
一般的に画面上の動的なオブジェクト数はパフォーマンスと反比例し、ゲーム体験と正比例する。そのため経験の乏しいレベルデザイナーは、ゲームを少しでも面白くするため、ステージに机や椅子やコンピュータなどのアイテムを、どんどん載せていきがちだ。その上で手榴弾を投げる敵が配置されたら......あっという間にパフォーマンスが低下する。「プロジェクトの終盤でなければ全体像がわからず、事態に対応できないため、これは非常に難しい問題です」とリヒター氏もコメントする。
対策とされたのが、「パフォーマンス指標の改善」と「テストの自動化」だ。また、ゲームの特定エリアのみをゾーニングして、特別な指標を設定したり、対応策を行うことも効果的だという。もっとも、本作では自動テスト機能が導入されることはなかった。そのためレベルデザインのイテレーションにあわせて、何度もテストプレイを繰り返し、パフォーマンスやゲーム体験をチェックする必要があった。これについては今後の課題だとした。
最後にリヒター氏は「『CONTROL』の開発では難産な部分もあったが、総じて高い評価を得ることができた」と振り返った。特にゲームの全体的な雰囲気や、部屋中を破壊できるユニークな体験について高い評価が得られたことは、自分たちが注力した部分でもあるため、大いに満足しているという。
また、本作はRemedyがNasdaq First Northに上場した直後のタイトルであり、完成までに7年かけた『ALAN WAKE』や、5年かかった『Quantam Break』に対して、3年以内に3,000万ポンド(約41億円)で完成させることが求められていた(Wikipediaより)。そのため、より少人数のチーム編成になったという。これをカバーしたのが内製エンジンを主体としたワークフローだ。こうした経緯もあり、ゲームエンジンチームとVFXチームに対する感謝の言葉とともに、講演が締めくくられた。