どのビデオゲームシリーズでも、新作は、前作より進化を遂げた形で発表される。ゲリラ・ゲームズはKillzone 2において、Houdiniを使用してフラクチャリング(破砕)やクロスシミュレーション、地形生成を行い、よりリアルなゲーム内エフェクトを追加した。Killzone 3では、前作以上にスケールの大きい、ずば抜けた、さらに迫力のあるゲーム背景を作り上げ、ゲームのクオリティを一段と向上させた。

ゲリラ・ゲームズは再びHoudiniを用いて、浮遊する氷山、廃れた石油リグ、氷で覆われた海岸線に打ち付ける、パワフルで極めてリアルな波浪を生成した。プロジェクトは段階的にアプローチされ、最終的に、プロトタイプ、リアルタイムアニメーション/事前アニメーション、Houdini Oceanによる事前アニメーション、副次的エフェクト、他用途でのより幅広い活用と、いくつかのステージに分類された。完成時には、今後のプロジェクトにおいても活用可能な、高度な波浪生成ツールが完成した。

プロトタイプ フェーズ

プロセスはまず、ゲームエンジン内でリアルタイムにメッシュをデフォームするために、頂点シェーダ内での使用を意図した波浪のプロトタイプの作成から始まった。波浪の生成作業は、ジェリー・テッセンドルフ氏とジョセフ・ゲルストナー氏による“海水シミュレーション”にヒントを得た。トロコイド波に関するこの研究は、制作チームにとって、波浪をリアルに表現するために重要な技術的アプローチ法を示すものであった。

意図した表現を実現するうえで必要な波の数を把握するために、VEXを基盤とした単一波長を表すボリュームオペレータが作成された。VEXコードを用いてサーフェスオペレータを作成したのは、コード作成チームがゲームエンジン上で波長のプロトタイプを複製しやすいようにするためだった。

 

迫真の海洋表現に必要な波の数を制限するために、独自の単一ゲルストナー波のサーフェスオペレータに正弦関数と余弦関数を加えることで規則的な波のパターンから脱却し、クオリティの高いリアルな表現が実現できた。

リアルタイムアニメーション/事前アニメーション フェーズ

波浪のプロトタイプが終わると、波の跳ねかえり、波しぶきや泡などの副次的エフェクトの考察が始まった。

このようなエフェクトについて、ゲームエンジンにかかるリアルタイム処理の負荷が高くなる懸念や、コード作成チームがこうした細部にリソースを費やすことを好まないなどの懸念があった。しかし、副次的エフェクトの重要性を認識し、新しいタイプの効率的なジオメトリオブジェクトを開発し、頂点カラー、頂点法線、UV頂点など、事前にアニメーション付けされた頂点デフォメーションを、ゲームエンジンで再生できるようにした。

この調整は功を奏し、海洋エフェクト以外にも活用できる新たなゲームエンジン機能をエフェクトアーティストにもたらすこととなった。また、コード作成チームは、エフェクトに関わるあらゆる意匠決定をゲームエンジン上で複製できるようにすることよりも、メモリ使用量の最適化やゲームのパフォーマンスと安定性の向上に専念できるようになった。

Houdini Oceanの事前アニメーション

Houdiniの卓越したデフォメーション機能は、ゲリラ・ゲームズのアーティストにとって好都合であった。VEXを基盤としたサーフェスオペレータは、頂点シェーダに非常によく類似していて、特に他のオペレータと併用する際など、自由度が高く、アーティストがゲームに付加価値を与えることができると判断できた。

「頂点カラーアニメーションは、Houdiniのずば抜けて得意な分野です。なぜなら、アニメーション付きの頂点カラーはペイントできないということに、静的頂点カラー作成時に気が付いたのですから。」ゲリラ・ゲームズでシニアビジュアルエフェクトアーティストを務めるベン・スヒレイヴェルス氏は言う。

 

それからというもの、海のリアルタイムパフォーマンスについての懸念はなくなった。寄せては返す波を海岸線環境に合せながら、各ポイントをレイトレースして最寄りの海岸線のサーフェスとの距離を測った。この距離値は、別のゲルストナー波への入力の一つとして使われた。リアルタイム設定で、距離値を頂点カラーチャンネルのひとつに保存して、リアルタイムでゲルストナー波を適用することもできたが、頂点カラーチャンネルには制限があり、これらはシェーダの制御に使用するためにとっておきたかった。

必要な解像度に合わせてポリゴン数を最小限に抑えるために、格子ジオメトリは使用しなかった。その代わりに、Scatterノードを用いて、プレイヤーが歩ける場所からの距離に基づいた密度によってポイントを分散させた後、Triangulate 2Dノードを使って、そのポイントを三角形ポリゴンに繋いだ。ゲームエンジンでの処理が可能な海のポリゴン数の限界は20,000〜30,000ポリゴンであったから、このゲーム内の海の大部分は、およそそれくらいのポリゴン数に収まっている。

頂点カラーの生成においても、Houdiniは、リアルタイムソリューションに比べて、より多くの選択肢をチームに与えた。彼らのゲルストナー波のVEXオペレータは、すでに波の前面と後面を区別するのに役立つカラー値を提供できていた。これとともに、サーフェスオペレータを使って曲率を算出し、尖った波頭を見出した。

「フィードバックループ設定を用いて、ディスクにジオメトリファイルを書き込み、次のフレームでそれを読むことにより、頂点カラーを処理しました。」ベンは言う。「このプロセスを繰り返すことで、波頭に新たな泡を追加しつつ、全フレームでの全体的な泡の値は減少させて、波頭の後ろに残る泡の痕が、数メートルたなびいて消散していくといった表現が行えたのです。」

さらなる副次的エフェクト

「ゲームエンジンで走らせてみると、海と他の構成要素との統合に、まだ何かが欠けているような気がしました。」ベンは言う。「ひとつひとつの波浪がどのタイミングでどの場所に現れるか正確に把握していましたから、波が岸に打ち寄せるタイミングに合わせて、パーティクルエフェクトを生成することができました。」

パーティクルの生成にあたり、イベントのタイムラインを示すシーケンスと海を同期させる必要があった。このシーケンスは、キャラクタアニメーションやパーティクルエフェクト、フルスクリーン表示での色補正、あるいはPlayStation®用のコントローラの振動フィードバックなどをトリガするイベントをサポートする。

波が岸に打ち寄せてできるしぶきのために、波浪と海岸線に合った特定の位置とフレームに、何百ものパーティクルイベントを手作業で作成することを余儀なくされたかもしれなかった。この作業を簡略化するために、Houdiniからダイレクトにシーケンスファイルを作成するエクスポータが書かれた。Houdiniのジオメトリに加えて海のデフォメーションもMayaを介して受け渡され、ゲームファイルフォーマット形式で出力された。

 

「パフォーマンス制限内に収まる適切なイベント数を見つけるのはHoudini内では、密度や時間間隔といったより高度な制御によって、比較的容易に行えました。」ベンは説明する。「Houdiniを通じて、波しぶきだけではなくその他の表現にも活用可能な、非常に柔軟性に富んだシステムを最終的に構築することができました。このシステムにより、あるフレームでそのフレームにおいてHoudini内に存在するすべてのポイントに対して、イベントを作成することができます。作成されたイベントは、その位置情報としてポイントの位置を使用し、カスタムアトリビュートは、向き、実際のパーティクルエフェクトへのファイルリンク、およびパーティクルイベントの他のアトリビュートとして使われました。」

チームは前に、ダイナミックオペレータとリジッドボディシミュレーションをMayaに出力し、そこからシーケンスに出力するシステムを開発していた。このシステムは本来、崩壊する建物を制作するために作られたものだが、Killzone 3では、水面に浮かぶ氷塊の作成に再利用された。

まず、変形する海のメッシュが個々の四角ポリゴンを移動させる設定を作成した。それぞれの四角ポリゴンは浮かんだ氷塊の動きに追随するように、各ポイントのスプリングコンストレイントを作成する、カスタムのダイナミックオペレータに入力されたあと、対応する氷塊に繋がれた。

スプリングコンストレイントとはリジッドではないのと、シミュレーションが各部品の質量を使っていたので、作成された物理アニメーションは極めて流動的に見えた。このアニメーションはループされなければならなかったので、シミュレーションを3サイクルで走るように設定し、真ん中だけを取り出した。こうすることで、アニメーションの開始と終了をブレンドさせる必要がなくなった。

スコープ

4つの海のジオメトリを合計すると、その面積は実に5㎢の広大な範囲にわたった。これに、さまざまなカットシーンやマルチプレイヤーモード用の6つの海を加えると、このゲームに要された海の数は10に及んだ。

海のツールがいったん整うと、ゼロから新たな海を作るのに1日もかからず、厳しいスケジュール制約のもとでうまく機能した。

デフォメーションシステムも、ゲームのいたるところで活用された。Killzone 2には、ペトルサイトという、周辺に電場がある一風変わった燃料が出てきた。Killzone 3では、Houdiniを用いて、この燃料の見た目に改良が加えられた。

 

「自然なエフェクトでしたが、アートディレクタは、ペトルサイトに周辺探査をさせて、捕食的なイメージを持たせようとしたのです。」ベンは言う。

アーティストはノイズを使っていくつかのカーブをアニメーションし、近づいた周辺物にカーブをスナップさせた。その後、ワイヤソルバを用いて自然で流体的な動きを加えた。カーブはポリゴンストリップに変換され、カーブ上の各ポイントの速度によって頂点カラーがアニメーションされた。周辺物にスナップしたカーブは、色も変化するというわけだ。頂点UVもアニメートされ、シミュレーションによって生じたストレッチが補正された。

「このデフォメーションシステムは、今後間違いなく、より多くの用途で活用されるでしょう。将来的には、ゲームエンジン内での可能性を広げたいと思っています。」ベンが付け加える。「このゲームの制作終了後も、システムは使い続けています。その証拠に、私たちはすでに、このシステムを使って大きな煙雲を制作したのです。PlayStation Network ©からダウンロード可能なRetro Pack DLCの中で見ることができますよ。」