Reserved.昨今のハイエンドゲーム開発においては、高品質なアセットを大量に、効率良く作成する必要がある。4(以下、UE4)を用いてチーム規模に拡大したプロシージャル背景制作検証を行なっている。今回はその挑戦的なワークフローについて掘り下げてみよう。248(2019年4月号)からの転載となります。ハーツ』シリーズなど、数々の著名タイトルで知られるスクウェア・エニックス。本社は東京・新宿に所在するが、大阪にも大きな開発力を有する支社が存在することはあまり知られていないのではないだろうか。その大阪支社では今、次代の開発フローをにらんだ検証が進められている。「大規模に人員を投入する方式の開発がこれからも続けられるだろうか、という問題意識がありました。背景リーダーの齋藤栄治氏だ。大阪支社背景チームのスタッフ数は現在繁忙期を終えた時期だが、量産体制が再度組まれれば規模が何倍にもスケールすることが予想される。プロシージャルの手法を取り入れることで、同規模のまま制作力を拡大するというのが今回の技術検証の眼目となる。修氏には勝算があった。「古式からモダンまで様々な様式を取り込めるのはプロシージャル向けだと考えました。京都も近いので、取材に出かけることも可能です。私がやりたかった」(斎藤氏)。修氏(テクニカルアーティスト)、小出大翔士氏(テクニカルアーティスト)、肥塚めぐみ氏(2Dアーティスト)。大阪支社www.jp.square-enix.com制作は2018年10月から開始。取材とプロトタイプ制作を経てクオリティラインを設定し、部屋や各小物のHDA化に着手。並行して、学習コストの高いHoudiniを広くチーム内に導入するためのレクチャーを実施した。最終的にはプロシージャル生成された和室の中から方向性の異なる6バリエーションを抽出し、約1.5ヶ月のブラッシュアップを経て完成したのが本ページ最上部のキービジュアルだ。「プロシージャル手法のみならず、ルックの良さも大きな成果。手応えのある検証になりました」(齋藤氏)。1:アーティストに向けたHoudiniのラーニングアーティストの学習&作業効率を引き上げる多彩なHDA今後チーム内に広くプロシージャルなワークフローを敷くことを見据え、できるだけ多くのアーティストにHoudiniに慣れてもらうことも本件のミッションとなった。目指したのはテクニカル主導ではなくアーティスト主導の制作フローだ。近年急速な普及がみられるHoudiniだが、その学習コストの高さは本誌読者には馴染み深いものであろう。とも思いました」と斎藤氏はふり返る。実施したほか、使用頻度の高いエクスプレッションはメニューから呼び出せるようにするなどHoudiniのUIをカスタマイズ。ノードネットワークをアセット化し、別のネットワーク内にノードとして組み込むことができる)も用意した。Designerを使っていたためか、ノードベースの感覚にはそう苦労せず親しむことができました。本来であればコードを書きながら試行錯誤が必要なところもアクセスしやすくカスタマイズされたため、パズルをやっている感覚でした」と語るのは本件でHoudiniに入門したエンバイロメントアーティスト・西川哲雄氏。Maxのモディファイヤ、Photshopの調整レイヤーといった構造は多くのアーティストにとっても一般的であり、その思考を少しずつ拡張していけばHoudiniのネットワークへの理解につなげることができる。「普段通りにつくったらユニークになってしまうモデルも、Houdiniを習得して組み上げれば簡単にバリエーションをつくることができ、他のDCCツールに慣れている人もすぐに便利さを直感できると思います。量産期には便利そうで、未来を感じました」(西川氏)。アセット制作に注力するアーティストとは別に、部屋を構築し小物を配置するロジックの設計は、かねてよりHoudiniに取り組んできたテクニカルアーティストが担当。フルプロシージャルではなく他DCCツールでつくり込んだ上でバリエーションをもったモデルとして組み上げるなど、アーティストの嗜好に応じてHoudiniを用いる比重を変えながら習熟を進めたという。17.0.376、UE4.20.3となっている。TAによるHoudiniラーニングサポートHoudiniレクチャーでは簡単なプロシージャルなしくみの物を課題とした。シンプルなネットワークでプロシージャルの感覚をつかんでもらうという試みだレクチャーを受けたアーティストが作成したシーンデータの一例TAが用意した教材となるサンプルの一例。コードはいっさい使わずノードのみで構成されており、しくみを読む際の理解しやすさに配慮モデリングを補助するHDAとスクリプトセントロイドやバウンディングボックスなど、よく使うエクスプレッションをプリセット化。「D_Y」のような慣れが必要な記述を覚えるコストを削減したベイクに必要なライトマップUVを自動展開してくれるHDA。面積に合わせて適切なUVの密度が計算され反映されるようになっているアセットをbgeo形式でパブリッシュするツール。UE4用のメッシュ名やマテリアル、配置に使う情報などをアトリビュートに入れて保存される。Perforceにサブミットする機能も付いており、保存したデータは即座に共有される。仕様に沿ってない場合はエラーメッセージを表示するなどヒューマンエラーを減らす工夫がされている。本プロジェクトは大きく3つの工程に分けて進められた。おおね時系列順に「プロップ制作」「和室の設計」「シーンの作成」と並ぶが、例えば終盤のブラッシュアップに応じてプロップが追加されるなど、ある程度並行しながらの進行となっている。全体のフローの策定と「和室の設計」をTAが担当し、プロップ・シーン作成実務にアーティストが随時参加した。検証プロジェクトという性質上メイン業務の傍ら少人数でスタートし、7〜8名を平均に適宜増減をくり返しながらの進行となった。プロップや和室などのプロシージャル化が10月半ばからスタートし、11月半ばにはそのバリエーション出しに着手している。このバリエーション出しの中でHDAの拡張やエラー修正、さらにUE4Pythonを用いたフローの検証も行われた。HDAは、各アーティストが担当したプロップ、それらを構成する小さなもの、また和室を出力する大規模なものまで多数作成された。「例えば障子をつくるHDAは、格子だけをつくるHDA、さらにその軸の一本をつくるHDA......と細かい機能単位でHDA化しています。プログラミングで関数を細かく切り分けたり、クラスを継承しながら拡張していくイメージです」と、背景TAを務めた小出大翔士氏はふり返る。分業・保守に優れ、変更があればHDAファイルを更新することで適用箇所に波及する。更新のために個別にプロップを修正するといった雑務から解放される。Engineで連携するUE4上で行われる。起点となる「RoomSizeOutput」HDAがシンプルな面構成のオブジェクトを生成し、部屋の広さや各面のアトリビュートを決定。これを読みとりながら障子や襖、床の間、屋根、畳といった詳細がそれぞれに対応するHDAを用いて配置され、和室全体が段階的にディテールアップされていく。和室を出力するために必要なパラメータは全てUE4上からアクセスできるようになっている。完成した部屋へのライティングにも、プロシージャルなアプローチが取り入れられている。屋内照明は光源となるアセットに合わせて自動配置される。屋外はIBLの光源方向に応じてディレクショナルライトとスカイライトを作成、専用HDAを介してUE4に反映される。ライトベイクはUE4Pythonで自動化されており「実行しておけば何もせず一連の処理が行われるので、終業時に実行して次の結果を確認するなど効率的に運用できました」とは、エンバイロメントアーティストの中岡翔一氏。部屋の設計を中心としたフローチャート。大きく「プロップ制作」「和室の設計」「シーンの作成」の3工程に分けられる。プロップは、机など汎用性が求められるものはHDAで、それ以外はbgeo形式で保存される。設計フェーズは、畳の敷き方を起点に部屋のガイドを作成、各HDAへと処理が流れていく。各HDAはそれぞれ相互に作用することもあり、全体的設計をTAが組み上げつつ、個別のHDAごとにアーティストが分業。Engineを使用し、和室をカスタマイズしていく作業の例。Pythonでライトを自動配置してライトビルドするまでの様子を記録したもの部屋の基礎となるHDA部屋のベースを構成する「RoomSizeOutput」HDA。畳の敷き方や、側面に和室のどの要素を配置するか自由に選ぶことができるようになっている。Generator」で実行される畳の配置デモ和室は「畳の数」と「敷き方」によって広さが決まる。Generator」。和室を構成する各要素ごとにタブが分かれており、必要に応じて細かく設定できるようになっている床の間の拡張と自動レイアウト床の間を拡張するパラメータと自動レイアウトのシードをランダムにしたもの。和室HDAは個別の機能を受けもつ多数のHDAと連帯しており、機能ごとに関数を切り分けるプログラミング的な発想で構築されている。図はその一部だが、UV展開やベベル機能をもった棒を作成する「柱作成HDA」から、それを格子状に組み上げるHDA......などから障子作成HDAが構成されている。障子のレイアウトを受けもつHDAも別に存在し、これは敷居作成HDAや、先ほども登場した「柱作成HDA」から成る。Generator」HDA。様々な障子をつくれるように設計されている。Layout」HDAによって配置される。Layout」のHoudini上での作業をキャプチャした動画。囲炉裏は、床張りの場合と巴敷の場合に生成される縁側も追加された。Generator」にあるMaterialパラメータを変更することでテーマに合わせたマテリアルに一括で切り替えることが可能。マテリアル名の最後に_Modernや_Retoroという名前のサフィックスを付けることで管理しているプロシージャルによるパターン出しと自動ライトベイクライトベイク時には、ライトリークを防ぐために部屋を覆うボックスも自動生成される。光が差し込んでほしい障子のある側面や、生成結果に縁側が含まれる場合は、そこを避けるしくみ。図はわかりやすく半透明にしたもの自動生成の例。シード値を変更するだけで、あらゆるパターンの和室が生成されるようになっている。後述するように、ライティングはリアルタイムレンダリングを意識し、IBLを設定すると、その高輝度部分から光源方向を判定しディレクショナルライトが配置される。これにより反射プローブよりも正しい反射が得られ、動的シャドウも扱える。和室の生成とその後のライトビルドはUnrealPythonによって自動化されている。Pythonでランダムに変更して和室を自動生成している。和室を彩る内装設計と各アセットアーティストによる画づくりまで考慮されたプロシージャル和室の構造が生成された後は、内装の生成が行われる。RoomSizeOutputで生成されたシンプルなプリミティブはここでも使用される。「プロップ類の配置は、ただプロシージャル的にランダムに行なったのでは、人間が見てあり得ないような変な部屋ができてしまいかねません。外光が差し込む窓の前には物を置かないようにする、机上のプロップは重心がはみ出さないようにする、扇風機やテレビは使用者の存在を想定してテーブルの方を向く......といったルールが細かく設計されている。配置されるプロップは、内部的には大きく2つに分けられる。フルプロシージャルに形作られるものと、先に造形したものを組み込んだ「差分アセット」だ。構造から配置物まで全てをプロシージャルにすれば、生成物の可能性は圧倒的に広がるが、一方でアセット生成の時間なども膨大になってしまう。プロシージャル化の手間がかかりすぎるものや、バリエーションの多さがそれほど効果的でないものは、差分アセットとした方が効率的だ。Path、点群やUVパッキングなどの手法を適材適所に組み合わせて行われている。「各スタッフから日々アセットが追加されるので、それに合わせた配置方法を考えて組み込むといった対応、バグ潰しをくり返す日々でした」と語る神谷氏は、Houdini歴10ヶ月のTAではないアーティストというから驚きだ。年末以降のブラッシュアップ期間は、プロシージャルに生成された大量の和室から特徴的なものを選び、最終的なルックに向けての調整がくり返された。クオリティアップのためのレビュー会を実施しつつ、2Dアーティストの肥塚めぐみ氏が合流し、ペイントオーバーによるブラッシュアップが施された。「UE4上で生成された部屋を確認しつつ、プロップの配置調整や追加、ライティングなどで部屋ごとのコンセプトが際立つよう提案していきました」(肥塚氏)。同時期にUE4での画づくり経験が豊富なアーティストが多数合流。デカールによる汚しなどの追加、テクスチャやライティングの調整、庭の追加などを経て冒頭のキービジュアルのクオリティまで引き上げている。差分アセット別途DCCツールでモデリング後にHoudiniに組み込まれた「差分アセット」。MayaからFBXで出力し、それをHoudini側でFileSOPで読み込み。Output」でbgeoに書き出している。あるびぃ(official)MV2024/10/22看護師からCGの世界へ。MORE2024/10/22看護師からCGの世界へ。V-Crew(ブイクルー)研修講師に就任。【CGデザイナー募集】会社を「デザイナーが技術を探求する場所」に。あるびぃ(official)MV2024/10/22看護師からCGの世界へ。MORE2024/10/22看護師からCGの世界へ。V-Crew(ブイクルー)研修講師に就任。MORE会員登録してもっと便利にCGWORLDを利用しよう!会員登録のメリット記事の保存ができるCGWORLD.jpで気になる記事や後で読みたい記事などを保存することができます。※最大100件まで保存が可能セミナーが探せるボーンデジタルが開催しているセミナー情報を見ることができます。自分が登録しているセミナーも管理することができます。CGWORLDのランキングや最新の講座情報などをお届けするCGWORLDメールマガジンの配信管理ができます。ログイン本会員は「クリエイターズID」と連動しています。