View Static Version
Loading

『FarCry5』制作陣が達成したHoudiniを用いた地形自動生成とは?Part 1 Borndigital Houdiniマスタークラス「PROCEDURAL WORLD GENERATION IN FAR CRY 5」レポート

Text 小野 憲史

実写と見間違うかのようなリアルなステージを実現。

Ubisoftの看板ゲーム『FarCry』。中でも最新作の『5』は、米モンタナ州の雄大な大自然をゲーム中でリアルに表現したとして、高い評価を得た。1キロ四方で60万株の植物群がプロシージャルで配置された本作の開発には、Houdiniが大きな貢献を果たしている。9月21日に開催されたボーンデジタル主催のカンファレンスで、同社テクニカルアーティストのEtienne Carrir氏はHoudiniを活用した開発パイプラインについて詳細に解説。最新の自動生成技術によるステージ制作法について示した。

Etienne Carrier (Technical Artist, Ubisoft)

SFやファンタジー世界ではなく、現実世界の広大な大自然を舞台に激しい銃撃戦を繰り広げる『FarCry』シリーズ。ゲームシステムはFPS(一人称視点シューティング)で、プレイヤーの眼前に広がるステージは、ゲームのプレイ体験を特徴づける大きな意味合いを持つ。中でも2018年3月にPS4・Xbox One・PC向けに発売された最新作『5』は、米モンタナ州の架空の地域ホープカウンティを舞台としており、シリーズで初めて実在の国を舞台としたタイトルになった。

もともと保守的な土地柄だった上に、今では麻薬と暴力でカルト教団「エデンズ・ゲート」に乗っ取られてしまったホープカウンティ。プレイヤーは外部から派遣された警官となり、レジスタンスのメンバーと共に、「ファーザー」を称するジョセフ・シードや、その部下達と敵対していく。ゲームは約70平方キロメートルにもおよぶ広大なフィールド上で展開し、総面積は山手線内の内側(69.52平方キロメートル)を凌駕する。フィールドは70個のステージ(1024メートル四方)に区切られ、これが70個存在する。ゲームの展開に応じて、このステージが一つずつメモリ上に読み込まれていく仕組みだ。

これだけの広さのフィールドを現実に近いフォトリアルな描写で実現するために、本作のフィールドには大量のオブジェクトが配置されている。森や草花といった植物群は好例で、1ステージあたり60万4824株、合計で4233万7680株のオブジェクトが配置された。これを可能にしたのがHoudiniによる自動生成で、ステージの根幹をなす地形や、道路・フェンス・電線といった小物も同様だ。本講演においても、Carrir氏は崖と植生群の自動生成方法を重点的に解説した。

プロシージャルが徹底的に活用された地形生成

本作のようなオープンワールドのゲームでは、地形データがゲームのプレイ体験と密接に関係する。そのため開発中は頻繁に作り直しが行われ、本作でもフィールドが固まるまで年半かかったという。土台となる地形が変更すれば、それに従って上物(ここでは植生群や道路などすべて)が変更されるため、各データの効率的な管理が課題となるのは明らかだ。そのため本作においても、当初は森林などをマニュアルで配置していたが、ツールが完成するにつれて、徐々にHoudiniを用いた自動配置に移行していったという。

画像をクリックすると大きく表示されます

これらは『FarCry5』制作で使われた内製のDUNIA2エンジンと、HoudiniおよびHoudini Engineの連携によって実現された。なお、開発中は90台のビルド用サーバーを連日稼働。合計で30人にも及んだレベルアーティストがローカルPCで作成したデータをサーバー側に吸い上げて、毎晩ベイクとビルドを行い、常に最新の地形データで作業が継続できるようにしたという。また、各々のステージには重複部分を設け、境界が自動的に自然な形で連結されるように配所。これによって複数人で同じステージが修正できるように対応したと述べられた。

本作で開発されたツールは、基本となる地形エディタに加えて、「川と湖」「フェンスと電線」「崖」「植物群」「ワールドマップ」生成用の6エディタだ。いずれもHoudini Engineとの連携を通して、DUNIA2エディタ上で操作し、各データがプロシージャルに生成できるように配慮された。なお、1つのステージ(1024メートル四方)はセクション(64メートル四方)、セクター(256メートル四方)という、より細分化された単位で分割。個別にカメラ直下、またはカメラから見える範囲で生成されたプロシージャルデータを焼き付けることができた。

ちなみにDUNIA2エンジンとHoudiniエンジンの接続は、テクニカルアーティストではなく、専任のプログラマーが担当した。また、ツールの開発は6~7人のプログラマーが担当。その上でCarrir氏をはじめとしたテクニカルアーティストが、補助的なツールを制作したり、レベルアーティストやレベルデザイナーをサポートしたり、ツールのドキュメントを作成したり、といった業務を担当したという。

画像をクリックすると大きく表示されます

パイプライン上では、DUNIA2エンジンからHoudini側にワールド情報・地形データ・ハイトマップ・ジオメトリデータなどが送られる。これに対してHoudiniからDUNIA2エンジンにプロシージャルで生成されたデータが返される仕組みだ。なお、この際に地形データの変更が自動的に川や湖などのデータに影響を与え、そこから植生群、道路、フェンス、電線などのデータに影響を与えるように、相互の連携がとられている。

画像をクリックすると大きく表示されます。
画像をクリックすると大きく表示されます

なお、個々のツールはエディタ上から簡単に選択でき、極力マウス操作だけで複雑な操作が可能なように配慮されている。Carrir氏はできるだけシンプルかつ直感的に操作できるようにUIを工夫したとコメント。実際にマウス操作で複雑な崖や丘陵が生成され、窪みを作れば湖や川となって水が流れ、ペイントブラシで地形をなぞればリアルな植物群が生成される様は、それ自体が一つのゲーム体験のようにも感じられた。なお、このうち崖と植生群については後半、しっかりと時間を取って解説が行われた。

リアルな崖の生成

続いてトピックはリアルな崖の生成と膨大な植物群の自動生成に移った。いずれも『5』で初めて実装されたもので、前作『4』と派生作『プライマル』では存在しなかったものだ。実際、『プライマル』まで崖は人力で作成され、マップ全体で数が多くなりすぎないように注意された。植生群の配置もランダムに木々を配置するなど、よりシンプルなものだったという。

これが『5』では舞台が米モンタナ州に設定されたことから、崖を多く配置する必要が生じた。また現世代機の性能が十二分に生かせるようになったことで、ステージが広大になり、遠方から崖が良く見渡せるようになった。これにともない植生群の数も膨大になり、崖と共に自動化を図る必要性に迫られたという。

クリックすると大きく表示されます

写真の左側が以前までの崖で、右側が『5』で実装された崖の表現だ。一見してわかるのが地層の表現で、これはCarrir氏らTAチームが狙ったものだという。具体的な作り方としては、最初に傾斜のアトリビュートを用意し、ある閾値以下の地形で表面のデータを削除して、崖用の入力ジオメトリを作成する。次に地形エディタの活用でのびきったジオメトリをリメッシュし、緊密なジオメトリ構造にする。続いて入力ジオメトリを横にスライスして、それぞれの層に着彩する。なお、リアルな地層を作るだけで、専用のツールも作られたという。

クリックすると大きく表示されます。

各々の層にはデバッグのためランダムに着彩され、IDがふられる。その後、地層を構成するメッシュにノイズを加え、より自然な形状に調整される。崖は低解像度と高解像度の2つのメッシュで分けられ、低解像度の側が高解像度の側に影響を与えることで、よりリアルな形状を醸し出すように工夫されている。そのうえで、各々のノイズの別で崖のサーフェスを二つに分離し、お互いに組み合わせることで、よりリアルな地層のラインが出るようにしている。

クリックすると大きく表示されます。

また、各地層に複数のディスプレイスメントマップを設定することで、崖の表面に凸凹が感じられるようにしている。その上で高解像度なメッシュをリメッシュしてリダクションし、ジオメトリを各メッシュにスプリット。各ステージを構成するセクター(256メートル四方)単位で1メッシュ化された。これによりゲーム中のストリーミング(プレイヤーの移動に伴って地形データをメモリ上に、その都度展開しては廃棄する行為)が効率的になったという。

クリックすると大きく表示されます。

続いてトピックは崖をいろどる地形シェーダーに移った。ここでの問題は崖に地形と同じテクスチャが使われており、そのままでは崖が崖の直下にある地面と、同じ草や質感などで覆われてしまうことだった。そのため崖から地形テクスチャを除外する必要にかられたという。そこで最終的な崖メッシュを崖の真下にレイキャストし、地形に対して崖のアトリビュートが真下の地形に提供できるようにされた。これにより、崖マスクと地層アトリビュートを設定。その後、地層アトリビュートを下の地形に転送することで、色のレイヤーと色づけの情報が地形のそれぞれの場所に与えられるようにした。なお、地形シェーダーも地形エディタによって設定できるようになっている。

ちなみに、地形の色は崖に対する頂点カラーとして使用することもできたが、2つの理由で見送られた。第1に崖メッシュがロードされていない遠景の地形につけられた色を残したかったことと。第2に崖メッシュのメモリコストの節約からだ。あわせて色のレイヤーを地形のバーチャルテクスチャとして、乗算させたかったからだとも補足された。

次に地形から転送した崖のマスクをもとに、崖がフローシミュレーションで拡張された。ポイントを崖の表面にちらして、傾斜にフローを流して新色エフェクトが実行された。この時にもともとあった地層の色は浸食をかけたあとに残されているようにしている。この浸食データをもとに岩のオブジェクトを地形上に配置。これらはポイントクラウドとして出力され、エディタ上で使用可能とした。また、地形テクスチャIDをマスクから生成し、これをもとに2つの異なる崖テクスチャをノイズとまぜあわせて、テクスチャのタイル化をわからないようにしている。

クリックすると大きく表示されます。

このほか、地形エディタには崖の上に植物を生成させる機能も実装された。生成地点の特定には、崖を構成するポリゴンを分割し、そこから上向きのメッシュのみを抽出して、その上にレイキャストを使用して空いている空間を検出することで、植物が生成可能としている。

最終的にDUNIA2エディタに出力された地形データは下記の通りだ。まず崖ジオメトリとコリジョンデータ、次にオブジェクトのためのポイントクラウド(ここでは岩と植生)、あわせて地形のテクスチャID、崖のカラーとマスクだ。こうした技術を用いることで、過去のゲームにないリアルな地形が効率的に作成された。

Part 2は近日公開となります。もう少々お待ちください。

本セミナーの動画完全版をボーンデジタルよりHoudiniをご購入頂いたお客様に対して公開しております。

Credits:

Copyright(C)2018. Born Digital, INC All rights reserved.

NextPrevious