KILLZONE2とHoudini

海外のSide Effects Softwareのユーザー事例(Customer Stories)ページで、KILLZONE2の記事を見つけました。

ここでは、KILLZONE2制作における、Houdiniの使われ方が紹介されており、どのようにアーティストの作業を効率化できたかが、語られています。今までゲーム業界でのHoudini使用事例を、あまり聞いた事がなかったので、新鮮な使い方で非常に面白かったです。

詳細は上記サイトからご確認いただくとして、なんとなく読み解いてみました。

イントロ

この記事によると、Guerrilla Gamesは当初Mayaでの開発をメインに進めていたようですが、大規模で詳細なディティールが求められる、デザインデータ開発のためのパイプラインが必要になり、Houdiniの導入を決めたようです。

Houdiniは、主にプロシージャル(手続き型)モデリング、大規模なシミュレーションのために採用されたようで、この記事では大きく4点に分けて使用事例が書かれています。

  • 背景破壊
  • インゲームクロスシミュレーション
  • 地形生成
  • その他(一部エフェクト・ダメージモデリング・大規模な剛体シミュレーション)

背景破壊

KILLZONE 2のバトルシーンでは大量の破壊物が必要になったようですが、HoudiniのForeach SOPを使用することで、ある程度ツール任せに破壊オブジェクトが作成できたようです。これによりアーティストの作業量が、一週間から一日未満に削減され、大幅な効率化が出来たと書いてあります。

Foreach オペレータの詳細が分からなかったので、調査してみましたが、下記の動画のようにノードを組み合わせて、モデリングしていく手法で、定型化された作業を、大量のオブジェクトに適応するのが主体の機能のようです。

インゲームクロスシミュレーション

ゲーム全体を通じてクロスシミュレーションは、Houdini上でシミュレーションした結果を、ボーンに焼き付けて再生しているようです。この時「強い風・普通の風・弱い風」と三段階の強さでシミュレーションを行い、ゲーム中では、特定の位置での風速に基づき、3つのシミュレーション結果の補間を行っているようです。

開発者いわく、PS3はリアル・タイムの布シミュレーションを処理するのに十分に強力だが、メモリの消費量や、膨大な量のキャラクタのスキニングがあるので、処理はそちらに回して、上記の手段を採用したようです。

地形生成

ゲームデザイナーが作った、低解像度の背景ベースメッシュを、アーティストは高解像度モデルにクオリティアップしますが、この時にもプロシージャルモデリングが活躍したと書かれていました。

アーティストは、低解像度のベースメッシュをForeachオペレータでサブディバイドし、VEXオペレータを使用して、UVの展開と、頂点カラーによる、テクスチャのブレンドを行っているようです。(この辺り、機能の実感が無いので、フローが怪しいです・・・。)

このフローを得る事で、ゲームデザインチームがベースメッシュを変更するのが可能になり、アーティストチームは、ベースメッシュの変化に対応できるようになりました。

ここから想像するに、ゲームデザイナーが編集するベースメッシュがどんなに変わっても、それを元にして、プロシージャルにモデリングを行っているので、ベースが変わっても、高解像度モデルには影響が少ないって事でしょうか。

その他

上記以外にも、ゲーム中の全ての稲妻エフェクトの作成や、キャラクタに刻まれた銃創、大規模破壊や、核爆発の剛体シミュレーションなどにも使用されています。特に銃創の制作部分では、銃弾の衝撃・方向・位置等を決めてコントロールするのに使用されたようで、一日に5体分のキャラクターの銃創作成が可能だったとの事です。

まとめ

上記の記事を読んでいると、精密で、人の手をキッチリかけないといけない箇所はMayaを使い、有機的な背景や、シミュレーションなど、人間の手では短時間で作れない箇所にはHoudiniを使う。という風に、使用箇所を見極めて使われていたようです。

ゲーム業界では、あまり聞いたことが無いツールですが、大量の背景と破壊物を用意する事が効率化できると、ゲームデザインの幅が広がるかもしれないですね。

ただ、自分はHoudiniの肝と言われているSOPや、VEXオペレーターが実感として理解できていないので、上記の記事を読んだ後も、まだデータフローがぼんやりとしています。

今回の記事で、Houdiniに興味を持ったので、ちょっとでも触っておきたいな。特にForEachオペレーターは、非常に食指が動きます。体験版あったら落としてみよう。