ニュース
【SIGGRAPH ASIA 2017】「ファイナルファンタジーXV」開発総まとめ(後編)
技術面でも新しい取り組みが続く「FF」世界の舞台裏
2017年12月11日 07:00
「ファイナルファンタジーXV」開発総まとめ(前編)でもお伝えした通り、「SIGGRAPH ASIA 2017」最終日の11月30日、スクウェア・エニックスは、「ファイナルファンタジーXV」(以下「FFXV」)を題材に、同作に採用されているテクノロジー、テクニックを解説するセッションを行なった。
後編では、ゲームの裏側で世界を駆動するAI、そしてゲームとプレーヤーをつなぐ接点であるUIや他言語対応の話題を中心に、2人のプログラマによるセッションの内容をお伝えしたい。
AIによってワールド内に確かに生息するモンスター
AI、人工知能と聞いて、何を想像するだろうか。人によっては、ソフトバンクの「Pepper」や、先ごろ新作が発表された「aibo」をイメージするかも知れない。ゲームの世界では、AIは物理的な物体として存在しないが、仮想的に存在して、自律的に情報収集、知識の蓄積、状況判断を行うものをAIと呼んでいる。古典的には、“思考”、“索敵”、“移動”などと、その機能別に呼ばれてきたもので、単純なアルゴリズムで実装されてきたからか、多少の気恥ずかしさもあって、なかなか“AI”と呼称してこなかったように思う。素直にAIと総称するようになったのは、ここ20年くらいだろうか。
三宅氏によると「FFXV」のAIは、役割別に3つのAIで構成されている。ひとつ目は、メタAIで、これはいわば“神の見えざる手”に相当する。モンスターの配置、フィールド状態の監視、パーティーメンバーへの行動指示、ゲーム進行などを司っており、ワールドをグローバルに制御する。ふたつ目は、キャラクターAIで、これはモンスターやパーティーメンバーが自律的に行動するために存在する。3つ目はナビゲーションAIで、メタAIやキャラクターAIが状況認識に用いるデータを用意したり、配置されたオブジェクトの認識、移動ルートの検索、戦闘における戦術的ポイントの分析といった役割を担っている。
RPGのAIといえば、やはり戦闘中のAIが花形だろう。パーティーメンバーやモンスターは、それぞれキャラクターAIによって自律的に行動している。また、行動時のキャラクターアニメーションも、当然にキャラクターAIの判断に基づいており、AIが実行すると決めた行動にふさわしい、適切なアクションを起こすことになる。
「FFXV」のAIチームでは、この戦闘AIにも、状況に応じて自己の状態を変化させるステートベースAIと、ツリー状の階層構造を持つ選択肢群から選択ルールに基づいて行動内容を選択するビヘイビアベースAIを組み合わせる工夫を行なっている。
例えば、ステートベースAIで、待機、移動、戦闘といった状態変化を繰り返すモンスターが、戦闘状態にあるとき、戦闘のビヘイビアツリーから攻撃を選択して、さらにステートベースAIで攻撃の選択肢から魔法攻撃を選択するといった行動選択の流れになる。この結果、AIによる行動選択を、監視している周囲の状況に基づいて決定することも、選択ルールに基づいて階層構造の選択肢から決定することも、柔軟にできるようになり、キャラクターの行動がより適切で変化に富んだものになる。
上記の他にも、ボス戦闘の場合には、ルールであらかじめ行動内容を定義しておき、一連の行動終了ごとに、条件に一致する次に実行すべきルールを決定している。プレーヤー側からは、自分自身の位置や行動に応じて戦闘が変化するため、何度か戦闘を繰り返して、全行動パターンを把握する必要がある。各パターンに対する有効な対策を立てることが、ボス攻略というゲームプレイの楽しみにつながっており、AIがあればこそ、プレーヤーは最終的な勝利と達成感を得ることができる。
モンスターがフィールド中に可視の状態で表現される「FFXV」では、モンスターによるプレーヤー側キャラクターの索敵、有利な移動先の決定にもAIが活用されている。
索敵のために、モンスターには視界に相当するエリアが設定されており、そのエリア内に入ったプレーヤー側キャラクターにレイ(光線)を飛ばして視線チェックを行ない、実際に発見したかどうかを判定している。
また、有利な移動先の決定には、PQS(ポイント・クエリ・システム)という新しいシステムを導入している。移動先の候補フィールドに対して、動的に一定間隔でポイントを格子状に配置し、不要なポイントをフィルタリングした後、残ったフィールド内のポイントの評価値をみて、最も評価値の高いポイントを次の移動先に決める方法が採用されている。モンスターの個性付けは、ツールを通じて、この評価関数とフィルタリングの指定によって行う。三宅氏によると、このPQSツールの導入によって、たとえプログラマでなくともPQSに基づく移動を自在に制御することができるようになり、従来のプログラマがコードで組み上げるやり方と比較して、格段に実装時間と検証期間が短縮し、クオリティも向上したという。
三宅氏は、このほかにも、実に多くの局面でAIを活用した自動化や分析が行なわれていることを解説していた。中にはAIの枠を超えるものもあったが、ゲームに関連するかなりの部分を視覚化するツールやデバッグモードを用意しており、物事を定量的に分析できる環境が整っていることがうかがえた。
ゲームの手触りを決めるUIに隠された工夫
プレーヤー目線では、その作りに関心を持つことはないUIに関しても、「FFXV」では先進的な概念でプログラミングされている。このセクションで登壇した長谷川氏は、データ駆動型にすることとプログラムインターフェイスの共通化を、本作でのUIのゴールに設定したと語る。
本作の設計では、UIを構成する要素を、役割別にレイアウト、コントロール、ソースコードの3要素に分解している。レイアウトは画面上の配置、コンポーネントはUIの挙動ロジック、ソースコードはUIシステム自身とその他のプログラムとのインターフェイスと、それぞれ異なる役割を担うことから、たとえコントロールに属するロジックに変更が生じても、UIを駆動するシステムそのものは影響を受けない。この設計により、ソースコードのコーディング量を最小化して保守性を高めるとともに、シンプルなUIであればプログラマでなくても作成することができるようにしている。
UIシステムによるUIの制御にも、前述したAIで採用されているステートマシンの概念が取り入れられており、ボタン入力等による外部からのイベントに応じて、状態を変化させ、その状態に応じた表示物の挙動を起こすようになっている。また、コントロールの一部をコンポーネントとしてカプセル化できるようになっており、ここでも可読性と保守性を高めている。
ユーザーに許可する入力操作は、状態別にデータで定義できるようになっており、リビルドすることなく定義データを変更するだけで容易に変更できる。画面上の標示物の表示プライオリティも同様で、優先順位の値を編集するだけで、デザイナーでも容易に変更できるようなっている。
ユーザーの選択に応じて、表示表現を変えると共にデータを操作して、状態を遷移するというUIに求められる基本的な振る舞いは、本質的には、本作で採用しているようなビジュアルスクリプトとの相性が良い。ただ、ビジュアルスクリプトにも弱点はあって、平面に対して自由に配置できる性質上、あらかじめ規約を定めておかないと、取り扱うブロック要素が少し増えただけで、簡単に処理のくくりや、フローの方向を見失ってしまう。
本作のUIスクリプトエディタ画面を見るに、前述したコンポーネント化以外にも、ラベルの日本語対応がなされていたり、ポートやワイヤにもカラーリングされていることから、スクリプトを作成する人間が管理しやすいようにと、数多くの工夫を凝らして製作されていることが分かる。
プレーヤーとの接点という意味ではローカライズの話題も興味深い。本作くらいグローバル展開が当初から視野に入っている作品の場合、英語版を中心にして、日本語版を含めた各国語版を開発しているのかと思っていた。ところが、長谷川氏によると、本作の開発は、あくまで日本語版ありきで、英語版を経て再翻訳されるのは、フランス語、ドイツ語を除くヨーロッパ言語ということだった。韓国語や中国語といったアジア言語のみならず、仏独語まで日本語から直接ローカライズするという流れは少し意外だった。
ボイスに際しては、表示テキストの変更で完結するUI等と異なり、音声が時間軸を持つことから考慮事項が多い。本作では、日本語版はもとより、英語版についても、全面的に唇の動きとボイスが一致するように製作されている。その他の言語について、例えば、仏独語版においては、ゲーム実行のタイミングが変化すると不都合が生じる戦闘、フィールド中、リアルタイムイベントでは、ゲームの時間軸を正にして同期が取られている。
その一方で、全画面をドラマが支配して、シーケンシャルに進行するカットシーンや顔アップ時には、限られたリソースの枠内で実現するために、日本語ボイスの時間軸を正にして同期済みの日本語版のアニメに対して、アニメ尺に合うように工夫して収録された仏独語のボイスをあてこんで製作されている。結果のカットシーンを口元に注目して観ると、確かに吹き替えのイメージがするのだが、全体的なボイスとアニメの印象としては、それほど大きな違和感がない。なお、CGムービーでは、ボイスの音を認識して、英語版のアニメをベースにリップシンクさせて、英語版に近い、より自然なアニメーションにしている。
グラフィックスに関しては、各国ともレーティング機関により承認を受ける必要があり、なかなか煩雑だ。今回は「SIGGRAPH ASIA」ということもあり、中国の表現規制について紹介されていた。国家体制や政治的にセンシティブな項目以外、表現については比較的寛容だと思っていたので、このテーマは意外だった。中国の道徳的な観点からか、総じて人外に対する過激な表現に対して、かなりうるさい印象だ。
シヴァの白い肌に露出度の高い衣装をまとった姿は、通常の人肌に装飾の施された白い全身タイツ姿を着用している姿に変更されている。スケルトンのような骨格のみのモンスターもNGのようで、血肉の通った生物が骨格ペイントを施した姿に変更されている。また、リッチの懐に隠された人間の頭部も、残念ながら削除されている。
このあたりのレーティング対応は、斬新な表現が台無しになってしまうこともあって非常に残念ではあるが、当該国で販売するためにはやむを得ない。表現の自由と青少年保護は答えのない永遠のテーマなので、ゲーム開発者としては粛々と対応せざるを得ない。
他にも長谷川氏は、冒頭で簡単にエフェクトについても触れていた。「FFXV」の水の表現は、着実に進化している。前世代のコンソールでは、反射と透過が適切に表現できていなかったという。PS4世代に進んで物理ベースレンダリングを採用することで、必然的に反射を表現するスペキュラと透過を表現する不透明度を分けるようになり、透明感がありながら反射が乗るようになっている。さらに屈折を加えることで、水表現の要素が揃い、リアリティが向上している。
メモリ空間の制約が厳しいコンソールでは、どうしてもエフェクトに割けるリソースは限られてしまう。キャラクターの優先順位が高いことに加えて、オープンワールドではフィールドに割くメモリも大きいから、メモリ制約は大きくなる一方だ。にもかかわらず、人の眼を魅きつける派手さや爽快感の鍵はエフェクトが握ると言われているから、苦労は絶えない。
そこで本作では、大幅にランタイムでプロシージャルに生成するエフェクトを増やしている。また、細かいプリミティブな部品を組み合わせて、ひとつの大掛かりなエフェクトを組み立てるために、簡単に扱えるノードベースのシェーダーエディタ、複数ノードで構成されるエフェクトをコンポーネント化して、別のノードツリーの一部とする機能、それらのコンポーネントをタイムラインでフロー制御するビジュアルスクリプトエディタといった環境を整えている。
「FFXV」の開発について総じて言えることは、インゲームの表示表現はもとより、ツール環境の表示表現に対しても、十分な配慮がなされているということだ。多岐にわたる大量のデータを多人数でハンドリングするときには、思わぬミスや思い違いによる事故を引き起こす危険性がある。複雑なものを複雑に見せないようにする工夫は、取り扱うデータと処理の概念を正しく理解するためにも役に立つ。優れたツール環境は、作品そのものの品質に直結しているのだ。
「FF」シリーズが常に進化し続ける裏側では、携わるプログラマたちによって、ゲームを駆動するプログラムのみならず、ゲームに命を吹き込むツール環境に対しても、常に新しい取り組みが続けられている。