コンピュータエンターテインメント開発者を対象としたCEDEC2023が、2023年8月に開催された。本稿では、スクウェア・エニックスの橋本祐介氏によるFINAL FANTASY XVI:大規模ゲーム開発に向けて開発環境の取り組み」の講演内容をレポートする。

本作での取り組みは、CEDEC2017の講演「『ゼルダの伝説 ブレス オブ ザ ワイルド』のプロジェクト運営 ~試作から製品までシームレスに!~」でのツールやデバッグに関する内容を参考にしたとのことで、ゲーム業界におけるCEDECの重要な役目まで伝わる内容となっていた。

記事の目次

    『FINAL FANTASY XVI』の開発環境

    本講演では2023年6月にリリースされた『FINAL FANTASY XVI(以下、FF16)』の開発環境について、橋本氏がチームを代表して解説してくれた。

    橋本祐介氏

    スクウェア・エニックス
    第三開発事業本部 リード システムプログラマー
    www.jp.square-enix.com

    橋本氏はレベルファイブでリードエンジニアとして活躍した後、2018年からスクウェア・エニックスの第三開発事業本部に移籍。その橋本氏が、開発環境セクションのリードエンジニアとして、まずは『FF16』の開発環境を以下のように紹介してくれた。

    コーディング

    Microsoft Visual Studio 2019(C#/WPF+DevExpress)

    ソースコードやアセットなどのバージョン管理

    Perforce

    CI(Continuous Integration:継続的インテグレーション)

    Jenkins

    コード解析

    Coverity

    Webツール

    Confluence(情報共有)、Jira(タスク管理)、Fisheye(リポジトリアクセスツール)、Crucible(コードレビュー支援ツール)

    チャットツール

    Slack(情報共有)

    第三開発事業本部にとっては、PS5世代の初タイトルとなった。『FF14』を開発した際の基盤はあったものの、それも約10年前のものであり、今回PS5に合わせて開発環境を一新した。

    機能面の拡充はもちろんだったが「運用が円滑にできること」、「一貫性のあるツール」と、昨今の開発トレンドも見つつ必要なものを取り入れることを意識し、効率などを分析しながら日々、環境の改善を続けたという。

    『FINAL FANTASY XVI』
    対応機種:PlayStation 5
    ジャンル:アクションRPG
    プレイ人数:1人
    CERO:D
    jp.finalfantasyxvi.com

    開発ツールの作成

    チームが新たに作成した開発ツール群では、次の3点に特に注意が払われた。

    ①部署ごとの事情に合わせた効率性
    ゲームエンジンのような統合環境も良いが、自社の強みを活かすため、各部署ごとに機能を限定し最適化されたツールが用意された。必要な機能を限定したことにより、起動や動作が軽量になり、アーティストが効率的に作業を行えるようになった。

    ②UIデザインと機能の統一
    各ツールのUIデザインを、UI監修担当のアーティストが主導し統一、市販のDCCツールレベルのクオリティを意識してつくり直した。また、機能面では各部署でのレビューを定期的に行い、同一機能の共通化、似た操作フローを統一するよう改善を続けた。各ツールは社内で使われてきたNEX(表データ管理システム)というシステムと深く連携しており、ゲームデータの定義や情報の参照・書き換えが可能となっている。

    ③導入の簡易化
    必要なツールを一気に導入できるインストーラを用意し、Web経由でのダウンロードと環境構築を自動化した。これにより、大規模開発時の導入の統一化やエラーの削減が期待できる。社外の協力会社向けにも専用インストーラを用意し環境を統一した。

    では、実際のツールについて見ていこう。

    ランチャーツール

    最新環境の取得とツールのランチャー(起動)機能を兼用したツールを用意。このツールさえ起ち上げていれば、全ての要素にアクセスが可能であり、過去バージョンに切り替えることも可能になっている。

    マップエディタ

    クオリティ維持のため、小規模モデルを用意しそれらを組み合わせてマップを構成する。大きなマップを1つのモデルとして用意するとテクスチャの解像度が不足し、クオリティが低下する恐れがあるためこのようなアプローチを採用している。状態遷移によるアニメーション制御も可能だ。

    キャラエディタ

    キャラクターモーションアーティスト、VFXアーティスト、サウンドゲームデザイナーなどが使用するツール。キャラクターモデルの調整を中心に行い、アニメーションやコリジョン設定などの制御が可能だ。ゲーム内でのデバッグ機能と連携して、キャラエディタでの確認や調整が容易に行える。

    カットエディタ

    カットシーンのレイアウト、モーション、ライティングなどのアーティストやサウンドゲームデザイナーが使用するツール。オーソドックスなカットシーン制作機能が実装されており、アクターの登録やタイムライン制御、カメラの定義、カーブ編集などが行える。特定のシーンをムービー化するための連番キャプチャや動画作成機能もサポートされていて便利に活用できる。

    バトル中のカットシーン、ボタン入力によるショットの分岐にも対応している。過去のワークフローでは同時編集の問題が頻発していたため、その点についても工夫された。

    長尺のカットシーンの実装を効率化するため、事前の定義に基づき、必要なアクターの登録やクリップの自動配置が行われるようになっている。この機能はアーティストにとって非常に有益である一方、大部分の作業が自動化されているためツール開発のコストと利用時のコストとのバランスが難しかったそうだ。

    VFXエディタ

    VFXの制作に特化したツール。エフェクトの基本設定やパーティクル設定、物理ベクターフィールドなどの各種モジュールの設定が行える。特にテクスチャブレンダー機能は、複数のテクスチャの合成を直感的に行うことができるペイントソフトのレイヤーのような便利なUIを提供している。一般的なテクスチャツールのように、複雑なノードを組む必要がない点も特徴である。

    UIエディタ

    主にUIの制作を行うツールで、シンプルながらも多機能な設計がなされている。特徴としてベジェ曲線を用いたメッシュ生成が可能で、タイムラインに制御点を配置して細かいUIアニメーションを指定することができる。


    ここで紹介されたツールは、ゲーム開発の効率化とゲーム品質の向上を目的として設計されており、カットシーンやVFX、UIの制作に関しては、従来の制作工程よりも効率的に作業を進めることができるようになっている。

    モデルの再利用やタイムラインで細かい設定ができる機能は、開発のスピードとゲームの品質を両立させるための重要な要素となっている。

    開発効率アップのための機能

    録画ツール:Recorder

    このツールはゲーム、ツール画面を自動的に録画する常駐ツールで、一定時間の操作を常に録画しておき、任意のタイミングで直前の作業やゲーム画面をさかのぼって保存することができる。デスクトップ画面の任意の領域を指定したり、動画ファイルのアップロード操作や、一覧ページなどの操作が実装されており、便利に利用できる。この講演資料の動画にも、このRecorderツールが活用された。

    Webを活用した評価機能:DevSurvey

    開発中には多くの調査や情報収集が必要となるため、情報を集計しWeb上で確認できる機能が提供されている。特に、ツールでの問題や、ゲームが止まってしまう「例外」と呼ばれる動作が発生した際、専用のダイアログを通じてレポートを提出できるハングレポート機能が用意されている。動画収録には前述のRecorderが用いられている。ここでのレポートは、問題の詳細や環境情報、ログなどを自動で専用のデータベースに記録する。

    ロケーション共有機能

    開発中に特定の場所や状況を共有したい場合に使用される機能。ゲームやマップエディタの特定の座標や状況を保存し、他の開発者と共有できる。この機能は、問題の再現や確認を迅速に行うために非常に有効で重宝された。QA(品質保証)チームとの連携を強化するための機能も提供されており、バグチケットの作成や更新が可能で、テンプレートを使用して必要な情報を自動入力できる。これにより、問題の報告や追跡が効率的に行えるようになっている。

    アセットやマップのURL連携

    ゲーム開発者はURL経由で、特定の情報やアセットに直接ジャンプできるようになっている。URLリンクを通じてツールやゲーム内の特定の場所やアセットを直接開くことができる機能。これらのURLは簡単にコピーしてチャットツールSlackで共有することができるため、効率よくコミュニケーションがとれるようになった。

    アセット解析

    大規模なゲーム開発では、多数のスタッフが数多くのアセットを同時に作成するため、アセットの一覧化や解析が必須となっている。アセットの情報はデータベースに記録され、詳細情報としてアセットブラウザに表示される。アセット間の依存関係も解析され、これによりアセットの移動や削除、リネームなどの操作が容易になった。

    依存関係の解析時間の増加が問題となったが、解析対象を特定のファイルに限定し、解析の高速化が図られた。また作業中は個人のローカル環境で編集中だったなど、コンフリクト(操作の衝突)が多発し、その対処として、アセットの移動・削除・マージは全て時限予約式に変更し、夜中に実行されコンフリクトが生じた場合は通知を出した上で、次回の予約に回すなどの工夫がなされた。

    ファイルのバージョン管理にPerforceを利用することで、ファイルサイズやファイルの整合性の検証に利用するMD5などの情報を素早く取得できるようになった。これにより、アセットの重複チェックなどの作業が効率化され、100万個以上のファイルの依存関係の解析も15分程度で完了するようになった。

    ビルドフローの進化と課題

    情報地図の導入

    Web上で各マップのロケーションに関する情報を確認することができるようになった。マップの自動巡回やキャプチャ機能を通じて、マップの効率やその他の情報を確認できる。地図上の特定の地点にURLでジャンプする機能や、日々の差分やゲームプレイの集計結果も確認できるようになっている。

    ビルドフローの改善

    アセットのコンバートに関する作業を効率化するため、ツールでの保存時に即時コンバートを実施するローカルコンバートと、CIで更新された際にサーバ側でコンバートされる2つの方法を導入。ローカルコンバートは高速に出力可能で、即時確認ができるようになっている。

    CIのビルド種別は4種類あり……

    ・アセットが更新された際のトリガーで行われる即時ビルド
    ・1時間に1回のアワリービルド
    ・毎晩行われるナイトリービルド
    ・GI効果のベイク(質感をテクスチャに焼き込む)や中遠景のマージなど時間のかかるアセットに別途対応する長期ビルド

    などが使い分けられた。

    課題と今後の方針

    現在、ビルドマシンの数が200台を超えており、リソースの増加とともにビルド時間の増加が課題となっている。クラウド化の検討も行われたが、コストの問題で断念された。ただし整合性を保ち安定したアセットを担保できる点は評価されており、今後は一部のクラウド化を検討しつつ、バランスを取る方針が考えられているとのことだ。

    『FF16』開発と今後の展望

    今回のプロジェクトでは、過去のCEDECの講演や開発事例を参考にし、実際の開発フローに合わせた細かい要件の実装が行われた。これによりニーズに即応できる柔軟性を得ることができたという。

    特に、アセットや環境面での安定化を担保できた点や、スタッフとの連携を通じて得られた経験値は計り知れないものとなった。開発中に新たな発見やチャレンジができたことも、このプロジェクトの大きな収穫であった。

    しかしながら、まだスタートラインに立ったばかりの段階だともいう。開発コストの増大を考慮すると、今後のレイクスルーとなる施策の導入が不可欠となっているためだ。自動化の分野においても、まだ課題が多く残されており、AI技術などを活用して、新たな取り組みを検討していく必要があるとのこと。

    橋本氏は最後に、「今回の開発は多くの学びとともに、次のステップへの布石となりました。実現できなかった施策も多い中、今回の取り組みを次のプロジェクトへの糧としたい」と締めくくり、講演を終えた。

    講演資料

    FINAL FANTASY XVI:大規模ゲーム開発に向けて開発環境の取り組み(CEDiL)

    TEXT_安藤幸央(エクサ)/ Yukio Ando(EXA CORPORATION)
    EDIT_小村仁美 / Hitomi Komura(CGWORLD)、山田桃子 / Momoko Yamada