国内最大規模のゲーム業界カンファレンス「CEDEC2024」が、2024年8月21日(水)から8月23日(金)までの日程で開催され、初日となる8月21日には「『FINAL FANTASY VII REBIRTH』における会話イベントの量産とアニメーションワークフロー」と題した講演が行われました。
株式会社スクウェア・エニックスからリードアニメーション&カットシーンプログラマである原 龍氏が登壇し、大規模開発環境でのアニメーション関連シーン作成のワークフロー改善や量産時の品質を高めるための知見が解説された本講演をレポートします。
『FINAL FANTASY VII REBIRTH』会話イベントはカメラもライティングも自動生成されていた。大規模開発で「誰が直すの?」に陥らない、プロシージャル活用の可能性【CEDEC2024】
TEXT / ハル飯田
EDIT / 酒井理恵
目次
『REMAKE』で見えた課題を『REBIRTH』で解決するために
本講演のスピーカーを務めたのはスクウェア・エニックスの原 龍(はら りょう)氏。『FINAL FANTASY VII(以下、FFVIIと表記)』のリメイクシリーズでアニメーションプログラマーを担当しており、ランタイムアニメーションイベントやカメラ付き会話イベント、アーティスト向け作業環境整備など幅広い役割を担っています。
最初のトピックは「会話イベントシステムの再構築」について。リメイクシリーズ1作目となった『FINAL FANTASY VII REMAKE(以下、REMAKEと表記)』のイベントシーンは、アーティスト主導で実装された「カットシーン」とゲームデザイナー主導で実装された「会話イベント」との2種類に大別できます。
講演ではそれぞれの映像が紹介された上で、原氏は両者の間で「映像品質に大きな隔たりがある」ことを指摘。仕組みも工数にも差があるため単純比較できるものではありませんが、それぞれのシーンをシームレスに接続して連続再生されるとユーザー目線ではどうしても気になる要素になってしまいます。
『REMAKE』開発を終えた段階でのポストモーテムでは、アーティストからは「カットシーンと会話イベントの品質差が大きいことによる没入感の低下」が問題として挙げられました。アーティストではなくゲームデザイナーが修正作業を行うことも、指示の伝言ゲームを生み、イテレーション効率を悪くしていました。
対して同時期のゲームデザイナーからのポストモーテムを見ると、会話イベントはフラグ管理や分岐などゲーム進行に影響を与える仕様が多いため、イベントシーケンス構築や不具合の対応を考えるとゲームデザイナー側での実装が望ましいものであることが分かります。品質を上げたい気持ちはありながらもアーティストに丸投げする訳にもいかない作業でした。
2桁以上の人数で分担して組み込んでいく環境に一貫した高水準を求めるのも難しく、『REMAKE』では「あちらを立てればこちらが立たない」大規模開発ならではの問題に陥ってしまっていました。
リメイクシリーズ2作目となる『FINAL FANTASY VII REBIRTH(以下、REBIRTHと表記)』では、こうした前作の課題だけでなく、広大なフィールドと多くのサイドコンテンツ実装によってイベントシーンが大量に増えることが既に分かっていたため、開発に向けて量産体制の見直しと品質向上の検討が必要になりました。そこで、まずは現状のワークフローの整理から進めることにしました。
会話イベントの課題を分割し、新たなワークフローに落とし込む
『REMAKE』と『REBIRTH』のカットシーンの制作フロー
カットシーンのアセット構成は『REMAKE』と『REBIRTH』で大きな変更は無く、最大限の品質を目指してそれぞれのセクションが専門性を生かして実装していくフローでした。特徴は工数が高く、変更対応の負担も大きいということ。ゲームとのシームレスな接続においては予期せぬ不具合も起こりやすかったそうです。
このフローを踏襲すれば、会話イベントでもカットシーン並みの品質の高さを維持できますが、膨大な数の会話イベント作成への流用は工数面でも管理面でも現実的ではありません。会話イベント用には、実装の手軽さを重視した専用のフロー構築が必要でした。
『REMAKE』の会話イベントの制作フロー
『REMAKE』における会話イベントのアセット構成はカメラが付くか否かで大きな違いはなく、大量のイベントを管理・実装するため実装工数が比較的低いフローになっています。会話イベントはすべてExcelで管理していました。この方法は、検索ツールやエラーチェッカーなども充実している点が特徴です。
ラーニングコストが低いものの、カメラ付き会話イベントを作る上では『REBIRTH』で求める品質には達していませんでした。
『REBIRTH』では会話イベントの制作フローをどう変えたか
続編となる『REBIRTH』におけるカメラ付き会話イベントの開発に求められている条件は以下のものでした。
この実現に向け、まずは「カメラ無し会話イベント」「カメラ付き会話イベント」「カットシーン」の3種に担当者が分かれていたもののうち「カメラ付き会話イベント」を「ゲームデザイナーが調整作業を行うカメラ付き会話イベント」「アーティストが調整作業を行うカメラ付き会話イベント」の2つに細分化しました。
ゲームデザイナーが調整作業する場合は、映像品質があまり求められず、実装工数が小さいものを担当します。
アーティストが調整作業する場合は、映像品質が高く、実装工数もやや大きいものです。それでいて、ゲームデザイナーが主導して、イベントシーケンスの構築が可能であるものと定義しました。
定義の見直しによってやるべきことが絞られ、それぞれの解決策も以下のように講じられました。
こうして『REBIRTH』における会話イベント制作フローは以下のようになりました。
『REBIRTH』で実装された、会話イベントを例に工程を確認
ここで、ティファとクラウドが魔晄タンクについて会話するイベントを例に、新しくなった会話イベント制作のワークフローを紹介。Excelで設定した流れを実装確認した後、シーケンス化してカメラの動きやライトを自動生成しています。最後に、アーティストが細部調整をしたことで、きめ細やかな演出が活きた表現になっています。
更に多人数が同時に登場するイベントシーンについても、ほぼ自動生成で完結しているパターンとすべて手動調整で実装された例を紹介。アーティストによる調整が可能になったことでカットシーンと比較しても大きく見劣りしない映像も実現しており、『REMAKE』での課題を見事に解決しています。
『REBIRTH』の新たな制作フローを支えたジェネレーターの仕組み
続いて講演は実装までに使用したツールの紹介へ。まず最初に取り上げられたのはカメラ付き会話イベント編集環境である「Dialogue Editor」です。シーケンサーのプレビューや編集だけでなく、ショットの自動生成に加えてボイスやイベントトリガーの追加・削除などショット情報の変更も可能です。
「Dialogue Editor」の登場により、『REBIRTH』の会話イベントのアセット構成はそれぞれ以下の図のようになっています。
また、カメラ・モーション・ライトの自動生成に使用するジェネレーターは繰り返し“シードガチャ”をするだけでなく、ショットごとの細かな切り替えも可能。イベント内容に合わせて、アングルなどに制限を加えたい場合は使用するジェネレーターを変えることで出力をコントロールしています。
ジェネレーターはブループリントの継承を使って親子関係を作ることも可能です。
親となるロジックを定義したジェネレーターはアニメーションプログラマがアーティストからリファレンスとなる動画を受け取り、それに沿ったロジックを考えて実装。その後の派生先のジェネレーターはアーティストがプリセットを増やすことも可能で、プログラマとアーティストによる共同作業になっています。
実際にジェネレーターによる自動生成を実行する場合、カメラ・モーション・ライトでは工程が前後することもあり、それぞれ2回のPassを通します。
肩越しショットを例にジェネレーターによる自動生成の過程を詳説
カメラ
1st Passではフォーカス対象となるキャラクター(デフォルトでは話者)を確定させ、カメラアニメーションプリセットと立ち位置プリセットを確定させます。
2nd Passでは、フォーカス対象キャラクターの頭の位置からの相対位置でカメラを設定します。そのままでは頭が画面の中央に来てしまうため、三分割法で適切な写り方となるよう、カメラの位置を平行移動させます。これでカメラの基本位置が決まるため、周囲のキャラクターのバウンズ範囲を参照して邪魔になってしまう人物を移動させるなどの処理を行い、キャラクター位置も調整。
ライト
汎用ライトの自動配置ロジックもカメラの場合と同様に、ショットにおけるライトフォーカス対象キャラクターを確定させ、カメラ位置とフォーカス位置から確定したライトプリセットに合わせて4つのスポットライトを当てるという手順を踏んでいます。ライトもカメラ同様に追従設定が可能です。
イマジナリーラインを考慮したカメラアングル
イベントシーンのカメラアングルについてはイマジナリーライン(※)を超えないカメラ移動の制御も必要になりますが、3人以上のキャラクターが向かい合って会話をするシーンの自動生成カメラでは破綻が起きやすい複雑な処理になってしまいます。そのため『REBIRTH』ではキャラクターをグループ化したイマジナリーラインに置き換えて対応しています。このときのグループ化は「パーティキャラクターか否か」が基本的なルールとなっています。
※ 対話者の間を結ぶ仮想の線。映像制作上の基本原則で、この線を超えてカメラの移動や編集をしてはいけないとされている
条件分岐発生時のショット遷移
ショットの冒頭ですぐに条件分岐が発生し、次のショットへと遷移するようなシーンでは、最初に1フレームだけ不必要なショットが表示される不具合が起こってしまいます。これを防止するため、事前にセクション情報を収集して次のシーンを先読みする処理を実行し、セクション実行以外のタイミングでも遷移の制御ができるようにしました。この分岐予測によって次にジャンプするショットが予測できれば背景の先読みストリーミングも可能になり、カットが変わる瞬間のフレーム表示防止にもつながっています。
処理負荷軽減からローカライズ対応まで活躍したシーケンサー
イベントの演出はワールドの絶対座標ではなく、レベル配置時の再生基準位置との相対位置で再生を行っています。そのため、カメラの映りが悪い場合などは背景位置をずらすのではなく、再生基準位置をずらすことで調整が可能です。
「キャラクターの位置が変わるとカメラやライトとの位置関係が変わって破綻してしまうのでは?」と思うかもしれませんが、キャラクターが移動した分だけカメラやライトにも同じオフセットをかけ、キャラクターとの位置関係が変化しないよう工夫しています。
シーケンサーで行った処理負荷軽減
また、昨今のゲームは映像表現の進化や広大なフィールド表現などによって物理メモリが足りなくなることは珍しくありません。『REBIRTH』の開発においてもそうした問題を回避するために「不必要なアセットはなるべく読み込まない」という地道な対応を重視しています。再生されるかどうかがまだ確実でない会話イベントはシーケンサーアセットを事前に読み込まず、メモリに常駐させないという方針を基本としました。
プレイヤーが会話イベントを開始した場合、その一言目はシーケンサーの外でカメラ無し会話イベントとして再生します。その間に、シーケンサーアセットの非同期読み込みを行うことで二言目からカメラ演出を開始しています。これによってメモリ使用量のピークを抑えつつ読み込み待ちの時間も無くしています。実は『REBIRTH』の会話イベントはほとんどが二言目からがシーケンサーになっているそうです。
シーケンサーのローカライズでの応用例
『REBIRTH』では、日・英・仏・独の4言語でボイスが収録されています。このローカライズ対応もシーケンサーで行われています。
通常、言語が変わるとボイスごとの尺が変わるため、日本語ボイスの尺に合わせたモーションやカメラワークがずれてしまうという不具合が起こりがちです。
カットシーンではローカライズチームが日本語の尺に合わせて海外原語の尺を調整する工夫をしていますが、会話イベントは数が膨大なため尺合わせはしない方針となりました。そのため『REMAKE』では海外言語の方が尺が長くなってしまう問題への対処として、尺に合わせてシーケンサー全体の再生速度を調整することで解決・対応しています。
シーケンサーのベイク処理や実行時の流れ
シーケンサーへのベイク処理については「Unreal Engine Meetup in Nagoya Season2 Vol.1」にて実施された岡田和也氏の講演「猫でもわかる UE5 シーケンサー自動生成!」の資料が非常に良くまとまっているものとして紹介しました。
また、ここまで紹介されてきたシーケンサー関連の処理がどういった流れで実行されているかも明らかにしました。
『REMAKE』の課題は『REBIRTH』で解決できたのか
『REMAKE』の開発で生まれた課題の解決策として生み出された『REBIRTH』の会話イベント制作フローでしたが、ポストモーテムでは特定のショットだけカメラやモーションを調整した例も含めると、最終的に約9割のイベントでアーティストによる手動調整が行われていたことが発覚。
今後は更にジェネレーターを増やしていくことで改善の見込みがあるのではないかという見方も示し、「個人的には悔やまれるが工数削減には貢献できていたのではないか」と振り返りました。
また、シーケンサー変換を行った後に生成元データが変更された場合、対応事項が多くなってしまったことも反省点として挙げられました。特にUI表示関連でのオプション機能追加などで既存のコマンドが拡張された場合、従来はExcelの書き換えだけで済んでいたものがシーケンサー上での対応が必要になってしまいました。こちらについては、イベントシーケンスに関わる内容はシーケンサーに変換した後もゲームデザイナーがExcel上で編集作業ができる構成に変更し、対策しました。
プロシージャル配置ツールでアニメーションも効率化
ロジックなどに合わせてキャラクターやカメラの自動配置が可能なプロシージャル配置ツールは、大規模開発ではゲームデザイナーが仮配置と接続を済ませてアーティストへとブラッシュアップ作業を引き継げるなど「各セクションの作業タイミングに依存させない」環境を実現できる利点が大きいと、原氏は解説しました。
アーティストとしても実際に組み込まれて動いているものを見てブラッシュアップ作業に取り組めるのでイメージの共有がしやすく、後から処理負荷の調整がしやすいのも大きなメリットです。特に『REBIRTH』では30fpsの「グラフィックモード」と60fpsの「パフォーマンスモード」が選択可能になっているため、処理負荷の対策は大いに役立ったとのこと。
「Skeletal Mesh 群衆配置ツール」で群衆描画時のCPU負荷を削減
『REBIRTH』の開発ではプロシージャル配置ツールのひとつとして、密度などのパラメータに応じてボリューム内にSkeletal MeshをAddComponentしていく「Skeletal Mesh 群衆配置ツール」を作りました。複数種類のモーションを登録しておくことでゲーム進行に応じてイベントトリガーから演技内容を変えることも可能で、MasterPoseで群衆を制御すればCPU負荷削減にもつながります。
軽減に取り組んでもまだ負荷が高い場合には、画面端やカメラから遠い位置など動きが少なくても気にならない群衆はSkeletal MeshではなくInstanced Static Meshで一度に描画してしまうなど、更なる工夫が必要です。実際に『REBIRTH』の作中でも負荷が厳しいカットシーンではStatic MeshとSkeletal Meshのどちらも使用できるよう群衆をセットアップしておき、カメラカットに合わせてイベントトリガーから状態を切り替える制御を行っています。
「VAT群衆配置ツール」で群れの動きを作る
群衆配置ツールではVAT(Vertex Animation Texture)でループアニメーションしているStatic Meshをパラメータで指定して動きを作る「VAT群衆配置ツール」も活用されており、こちらはゲーム内に登場する「フィーラー」が魚群のように集まる表現で主に使われています。
Static MeshをVATによる頂点アニメでループ再生させて群衆配置ツールで動きをつけていく仕組みになっており、こちらもInstanced Static Meshを使って一度に書くことでDraw負荷を下げています。インスタンスごとのカリングはされないため、遠いインスタンスは機能側で数を減らすなどの対応を採っています。
群衆アクターのランタイム更新
ランタイム更新は、まず群衆に関するContextの更新を行う「Actor Tick」、次に最適化に関するContext更新を行う「Optimize Tick」、最後に更新されたContextを参照してインスタンスの座標更新や増減を行う「Post Tick」の3つで行っています。
標準機能化したツールに差し替えて、工数を再配分
従来の音素解析から機械学習ベースに更新したリップシンク
スクウェア・エニックスは社内で機械学習によるリップシンク「Lip-Sync ML」を開発しました。『REMAKE』での音素解析ベースから『REBIRTH』では機械学習ベースに完全移行できたことで不具合なく運用できたことが紹介されました。従来の音素解析と新手法の機械学習が動画でも比較され、特に新たな手法では海外言語でもしっかりとした口の動きが作られていることがあわせて確認されました。
アンリアルエンジンの標準機能になった「Control Rig」への差し替え
CEDEC2020では『REMAKE』の開発にあたってエンジン内に独自のリグの作成ツールを実装したことを紹介する講演も行われましたが、アンリアルエンジンの標準機能になったことで『REBIRTH』では独自ツールはオミットし、機能をノードとして移植する形ですべてControl Rigでの制御になっています。
Control Rigはキャラクターごとに作られていますが、人型のキャラクターが多いこともあって共通で利用するものを用途に合わせて3種類作成して使い回す運用も行われていました。
『REBIRTH』の開発で特にControl Rigについてブラッシュアップされた点のひとつがモーション中に足滑りが起こらないよう固定する「Foot Lock」です。Foot Lockは汎用的に使えるオプション機能として実装されており、独自の「Foot Control」と標準の「Position Based IK」という2種類のノードを組み合わせ、ロックした座標にコントローラーを固定する制御を実現しています。
Foot Lockは「Look At」との組み合わせも相性が良いです。物体を目で追う動きでは多少腰が動くモーションが自然ではあるものの、補正がないと腰の動きにあわせて足が滑ってしまいます。そのため、Look Atで補正を行う前に足のボーンをコントローラーの位置に戻すことで自然なLook At表現を行っています。そのほか、加算ダメージ表現で腰から動かすような表現においてもFoot Lockの制御が活用されています。
また、『REMAKE』の開発でも用いられた位置ベースの物理シミュレーション「Position Based Dynamics」は『REBIRTH』でもControl Rigで汎用的に利用できるようノードとして実装されています。これは、汎用ノード以外にも、吊り橋の表現など共通して実装に活かせるものに特化した専用ノードの作成で活用されています。
会話イベントシーンのワークフロー改善を中心に、自動生成のポイントや使用ツールなど多岐にわたる内容で『REBIRTH』の開発の裏側が解説された本講演。カットシーン以外でもリッチな表現が求められる開発環境において、品質を担保しながら多数のイベントを作り上げていくための知見が詰まった内容となりました。
『FINAL FANTASY VII REBIRTH』公式サイト『FINAL FANTASY VII REBIRTH』における会話イベントの量産とアニメーションワークフロー - CEDEC2024大阪生まれ大阪育ちのフリーライター。イベントやeスポーツシーンを取材したり懐ゲー回顧記事をコソコソ作ったり、時には大会にキャスターとして出演したりと、ゲーム周りで幅広く活動中。
ゲームとスポーツ観戦を趣味に、日々ゲームをクリアしては「このゲームの何が自分に刺さったんだろう」と考察してはニヤニヤしている。
関連記事
注目記事ランキング
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
1
2
3
4
5
連載・特集ピックアップ
西川善司が語る“ゲームの仕組み”の記事をまとめました。
Blenderを初めて使う人に向けたチュートリアル記事。モデル制作からUE5へのインポートまで幅広く解説。
アークライトの野澤 邦仁(のざわ くにひと)氏が、ボードゲームの企画から制作・出展方法まで解説。
ゲーム制作の定番ツールやイベント情報をまとめました。
東京ゲームショウ2024で展示された作品のプレイレポートやインタビューをまとめました。
CEDEC2024で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブル2024で行われた講演のアーカイブ動画・スライドをまとめました。
CEDEC2023で行われた講演レポートをまとめました。
東京ゲームショウ2023で展示された作品のプレイレポートやインタビューをまとめました。
UNREAL FEST 2023で行われた講演レポートをまとめました。
BitSummitで展示された作品のプレイレポートをまとめました。
ゲームメーカーズ スクランブルで行われた講演のアーカイブ動画・スライドをまとめました。
UNREAL FEST 2022で行われた講演レポートやインタビューをまとめました。
CEDEC2022で行われた講演レポートをまとめました。