© 2019 SQUARE ENIX CO., LTD. All Rights Reserved.

昨今のハイエンドゲーム開発においては、高品質なアセットを大量に、効率良く作成する必要がある。そんな中、スクウェア・エニックス大阪支社ではHoudiniUnreal Engine 4(以下、UE4)を用いてチーム規模に拡大したプロシージャル背景制作検証を行なっている。今回はその挑戦的なワークフローについて掘り下げてみよう。

※本記事は月刊「CGWORLD + digital video」vol. 248(2019年4月号)からの転載となります。

TEXT_岸本ひろゆき / Hiroyuki Kishimoto
EDIT_沼倉有人 / Arihito Numakura(CGWORLD)、山田桃子 / Momoko Yamada

ア−ティスト主導によるプログラマブル背景制作

『ファイナルファンタジー』『ドラゴンクエスト』シリーズや先日最新作が発売された『キングダム ハーツ』シリーズなど、数々の著名タイトルで知られるスクウェア・エニックス。本社は東京・新宿に所在するが、大阪にも大きな開発力を有する支社が存在することはあまり知られていないのではないだろうか。その大阪支社では今、次代の開発フローをにらんだ検証が進められている。「大規模に人員を投入する方式の開発がこれからも続けられるだろうか、という問題意識がありました。そこにHoudiniを用いたワークフローのアイデアが提案され、今回の検証につながりました」と語るのは、エンバイロメントアーティスト / 背景リーダーの齋藤栄治氏だ。



"WASHITSU INFINITY UE4 × Houdini Procedural Environment"

本デモで制作されたシーンの多種多様なカットをまとめた動画








大阪支社背景チームのスタッフ数は現在繁忙期を終えた時期だが、量産体制が再度組まれれば規模が何倍にもスケールすることが予想される。プロシージャルの手法を取り入れることで、同規模のまま制作力を拡大するというのが今回の技術検証の眼目となる。題材として選ばれた『和室』は、当初「良い画にするのは難しい」(齋藤氏)との懸念もあったが、発案者の背景テクニカルチームの斎藤 修氏には勝算があった。「古式からモダンまで様々な様式を取り込めるのはプロシージャル向けだと考えました。また京都も近いので、取材に出かけることも可能です。そして、私がやりたかった」(斎藤氏)。

〈後列〉左から、中岡翔一氏(エンバイロメントアーティスト)、神谷 卓氏(エンバイロメントアーティスト)、齋藤栄治氏(エンバイロメントアーティスト / 背景リーダー)/〈前列〉左から、西川哲雄氏(エンバイロメントアーティスト)、斎藤 修氏(テクニカルアーティスト)、小出大翔士氏(テクニカルアーティスト)、肥塚めぐみ氏(2Dアーティスト)。以上、スクウェア・エニックス 大阪支社
www.jp.square-enix.com


制作は2018年10月から開始。取材とプロトタイプ制作を経てクオリティラインを設定し、部屋や各小物のHDA化に着手。並行して、学習コストの高いHoudiniを広くチーム内に導入するためのレクチャーを実施した。最終的にはプロシージャル生成された和室の中から方向性の異なる6バリエーションを抽出し、約1.5ヶ月のブラッシュアップを経て完成したのが本ページ最上部のキービジュアルだ。「プロシージャル手法のみならず、ルックの良さも大きな成果。手応えのある検証になりました」(齋藤氏)。







Topic 1:アーティストに向けたHoudiniのラーニング

アーティストの学習&作業効率を引き上げる多彩なHDA

今後チーム内に広くプロシージャルなワークフローを敷くことを見据え、できるだけ多くのアーティストにHoudiniに慣れてもらうことも本件のミッションとなった。目指したのはテクニカル主導ではなくアーティスト主導の制作フローだ。近年急速な普及がみられるHoudiniだが、その学習コストの高さは本誌読者には馴染み深いものであろう。「当初はアーティスト陣からも習得を不安視する声があり、検証に失敗するのではないか? とも思いました」と斎藤氏はふり返る。そこでレクチャー会やドキュメント整備、練習課題制作を実施したほか、使用頻度の高いエクスプレッションはメニューから呼び出せるようにするなどHoudiniのUIをカスタマイズ。レクチャーも使用頻度の高いSOPにフォーカスした上で、より使い勝手が向上するような多数のHDA(Houdini Digital Asset。ノードネットワークをアセット化し、別のネットワーク内にノードとして組み込むことができる)も用意した。「すでにUE4やSubstance Designerを使っていたためか、ノードベースの感覚にはそう苦労せず親しむことができました。本来であればコードを書きながら試行錯誤が必要なところもアクセスしやすくカスタマイズされたため、パズルをやっている感覚でした」と語るのは本件でHoudiniに入門したエンバイロメントアーティスト・西川哲雄氏。ほかにもMayaのヒストリ、3ds Maxのモディファイヤ、Photshopの調整レイヤーといった構造は多くのアーティストにとっても一般的であり、その思考を少しずつ拡張していけばHoudiniのネットワークへの理解につなげることができる。「普段通りにつくったらユニークになってしまうモデルも、Houdiniを習得して組み上げれば簡単にバリエーションをつくることができ、他のDCCツールに慣れている人もすぐに便利さを直感できると思います。特に量産期には便利そうで、未来を感じました」(西川氏)。

アセット制作に注力するアーティストとは別に、部屋を構築し小物を配置するロジックの設計は、かねてよりHoudiniに取り組んできたテクニカルアーティストが担当。また、フルプロシージャルではなく他DCCツールでつくり込んだ上でバリエーションをもったモデルとして組み上げるなど、アーティストの嗜好に応じてHoudiniを用いる比重を変えながら習熟を進めたという。なお、本件で使用したツールのバージョンは、Houdini 17.0.376、UE4.20.3となっている。

TAによるHoudiniラーニングサポート

Houdiniレクチャーでは簡単なプロシージャルなしくみの物を課題とした。シンプルなネットワークでプロシージャルの感覚をつかんでもらうという試みだ

レクチャーを受けたアーティストが作成したシーンデータの一例

TAが用意した教材となるサンプルの一例。コードはいっさい使わずノードのみで構成されており、しくみを読む際の理解しやすさに配慮

モデリングを補助するHDAとスクリプト

セントロイドやバウンディングボックスなど、よく使うエクスプレッションをプリセット化。「D_Y」のような慣れが必要な記述を覚えるコストを削減した

ベイクに必要なライトマップUVを自動展開してくれるHDA。面積に合わせて適切なUVの密度が計算され反映されるようになっている

アセットをbgeo形式でパブリッシュするツール。UE4用のメッシュ名やマテリアル、配置に使う情報などをアトリビュートに入れて保存される。Perforceにサブミットする機能も付いており、保存したデータは即座に共有される。また仕様に沿ってない場合はエラーメッセージを表示するなどヒューマンエラーを減らす工夫がされている。これらはHSITEを設定して共有されている

次ページ:
Topic 2 無限の選択肢を生み出す部屋設計

[[SplitPage]]

Topic 2 無限の選択肢を生み出す部屋設計

堅牢性と自由度を兼ね備えた柔軟なHDA構成

本プロジェクトは大きく3つの工程に分けて進められた。おおね時系列順に「プロップ制作」「和室の設計」「シーンの作成」と並ぶが、例えば終盤のブラッシュアップに応じてプロップが追加されるなど、ある程度並行しながらの進行となっている。全体のフローの策定と「和室の設計」をTAが担当し、プロップ・シーン作成実務にアーティストが随時参加した。検証プロジェクトという性質上メイン業務の傍ら少人数でスタートし、7〜8名を平均に適宜増減をくり返しながらの進行となった。プロップや和室などのプロシージャル化が10月半ばからスタートし、11月半ばにはそのバリエーション出しに着手している。このバリエーション出しの中でHDAの拡張やエラー修正、さらにUE4Pythonを用いたフローの検証も行われた。HDAは、各アーティストが担当したプロップ、それらを構成する小さなもの、また和室を出力する大規模なものまで多数作成された。「例えば障子をつくるHDAは、格子だけをつくるHDA、さらにその軸の一本をつくるHDA......と細かい機能単位でHDA化しています。ちょうどプログラミングで関数を細かく切り分けたり、クラスを継承しながら拡張していくイメージです」と、背景TAを務めた小出大翔士氏はふり返る。分業・保守に優れ、変更があればHDAファイルを更新することで適用箇所に波及する。更新のために個別にプロップを修正するといった雑務から解放される。

和室の構築は、Houdini Engineで連携するUE4上で行われる。起点となる「RoomSizeOutput」HDAがシンプルな面構成のオブジェクトを生成し、部屋の広さや各面のアトリビュートを決定。これを読みとりながら障子や襖、床の間、屋根、畳といった詳細がそれぞれに対応するHDAを用いて配置され、和室全体が段階的にディテールアップされていく。和室を出力するために必要なパラメータは全てUE4上からアクセスできるようになっている。完成した部屋へのライティングにも、プロシージャルなアプローチが取り入れられている。屋内照明は光源となるアセットに合わせて自動配置される。屋外はIBLの光源方向に応じてディレクショナルライトとスカイライトを作成、専用HDAを介してUE4に反映される。ライトベイクはUE4Pythonで自動化されており「実行しておけば何もせず一連の処理が行われるので、終業時に実行して次の結果を確認するなど効率的に運用できました」とは、エンバイロメントアーティストの中岡翔一氏。

全体のワークフロー

部屋の設計を中心としたフローチャート。大きく「プロップ制作」「和室の設計」「シーンの作成」の3工程に分けられる。プロップは、机など汎用性が求められるものはHDAで、それ以外はbgeo形式で保存される。設計フェーズは、畳の敷き方を起点に部屋のガイドを作成、各HDAへと処理が流れていく。各HDAはそれぞれ相互に作用することもあり、全体的設計をTAが組み上げつつ、個別のHDAごとにアーティストが分業。シーンの作成にはHoudini Engine for Unrealが使われており、和室のHDAをUE4に読み込むことで部屋の生成、マテリアルの適用、ライトの配置までが自動で行われる



Houdini Engineのパラメータ変更例

UE4上でHoudini Engineを使用し、和室をカスタマイズしていく作業の例。様々なパラメータを変更し、最終的にはUnreal Pythonでライトを自動配置してライトビルドするまでの様子を記録したもの


部屋の基礎となるHDA

部屋のベースを構成する「RoomSizeOutput」HDA。畳の敷き方や、側面に和室のどの要素を配置するか自由に選ぶことができるようになっている。Geometry Spread Sheet上では、和室を構成するための様々なアトリビュートを仕込んでいることが確認可能



畳の配置例

「Tatami Generator」で実行される畳の配置デモ


和室は「畳の数」と「敷き方」によって広さが決まる。「祝儀敷き」「不祝儀敷き」「巴敷き」の3パターンから好きなものを選ぶことができるほか、床は畳だけでなく板張りも用意されている

和室を生成するHDA「Washitu Generator」。和室を構成する各要素ごとにタブが分かれており、必要に応じて細かく設定できるようになっている



床の間の拡張と自動レイアウト

床の間を拡張するパラメータと自動レイアウトのシードをランダムにしたもの。床の間の拡張性と、小物が自動で配置されてる様子がわかる


HDAを機能ごとに細分化

和室HDAは個別の機能を受けもつ多数のHDAと連帯しており、機能ごとに関数を切り分けるプログラミング的な発想で構築されている。図はその一部だが、UV展開やベベル機能をもった棒を作成する「柱作成HDA」から、それを格子状に組み上げるHDA......などから障子作成HDAが構成されている。一方、障子のレイアウトを受けもつHDAも別に存在し、これは敷居作成HDAや、先ほども登場した「柱作成HDA」から成る。こうした細かな単機能HDAの積み重ねが和室の各構成要素を作成し、それらをまとめ上げるかたちで「和室生成HDA」が作られている

汎用性が考慮されたHDA

障子を生成する「Syouji Generator」HDA。様々な障子をつくれるように設計されている。前述の通り、「格子をつくるHDA」「柱をつくるHDA」と細かく分けられて再利用性を高めた構成となっている

「Syouji Generator」で生成された障子は、「Syouji Layout」HDAによって配置される。同HDAは障子だけでなく、襖、欄間、天袋なども含めてレイアウトする役割をもつ



「Syouji Generator」と「Syouji Layout」使用例

「Syouji Generator」と「Syouji Layout」のHoudini上での作業をキャプチャした動画。Syouji Generatorの汎用性とSyouji Layoutが障子、欄間、襖、天袋に使用されていることがわかる


バリエーションを豊かにする特殊なHDA

制作が進む中で、さらに豊富なバリエーションを得るための要望が随時寄せられた

印象的な丸窓や、雅やかな赤絨毯



  • 囲炉裏は、床張りの場合と巴敷の場合に生成される



  • 縁側も追加された。庭もHoudiniでプロシージャルに作成されている



テーマに合わせたマテリアルの自動切り替え

「Washitu Generator」にあるMaterialパラメータを変更することでテーマに合わせたマテリアルに一括で切り替えることが可能。マテリアル名の最後に_Modernや_Retoroという名前のサフィックスを付けることで管理している


プロシージャルによるパターン出しと自動ライトベイク

ライトベイク時には、ライトリークを防ぐために部屋を覆うボックスも自動生成される。光が差し込んでほしい障子のある側面や、生成結果に縁側が含まれる場合は、そこを避けるしくみ。図はわかりやすく半透明にしたもの

自動生成の例。シード値を変更するだけで、あらゆるパターンの和室が生成されるようになっている。後述するように、ライティングはリアルタイムレンダリングを意識し、IBLを設定すると、その高輝度部分から光源方向を判定しディレクショナルライトが配置される。これにより反射プローブよりも正しい反射が得られ、動的シャドウも扱える。和室の生成とその後のライトビルドはUnrealPythonによって自動化されている。ライトビルドの自動化に際しては一部UE4側の拡張も行われた



Unreal Pythonを用いた和室の自動生成

UE4のData Tableで各パラメータのパターンを定義し、それをUnreal Pythonでランダムに変更して和室を自動生成している。部屋の形、部屋に置かれる小物、ライティング、ライトビルド、スクリーンショットに至るまで全て自動で行われている


次ページ:
Topic 3 和室を彩る内装設計と各アセット

[[SplitPage]]

Topic 3 和室を彩る内装設計と各アセット

アーティストによる画づくりまで考慮されたプロシージャル

和室の構造が生成された後は、内装の生成が行われる。RoomSizeOutputで生成されたシンプルなプリミティブはここでも使用される。「プロップ類の配置は、ただプロシージャル的にランダムに行なったのでは、人間が見てあり得ないような変な部屋ができてしまいかねません。そこで、できるだけ自然で魅力的な配置になるように、アセットごとにどこに置かれるべきかというアトリビュートを付与し、部屋側のアトリビュートを照らし合わせながら配置するしくみにしています」とは、背景アーティストを務めた神谷 卓氏。例えば外光が差し込む窓の前には物を置かないようにする、机上のプロップは重心がはみ出さないようにする、扇風機やテレビは使用者の存在を想定してテーブルの方を向く......といったルールが細かく設計されている。

配置されるプロップは、内部的には大きく2つに分けられる。フルプロシージャルに形作られるものと、先に造形したものを組み込んだ「差分アセット」だ。構造から配置物まで全てをプロシージャルにすれば、生成物の可能性は圧倒的に広がるが、一方でアセット生成の時間なども膨大になってしまう。プロシージャル化の手間がかかりすぎるものや、バリエーションの多さがそれほど効果的でないものは、差分アセットとした方が効率的だ。プロップの配置は、Bullet、Vellumによるシミュレーション、Find Shortest Path、点群やUVパッキングなどの手法を適材適所に組み合わせて行われている。「各スタッフから日々アセットが追加されるので、それに合わせた配置方法を考えて組み込むといった対応、バグ潰しをくり返す日々でした」と語る神谷氏は、Houdini歴10ヶ月のTAではないアーティストというから驚きだ。年末以降のブラッシュアップ期間は、プロシージャルに生成された大量の和室から特徴的なものを選び、最終的なルックに向けての調整がくり返された。クオリティアップのためのレビュー会を実施しつつ、2Dアーティストの肥塚めぐみ氏が合流し、ペイントオーバーによるブラッシュアップが施された。「UE4上で生成された部屋を確認しつつ、プロップの配置調整や追加、ライティングなどで部屋ごとのコンセプトが際立つよう提案していきました」(肥塚氏)。同時期にUE4での画づくり経験が豊富なアーティストが多数合流。デカールによる汚しなどの追加、テクスチャやライティングの調整、庭の追加などを経て冒頭のキービジュアルのクオリティまで引き上げている。

差分アセット

別途DCCツールでモデリング後にHoudiniに組み込まれた「差分アセット」。MayaからFBXで出力し、それをHoudini側でFileSOPで読み込み。パブリッシュのために用意したHDA「UE4 Mesh Output」でbgeoに書き出している。またプロシージャルなプロップも、生成時間を優先していったん出力して差分アセット化したものもある

モデリングした照明器具のバリエーション

照明器具のバリエーションを差分アセットパブリッシュ用に組み上げたところ。ちなみに照明の発光部分には、UE4上でライトを自動配置するために頂点カラーが塗られている

様々な手法を組み合わせた内装配置



  • プロップの配置については、点群を散布しそれを置き換えていく手法が考えられるが、それではあらゆるプロップがあらゆる位置・角度で配置される可能性があり、適した配置をなかなか得られない



  • そこで、RoomSizeOutputの情報を利用しつつ配置条件を調整。箪笥・段違い棚・テレビの上には配置場所としてのアトリビュートを別途付与したり、障子や襖の前には物を置かないなどのルールを組み込み、適切な配置を得ている。また、プロップ類のパブリッシュの際に組み込まれるコリジョンメッシュも配置に利用している

机のHDA。机の上にも物が置かれ、長さに応じて座椅子や座布団が配置される。また湯のみやキセルなどは、一般的に置かれるであろう位置関係から大きく逸脱しないよう設計されている



フレキシブルに変化する机と配置

机の上のアセットの配置は、机の大きさが変わっても追従する。種類もちゃぶ台、囲炉裏とあるが、それぞれ配置のルールを設けて形状変化にも対応するようにしている。さらに座布団、座椅子の位置や数も変更可能


UV LayoutとRigid Bodyを用いた本の自動配置

UVレイアウトを使用し、本棚の中に本を配置した例。配置後にDOPシュミレーションを使用することで自然に配置されるようにしている。諸事情により、今回の最終データでは用いてはいない


Houdini の機能を利用したコタツの配置

コタツ布団はVellumを用いてシワを寄せている。「ただ落とすと綺麗なシワになってしまうので、サンプルの豚を出入りさせてコリジョンさせています。適度な凹凸に引っかかって引っ張られることで、人が出入りした後のようなコタツ感が得られます」(神谷氏)。なお、座布団のコリジョンを考慮することで、座布団がどのように配置されてもめり込まないよう設計されている



Vellumを使用したこたつのクロスシミュレーション

こたつの布をVellumを用いて作成。単純に上方から平面を落とすだけでは使用感のある布の形状が生成できないため、アニメーションしたコリジョンを用いて自然な形状になるようにしている。試行錯誤の結果、HoudiniのTest GeometoryのPig headが一番理想的な形状だったという


アート・肥塚氏提案によるコタツの電源コードの調整例。散布した点群をFind Shortest Pathで結びながら自動生成しているが、家具を避けるためにコリジョン形状に入った点群を除外して接続している。また、適度な使用感を出すためにノイズを加えているが、この際にコリジョン内に入ってしまった場合はノイズ追加前のカーブの位置情報も併用



Find Shortest Pathを用いたこたつコードの自動生成

部屋内に置かれたアセットの隙間を縫うようにコードが自動生成される。アセットで生成されるコリジョンを利用しており、コードがアセットに貫通することはない。同様にコンセントもコードの先端に自動で配置される


和室を彩る数々のプロップ類

多岐にわたるプロップを用意することで、生成される和室をバリエーション豊かなものにしている。アーティストの多くが、本プロジェクトで入門したHoudiniを何らかのかたちで用いて制作している

屏風や刀など古風なものから、白黒テレビ、ヒーターといった近現代の家具まで幅広い。プロジェクト開始時から制作されているもののほかに、生成された部屋のコンセプト決定後に追加されたものなど様々だ

アセット各種。検証プロジェクトということでポリ数、テクスチャなどに制限は設けなかったが、普段から最適化に慣れたスタッフ揃いのため高負荷アセットはあまりないとのこと。「薬箪笥やコタツは重たくなりがちで、コタツは約40万tri、薬箪笥は約60万triにおよぶものが生成されることもあります」(斎藤氏)



背景2Dアートによるペイントオーバーとイテレーション

プロシージャルである程度のレイアウトやライティングができた時点で、適宜レビュー会が開かれ改善点が話し合われた。2Dアート肥塚氏が合流し、総合的なクオリティアップに向けて各種検討が重ねられた。図はコタツを中心にした和室の事例

プロシージャル出力された、ペイントオーバー前の状態

肥塚氏によるペイントオーバー。ライティング調整のほか、生活感を出すための提案が多数含まれている

完成シーン。こうしたブラッシュアップ期間は約2ヶ月ほどだが、部屋によってはコンセプトが定まってから1週間程度で仕上がったものも。プロシージャルで8割まで生成、そこから追加作業で品質を高める、という目標は達成されたかたちだが、そこにはもちろんUE4でのアートワークに長けたアーティストたちの貢献も大きい



UE4 Editor上のこたつシーンウォークスルー

実際に作成した、こたつシーンのウォークスルー動画。UE4上でリアルタイムで描画されてることがわかる



info.

  • 月刊CGWORLD + digital video vol.248(2019年4月号)
    第1特集:リミテッドモデリング
    第2特集:衣服制作特化型ツールのすすめ
    定価:1,512 円(税込)
    判型:A4ワイド
    総ページ数:128
    発売日:2019年3月9日

    © 2019 Virtual-Market. All rights reserved.
    © Unity Technologies Japan/UCL
    ※表紙に掲載されているキャラクターは全てオリジナルもしくはライセンス規約に則ったものであり、いかなる著作物の権利も侵害しておりません