世界に冠たるRPG『FINAL FANTASY』(以下、FF)シリーズの中でも屈指の人気を誇る『FF VII』(1997)がリメイクされるという発表にファンが湧いたのは2015年6月。それから約5年を経て待望のリリースとなった本作は、往年のファンには懐かしさの中に新鮮さを感じさせつつ、新規ユーザーには現世代機のハイエンドタイトルとしての魅力を存分に提供している。本稿では、本誌268号に掲載したメイキングに追加要素を加え、全3回に渡って詳解する。第1回は、Unreal Engineを導入した本作の開発体制と、キャラクター制作に迫る。
※本記事は月刊「CGWORLD + digital video」vol. 268(2020年12月号)に掲載された記事にトピックを追加し、再編集したものです
TEXT_ks
EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada
-
『FINAL FANTASY VII』
開発・販売:スクウェア・エニックス
リリース:発売中
価格:8,980円+税
Platform:PlayStation 4
ジャンル:RPG
www.jp.square-enix.com/ffvii_remake
© 1997, 2020 SQUARE ENIX CO., LTD. All Rights Reserved.
CHARACTER DESIGN: TETSUYA NOMURA/ROBERTO FERRARI
LOGO ILLUSTRATION: © 1997 YOSHITAKA AMANO
© 1997, 2019 SQUARE ENIX CO., LTD. All Rights Reserved.
CHARACTER DESIGN: TETSUYA NOMURA
©2005, 2009 SQUARE ENIX CO., LTD.All Rights Reserved.
CHARACTER DESIGN : TETSUYA NOMURA
真面目にPBRを貫いた『FFVII REMAKE』
冒頭からミッドガル脱出までをときに原作に忠実に、ときにオリジナル要素を豊富に交えて描く本作。「原作でも印象深いミッドガルは、舞台として厳然と世界観が存在しています。現世代機のグラフィックに起こしていく中で、原作の世界観の強固さのおかげでディテールやモダンな要素、画づくりに集中することができました」と語るのはグラフィックス& VFXディレクターを務めた高井慎太郎氏。
初期には外部協力会社での開発を軸に作業が進められていたが、2017年の量産フェーズへの突入に伴い安定的な量産と効率的なクオリティアップを目指して開発の主体をスクウェア・エニックス社内へ移行。描画部分をカスタマイズしたUE4を用いて迅速に本作のための開発環境を敷設し、フォトリアルでありながら原作のサイバーパンクなファンタジックさに満ちたグラフィックを制作していった。
「真面目にフィジカルベースを貫くという取り組みでしたが、大きな効果が得られたと考えています。アーティストはそれぞれ自分の中にアートイメージをもっていますが、それをいったん同じところに立って出発することで、より効率的にクオリティアップにつなげていくことができます」と、描画周りのカスタマイズを担ったリードレンダリングプログラマー・池田修一氏は語る。
汎用エンジンを採用することで、開発環境の準備コストだけでなく学習コストの面でもメリットがあったほか、開発工程の初期段階から簡易的にプリプロが行えることなどは現場から好評だったという。さらに、社内外に経験者がいるために人員のスケールにも貢献した。また、従来はエンバイロンメント班(以下・ ENV班)やカットシーン班が行なっていたライティング作業を新たにチーム化。映像制作経験豊富なスタッフを集め、さらなるグラフィック品質の向上を目指した。
「PBRのグラフィックの中で、日本のアニメーション風であった野村哲也デザインのキャラクターが上手く再現できたと考えています。 PBRと抜け道とのせめぎ合いがある中で磨き上げていく、楽しい開発でした。今回は舞台がミッドガルということで、それでも十分に広かったですがFFVIIの世界の一部を描きました。次はいよいよ『FFVII』の世界全体を描いていきます。ユーザーの皆様には驚きを提供していきたいと思います」(共同ディレクター・浜口直樹氏)。それでは次頁から各セクションの取り組みをみていこう。
汎用エンジンをカスタマイズし、効率的に開発体制を確立
かねてより開発の進んでいた本作が、量産化フェーズに進むにあたり安定的なクオリティアップを目指してスクウェア・エニックス内主体の開発へと移行したのが2017年5月。スタッフの内訳は概ねプログラマー:プランナー:デザイナーが2:2:6というAAAタイトルの開発としては標準的な編成であった。
開発環境として、同社のAAAタイトルとしては先んじて『キングダム ハーツIII』でも用いられていたUE4を採用。「これまでFFシリーズは内製エンジンで開発されてきました。開発主体を社内に移行するとはいえ、それまでのパートナー各社との開発協力は継続することもあり、スムーズに移行するためのベストな選択として、今回はUE4を採用しました」と浜口氏は語る。
新たに開発環境の構築からのスタートとなると、その学習期間も含めどうしても開発の長期化につながってしまう。汎用エンジンを用いることでこれを回避し、量産・クオリティアップのフェーズへと効率良く進むことができたという。「エンジン開発で何年かかかる、といったことがなく、完全に動く環境がある状態でスタートできるというのはメリットでした」(池田氏)。一方で、グラフィックの魅力を押し出すスクウェア・エニックスとして、FFシリーズとして、描画面では「らしさ」を確立する必要がある。
「ライティングやポストプロセスなどを含めて描画まわりは全面的に書き直し、標準のUE4とはまったくちがうものになっています。汎用エンジンの使いやすさは利点ですが、タイトルとしての独自性を打ち出す必要があり、その一環としての対応です」(池田氏)。
具体的には、マテリアルでは高速性とフィジカルベースの描画に徹する方向性で池田氏が大半をHLSLで記述。スタンダード、髪、瞳、肌、布などのマスターマテリアルから機能別にインスタンス化し、アーティストはテクスチャアサインのみで対応するというフローになっている。アーティストフレンドリーなエディタから膨大なマテリアルが作成されると、大規模開発ではイテレーションやメモリ管理などでデメリットにつながりやすいという知見を受けての選択だ。
UEは4.16をベースとして開発を開始し、4.18の時点でバージョンをロック。それ以降のアップデートに際しては、最適化系の機能を部分的にマージしていった。
なお、開発時の構成管理にはSVNを使用している。「大規模開発ではPerforceを利用しているケースもよく聞かれますが、これまでチームで開発してきた実績や培ってきたものがあり、今回もSVNベースで大丈夫だと判断しました」(浜口氏)。本作を担当したチームでは実に10年以上にわたってSVNベースで開発を行なっており、バックアップ体制も含めた開発基盤として手に馴染んでいるという。そのため量産にも速やかに入ることができ、開発を通して大きなトラブルなどはなかったとのこと。ボトルネックにならないようサーバは十分に増強し、Jenkinsでキャッシュ作成やチェックなどを自動化した。
「ファイルの参照関係やデータの整合性などが壊れたりしていないかをチェックしたり、パッケージの作成やデータのコンバートなどを継続的に処理させたりしています。DDCは自動的にサーバ上で共有パスにキャッシュを生成し、不要な処理がローカルで走らないようにもしています」(浜口氏)。また、分散処理にはインクレディビルドが検討されるケースもあるが、本作ではSN-DBSを使用。ゲームコードやシェーダコードのコンパイル、データの変換処理などはコミットを受けてそのままプロセスが走り始め、常にビルドし続ける状態となっていた。
他方、UE4の描画部分を全面的に書き換えたために、ある種の問題が浮上することにもなった。公式に提供されるグラフィック機能の大半が使えない、という懸念だ。実際、汎用エンジンであるために本作では不要となる機能、描画方針に沿わない箇所はあり、それらは削除、修正されている。
またUE4に限らず昨今のゲームエンジンはゲームだけでなく、映像制作などリアルタイム性に必ずしも頓着しない分野へもアピールを強めており、アーティストにとって魅力的な表現の一部にはゲーム用途では(今のところ)実用できないものも含まれる。例えばアナモフィックレンズのフレアのように横長のグレアが現れる表現を求められたが「標準のUE4の実装では非常に重い処理が必要で、ランタイムで快適なフレームレートで描画することは難しく、実機で用いることは現実的ではありませんでした。同様に、UE4に備わっていても負荷の高いものや、今回のゲームでは破綻が起こり得るものは整理し、基本的には描画部分を全て書き直しているので、自分が作ったものを使ってくださいと案内していました」(池田氏)。
こうした強力な仕切りがアーティストにとっての遊びのなさにつながる面もあったが、短期間でハイクオリティな量産を支えたことは見過ごせない事実であろう。今後はこの方針から一歩進め、これを土台に「『FF』らしいフィジカル」を実現できたらと池田氏は意欲をのぞかせる。
「フィジカルなだけでなく、『FF』ならではのファンタジックでアーティスティックな、『フィジカル+α』としていったい何を提示していくべきなのか。これは永遠のテーマです。具体的にはLUTなのか、デザインなのか......結果として、グラフィックについて世界中の皆さまから好評を得られましたが、『こうしたから』そうなったというようなところまでは私の中では答えを落とし切れておらず、今後も引き続き探究していくことになると思います」(高井氏)。
「描画部分の根幹は池田が握って、その中でクオリティを出していけるように決めていきました。限られたシェーダで画をつくろうということでいろいろありましたが、強いポリシーのもち主なのでそこを守りつつ、『FF』らしい画づくりを探っていきました」(浜口氏)。
マテリアルの拡張
- ◀マスターマテリアルのマテリアル・アウトプットの一例。ベースカラー、メタリック、スペキュラ、ラフネス......といった標準のマテリアルノードと同様の入力ピンのほか、この例ではVATのパラメータなどが追加されている。また、既存パラメータでも可能な場合はfloat4型に拡張されている
▲StaticSwitchParameterノードは、識別子を記入できるよう拡張。【上】は「RigidBody」というスイッチパラメータの例で、識別子として「STATIC_SWITCH_RIGID_BODY」が定義されている。この識別子は、シェーダコード生成時に挿入され、【下】のように処理の実体をUSFにHLSLで記述することを可能にしている
頂点変形の拡張
▲【左】特にフェイシャルなどでは、ボーンによる形状変形に法線が追従しないことによって、ほうれい線や眉間などに適切な陰影が現れないことが問題となる/【右】そこで本作では、「ノーマル・デフォーマ」を用いてこの問題を回避している。法線を変形に沿わせるために、「タンジェント用」「バイノーマル用」2種のウェイトを用い、外積で法線を再計算する。この2種のウェイトはFBXインポート時にモデル形状とボーンの参照値に応じて生成されるようになっている。「これらをはじめ、基本的にはUEから独立してFBXに必要な情報が含まれていて、FBXインポート時にノーマル情報やマテリアルスロット順などが適切にuasset化されるなどの処理をしています」(池田氏)
▲【左】ボーン・マトリクス・アレイに、並列してベクトル・パラメータを追加できるように拡張。これは「ボーンエクスプレッシブ」と呼ばれ、例えばこれをノーマルマップのブレンドに用いることで、【右】のように目尻や鼻根の小ジワを表現することができる
▲マッスル的な挙動をするボーンなどで、メッシュ変形時にノーマルを歪ませないためにタンジェント・マトリクスはシェーダ内で逆行列を求めて生成している。図は真球を縦方向に縮小した例で、【左】が適用前、【右】が適用後。縮小後の形状に合わせて、滑らかなノーマルとして描画されている
▲Houdiniから出力した頂点アニメーションデータを、スキニングモデルに追加適用できる機能を実装。VATは原型モデルからの差分をもち、回転パラメータはクォータニオンでエンコードされている/【左】追加頂点アニメーションOFF/【右】追加頂点アニメーションON
アンビエントオクルージョン
▲アンビエントオクルージョン(AO)はベイクされたものとSSAOを非線形合成している。【上段左】アーティストのベイクしたAO/【上段右】プログラマーの作成したSSAO/【下】【上段左】と【上段右】をX=A*B; Y=min(A,B); C=lerp(X,Y,Square(1+X-Y));で合成した結果。キャラクターと背景との統一のとれた密度感でAOが描画されている
▲頭部の例。「SSAOの実装は、最近のUEと同じく、海外大規模タイトルで用いられていた手法にインスパイアされていますが、BlueNoiseによるジッタリングとテンポラル処理によってフル解像度で動作します。これはクオリティ面でもとても大きな効果が得られました」(池田氏)。また、AOの情報はダイレクト・ライトのシャドウイングなどにも利用している
▲オクルージョンは、マルチバウンスを考慮してカラーを伴って補正されている/【左】カラードAO OFF/【右】カラードAO ON。特に肌や髪などで、色彩感を保ったままAOが重ねられている
▲キャラクターに近似したソフトシャドウを得ることができるカプセルシャドウも、計算を変更。丸影の印象にならないよう、通常のAOに寄せた計算に変え、さらにAOと合成して使用している。また、ライトプローブから周辺ライトの指向性を参照し、ベイクライトの指向性情報のみを遮蔽する/【左】カプセルオクルージョンOFF/【右】カプセルオクルージョンON
ライティング
▲【左】ライトマップ/ライトプローブとも、ライトベイクの結果がArnold Rendererでのレンダリング結果と近くなるようLightmassを修正。ライトベイク時には、スタティックライトだけでなく天球をはじめとしたエミッシブ・サーフェスもライトソースとしている。また、ライトプローブには、よく用いられるSpherical Harmonics(球面調和)は用いておらず、シーンに配置されたボリュームテクスチャに平均カラーとワールド軸上の6方向の輝度を保存。方向の正確性は失うものの、デコードが軽量でライトの指向性が強い箇所でもエラーが出ないという特性がある。ちなみにベイクされたEnvironment Irradiance (環境放射度) は拡張したGBuffer内に保存され、後述する後計算に用いられる/【右】ベイク時にレンダリングされたリフレクションマップは解像度を限定しBC6で圧縮される。その分大量に配置可能で、画像の例では00000〜00043まで44枚のリフレクションマップが同時に展開されており、シーンによっては200枚を超える箇所も存在する
▲UE4では、よりリアルな反射に近似させるために配置粒度の高いライトベイクデータによって配置粒度の低いリフレクションマップを補正しているが、この際の計算を変更している/【左】UE4標準の補正/【右】計算を変更した本作での補正
▲魔法など周囲の発光体からの照り返しを想定した、特殊なライト「Ambiguous Light」。光源がはっきりとしない曖昧なライティングを実現する/【左】シャドウを無効にした通常ライトの状態/【右】Ambiguous Lightによるライティング。「Environment Irradiance のバッファに加算することで、計算の大半を環境光の処理部に委譲して軽量化しています」(池田氏)
▲カットシーンで演出ライトを追加した際、環境光との影響も加味されて光量が飽和し、画的に浮いてしまう場合がある。これに対処するために、Environment Light Modifier という機能を実装。環境光などの影響を、対象ごとに個別に制御できるようになっている
▲シェーディング・モデルの実体は、負荷を考慮して5種類に制限している。「DEFAULT_LIT」、「PREINTEGRATED_SKIN」、「EYE」、「HAIR」、「CLOTH」と名称は互換のために引き継いでいるものの、計算はまったく異なっている。「実際には、高速化のために、使用されているシェーディング・モデルを16x16 ドットのタイル単位で計上し、ComputeShader によってサブセットのシェーダでタイルド・ライティングを行なっています」(池田氏)
▲【左】発光部(エミッシブ要素のあるサーフェス)では、表面のラフネスに応じた透過が考慮される。図のシェーダボールでも発光部が平坦にならずに立体感を保っている/【右】フォワード・ライティング時には、拡散反射と鏡面反射を分離して計算。ブレンド・ステートにはPremultiplied Alphaを用い、事前乗算項に拡散反射を与えて鏡面反射を加えたものを出力することで、そのまま半透明物体の表現が可能になっている。なお、ブレンド・ステートにはエフェクトも含めてPremultiplied Alphaしか使用しておらず、爆発エフェクトなどは同様の手法で爆煙と発光を同時に描画している
▲ほとんどの量子化処理には BlueNoise によるジッタリングとテンポラル処理が加えられている。図はボリューメトリック・フォグの例で、【左】はジッタリングOFF、【右】はジッタリングON。ブロックノイズに細かいドットの密度変調によるハーフトーンをかけているが、この際、特に低周波域を知覚的に低減させるブルーノイズでディザリングしている
次ページ:
原作の特徴的なデザインをPBRでリアルに再現したキャラクター制作
原作の特徴的なデザインをPBRでリアルに再現したキャラクター制作
キャラクターは"懐かしさを感じさせながら、新鮮に魅力的に"というコンセプトの下で制作されている。「オリジナルを知っている人には当時を思い出してもらえるような、初めての人には現世代機のタイトルとして納得してもらえるようなハイエンドなグラフィックを目指しています。魅力的で格好良いのはもちろん、原作の特徴的なデザインをPBRでリアルに再現していくことを目指しました」と語るのはキャラクター・モデリング・ディレクターを務める風野正昭氏。
参考のひとつとして挙げられたのが、2005年発売のフルCG映像作品『FINAL FANTASY VII ADVENT CHILDREN(以下、FFVIIAC)』をリアルタイムで動かすというもの。当時、リアル頭身のFFVIIキャラクターが活躍するフルCG映像に興奮したファンも多い。ただし、注意しなければならないのは、『FFVIIAC』をリアルタイムに動かすということを念頭に本作が開発されたわけではないという点だ。15年前の作品であり、技術的継承など開発上直接の関わりがあったわけではない。「『FFVIIAC』をはじめ、流通している膨大な書籍・フィギュアなどから、ファンにとって『FFVII』のキャラクターがどんな存在であるかを見つめ直し、キャラクター制作に落とし込んでいきました」(リードキャラクターアーティスト・鈴木 大氏)。
制作フローは各担当アーティストに委ねられており、テクスチャベイクなどの一部ルール化された工程を除き、DCCツールなどは各人の自由となっている。特にオクルージョンのベイクはSubstance Painter上で行い、数値はENV班と一致させて環境内にアセットを配置したときの一体感を担保している。使用ツールは、メインツールであるMayaのバージョンは2017に統一、スカルプトはZBrush、テクスチャ作成はSubstance Painter(ごく一部にPhotoshop)、LOD作成にSimplygon7、など。その他の補助ツールとして、UE4に組み込む前にデータにエラーがないか、骨構造、トポロジー、不正アトリビュート値などを検出するチェッカーが用意された。カットシーンとインゲームでキャラクターアセットは同じものが描画されているが、前者ではLOD0(一番ハイメッシュのもの)のみ描画されるようになっている。
キャラクターを"再現"するための参考資料
▲キャラクター制作はまず主人公・クラウドから着手し、本作のキャラクターの在り方を模索するところから始まった。【左】原作『FFVII』のクラウドのキャラクターデザイン画/【右】『FFVIIAC』のクラウド
▲本作のクラウド。原作資料からリアル頭身のキャラクターとして"再現"するにあたり、注意深く特徴を抽出。クラウドであれば「大剣をふり回す力がありながらスマートでしなやかな筋肉」に着目し、現実のバレエダンサーの写真資料なども参考にしたという
キャラクターモデル構成
▲キャラクターごとのモデルとテクスチャの一部。左からクラウドなどのメインキャラクター、NPC、エネミーの警備兵、モブキャラクター。テクスチャは概ね1段ごとに1マテリアルで、それぞれアルベドをはじめとする基本的なテクスチャ構成となっているが、オクルージョンは衣装替えを意識して独立した1枚となっている。赤いマップはタイリングなどに用いるマスク制御マップ。ホログラムで登場するキャラクターはアルベドが不要、などの変動がある
▲キャラクターごとの衣装バリエーション。コルネオの館イベントに割かれたリソースの多さが窺える。一部Marvelous Designerも使用されている
▲【上】クラウドに使用されているマテリアル(衣装バリエーション含まず)。12あり、目・まつ毛・眉毛・唇・髪など半数が頭部となっている/【下】マテリアル一覧の一部。マスターマテリアルは厳重に管理されており、その数点を除きマテリアルインスタンスとなっている
2Dペイントによる敵キャラクターのディテール
▲超大型ボスも含め、敵キャラクターは同じフロー、同じ寸法で制作している。「サイズが大きくなるほど、ディテールをZBrushで細かく入れるとベイクが大変になってしまいます。そこで、スカルプトではなくSubstance Painterでの2Dペイントで細かくディテールを入れています」(モンスターアーティスト・中村博之氏)。画像はジェノバBeatのハイモデル【上段左】、テクスチャ表示【上段右】、ハンドレットガンナーのハイモデル【下段左】、テクスチャ表示【下段右】。ベイクのソースとなるハイモデルは1千万~1億ポリゴンと幅があるが、前者のようにスカルプトではほとんどディテールを入れていないケースもあり、テクスチャ(カラーとハイトマップ)でディテール感を付与している。「例えば5cmくらいのビスであれば造形しますが、それより細かいディテールは造形せずテクスチャで描くといった処理でベイク時間を効率化しています」(中村氏)
特徴的な髪型の表現
▲髪は板ポリに透過用アルファマップやノーマルマップをベイクして表現している。手順は以下の通り。【左】ヘアカーブで髪型を作成/【右】インゲーム用に板ポリゴンでモデリング
▲【左】その板ポリゴンとUVを合わせたベイクターゲットとなるメッシュを用意し、ベイクのソースとなるヘアカーブを配置。この際、髪型は【右】のように立体的に配置することが重要
▲ベイクしたアルファマップ【左】と法線マップ【右】
髪の板ポリ感を軽減
▲板ポリゴンで表現している髪の毛を滑らかにするために、ベント法線マップのテクニックを応用。インゲーム用頭部モデル【A】をボクセル化し【B】、その法線を【A】のUVに対してベイクすると【C】のようなマップが得られる。これを【A】に適用すると【D】のようになる
▲【左】ベント法線マップを適用していない描画結果/【右】ベント法線マップ適用後の描画結果。法線が締まり、板ポリ感が軽減されている
▲【左】後方からの適用前、【右】適用後。毛先に光が回り込むなど、より自然な印象に
▲【左】適用前、【右】適用後それぞれの法線情報をRGBで可視化したもの
フローマップを使用した召喚獣の発光表現
▲「召喚獣はこの世界ではない別の世界から来ている印象を強めるため、発光部にフローマップを多用しています。水などによく用いられている表現で、色やながれる速度などのパラメータはエディタ上で調整できるよう管理されています」(中村氏)。【左】召喚獣の発光部に用いられているテクスチャ。上段左からながれの向きを決めるマップ、発光部指定用のアルファ、下段左からながれるスピード(R)、ゆらぎ(B)を指定するマップ、発光部のエミッシブHDRテクスチャ/【右】発光部に関する資料「召喚獣 エミッシブフローマップ設定」
▲同レベルに各召喚獣を配置した様子。流動する発光部が別世界を印象づける。なお、召喚獣の制作フローはエネミー・ボスらと基本的に同様
『FINAL FANTASY VII REMAKE』(2)
アニメーション&エンバイロンメントに続く>