ニュース
独自ツールとサポートエンジニアが支える「FFGM」のグラフィックス品質
「ファイナルファンタジーグランドマスターズ」の事例を開発者が解説
(2016/4/5 12:00)
「Unite 2016 TOKYO」初日となる4月4日、スクウェア・エニックス(以下、「スクエニ」)渕上氏と、クルーズ野澤氏は、「ファイナルファンタジーグランドマスターズ MayaからUnityへの橋渡し」と題して、「ファイナルファンタジーグランドマスターズ」(以下「FFGM」)における3Dグラフィックリソースの取り回しに関するセッションを行なった。
セッションの内容がグラフィックスデータに関するものであったため、セッションの内容は視覚的でわかりやすい。また、データ量の多い少ないはあったとしても、多くの参加者にとって、自身のプロジェクトと共通する部分もあり、非常に参考になったと思われる。
本セッションは「Green Session」という万人向けカテゴリーのセッションに分類されており、幅広い層に「Unity」での製作過程を理解してもらうという、そもそもの目的に見事に合致していた。またエンドユーザーにとっても、本作のクオリティを支える舞台裏を垣間見る好例となっていた。
「FFGM」のプロジェクトでは、モデリングやモーションアニメーションは、オートデスクのDCCツール「Maya」で作成されている。「FFGM」がモバイルプラットフォーム向けの作品であることから、作成されたモデルは、他社製の「Simplygon」という定評のあるツールで、リダクションというポリゴン数削減工程を経ている。本作では、カメラが寄りで画面内に描画するオブジェクト数がより少ないバトルシーンでは、リダクションは弱めに、カメラが引きでオブジェクト数が多いフィールドシーンでは、リダクションは強めと、同じキャラクターでも複数のリダクション状態のデータを用意している。こういったケースでは、「Simplygon」は複数のリダクション状態で出力する機能があるため、非常に有効だ。またモデルに貼るテクスチャは、OPTPiXという、こちらも定評のある他社製の減色ツールを活用している。
このように他社製のツールを活用しただけでも、クオリティを妥当なラインに維持しながら、データ量を削減するには、まずまず十分だ。ところが、本作では、作成したモデルデータをFBX形式という標準的な形式で「Unity」にインポートする際に、さらに工夫をしている。本作のキャラクターは、顔とボディの合計で10パーツ、防具一式で6パーツ、顔パーツのうち髪の毛はさらに4パーツに分かれるといった構成で、かなりパーツ数が多い。これらを防具を含めたキャラクター全体モデリングすると、かなり多くの部位に分割しなければならないことになる。
そこで、サポートエンジニアが、キャラクターモデルを複数のパーツに分割しながら、一括で1つのFBXファイルにエクスポートする自前のカスタムプラグインを作成している。このプラグインは、単にエクスポートするだけではなく、アーティストの作成ミスを、ある程度自動的に修正する機能も持っている。
「FFGM」では、サポートエンジニアが、プレーヤービューア、モンスター&エフェクトビューア、マップビューアといった各種ビューアを作成している。ビューア上のチェックは、やはり人の目によるチェックではあるが、アーティストが、わざわざゲームを進行させて実機上でチェックしなくて良いだけでも、かなりチェック時間の短縮につながる。特に、モンスター&エフェクトビューアは、任意のモンスターをビューア上に呼び出して、単にアニメーションさせるだけではなく、モンスターの技アニメーションと共にエフェクトを同期させて再生する機能を持たせている。
モデル関連のビューアはアニメーションの再生までで、エフェクトのビューアは別途存在するというケースが多いと思われ、本作のモンスター&エフェクトビューアは、実情を踏まえてひと工夫されていると言えるだろう。
その他、ゲームに含まれるデータ品質には、直接的には影響しないが、「Unity」のPrefubというデータコンテナに変換する作業を自動的に一括処理してくれるバッチングツールや、DCCツールからのエクスポート時にFBXのバージョンをチェックしてくれるツールといった、地味ながらアーティストにとっては大変ありがたいツールも製作されている。
本プロジェクトのサポートエンジニアの担当は周辺ツールにとどまらず、カスタムシェーダーの開発にも及んでいる。本作では、テクスチャのデータサイズ削減のため、透明度の情報を保持するアルファチャンネルを含まない、RGB値だけのテクスチャを使用している。そのため、モンスターを倒した時、半透明になって次第に消えていく表現や、降臨モンスターがまだらに穴が開いたように消えていく表現のために、カスタムシェーダーを書いて対応している。
また、プレーヤーキャラクターの肌や目も、グレースケールで陰影の情報だけを作成しておき、プレーヤーがキャラメイクで選択したスキンカラーに対応した色の値を、シェーダーが画面にドローする際に適用して、適切な肌や目の色に変更している。スキンカラーには、マットになりすぎて立体感が失われないように、ベース色に加えてハイライトとシャドウ用のカラーが用意されている。
「FF」シリーズといえばおなじみのクリスタルの表現についても、専用のシェーダーが用意されている。ベースとなるブルーのクリスタルのカット面を表現するテクスチャに、周辺環境とはまったく関係のないグレースケールの低解像度マップをUVスクロールさせ、その明暗の移り変わりから、擬似的にそれっぽくスペキュラ光を表現する手法が取られている。実際、光が揺らめき、移り変わるさまのアニメーションがあると、クリスタルのきらめきに見える。もちろん厳密なライティングと反射、屈折の計算結果にはかなわないだろうが、データや計算速度、バッテリーの制約が厳しいモバイル環境では、十分アリと言える手法だろう。
本セッションで解説された「FFGM」の開発支援ツールを活用したワークフローも表現の工夫も、目新しいものではなかったが、適切にやるべきことをやっているな、という印象だ。特に、コンバートのバッチングツールやバージョンチェッカーなどは、決して難しいものではないが、確かに気が利いているなと思えた。
これらは、プロジェクトに余裕がなかったりすると、大量のデータを自身の手でさばかないプログラマの視点で、比較的軽視しがちな部分である。直接プロジェクトのロジックコードを書かない、プロジェクトから半歩離れたサポートエンジニアを置くというマネージメントが奏功したということだろう。
あらかじめ過大な想定を立てて、要不要が判然としないツールを用意するわけではなく、ニーズが明確になったら自前のツールを作るというスタイルも、本作がそれほど大きな規模ではないモバイルプロジェクトだとすれば、至極妥当な判断だと言える。
セッション最後の質疑応答では、参加者からかなり多くの質問の手が挙がっていた。予定より早く進行したとは言え、こういったセッションで、物怖じせずにこれほど多くの筆問が飛ぶのも珍しい。なかには、本セッションで解説されたような開発支援ツールを自前で作って開発効率を高める手法が新鮮だったり、羨ましく感じられた参加者もいたようだ。質疑応答が活発だったのは、登壇者の話題選択の妙と参加者の熱意が相まった結果というべきだろうか。
参加者の質問は講演内容に対するものが多かったため、筆者は趣向を変えて、クルーズにとって、本作のスクエニ側のチェックは厳しかったか、という質問にしてみた。以前、「ファイナルファンタジー ブレイブエクスヴィアス」のインタビューをしたとき、なかなか手ごわいという印象を持ったからである。
この問いに対しての渕上氏、野澤氏、両名の答えは、意外にもそれほど厳しくはなかったというものだった。本作のチェックにおいても、もちろん「FF」ならではのこだわりの部分があり、チェックのハードルは決して低くはなかっただろう。それでも厳しくなかったとしたのは、スクエニ側の指摘内容に対して、クルーズ側に一定の納得があったということと、やはり「FF」シリーズの名に恥じない品質のものを作りたい、という想いがあったからに違いない。お互いの顔を見合わせた、渕上氏、野澤氏の表情からは、確かな信頼関係が感じられた。セッションの最後には、神獣戦の導入も発表された「ファイナルファンタジーグランドマスターズ」。今後の進化が楽しみだ。
(C)2015,2016 SQUARE ENIX CO., LTD. All Rights Reserved. Developed by Alim Co., Ltd.