『FFXV』におけるAI制御の事例・対応例を解説 AI技術がどのようにコンテンツを成立させていくのか【CEDEC 2016】

2016年8月24日~26日の3日間、パシフィコ横浜で開催された、日本最大級のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC 2016”。最終日となる8月26日に、レギュラーセッション“FINAL FANTASY XV におけるレベルメタAI制御システム”が行われた。本稿で、その模様をお届けする。 

●『FFXIV』におけるキャラクターのAI意志決定技術とは 

 2016年8月24日~26日の3日間、パシフィコ横浜で開催された、日本最大級のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC 2016”。最終日となる8月26日に、レギュラーセッション“FINAL FANTASY XV におけるレベルメタAI制御システム”が行われた。本稿では、スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー陣によって行われたセッションの模様をお届けする。 


00 02 03 04
05 06 07 08
09 10 11 12

 本講演では、おもに『ファイナルファンタジーXV』(以下、『FFXV』)において、AIのキャラクターやモンスターなどを、いかに自然に描くことができるのか。そのために用いられるAI制御システムについての解説が行われていった。おもな講演内容は以下のとおり。

・AI vs レベルデザイン 終わりなき戦い
・神様仏様「メタAI」様
・プレイヤーだってAIなんだぜ
・モンスターAIって大変


TAK_5294

▲『FFXV』の広大な世界に存在するすべてのキャラクターは、AIによって命を吹き込まれている。

●メタAIの活用による全体のAIのコントロール

 まずはじめに、仲間のメタAI実装を担当する上段達弘氏が登壇。AIをレベルで制御するための課題と対策、メタAIを活用したシステム例についての紹介が行われた。本講演におけるレベルとは、マップ・キャラクターの配置やイベントの配置・制御、ゲームバランス設定といったレベルデザインの部分を指している。これらのレベルからの指示によって、各キャラクターたちは自分で考え、自律的に行動するわけだが、AIが好き勝手に動いてしまうと、状況によってはゲーム進行に弊害が出てしまうことがある。こういった状況下で、AIをいったん止めてしまえば、ゲーム進行には影響が出なくなるのだが、そうすると今度はキャラクターとしての柔軟性が損なわれてしまい、視覚的に違和感のある状態となってしまう。このように相反する状態を解決する手段として、AIは止めずに、モードを切り替えることで対応を図っているとのこと。


TAK_5283

▲スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー 上段達弘氏

TAK_5352

▲レベルとAIのせめぎ合いは、全体のAIコントロールを行ううえでの大きな課題点。

TAK_5360

▲狭い通路でプレイヤーがAIキャラクターの向こう側に行こうとした場合、AIが働いているときちんと避けてくれるが……。

TAK_5364

▲同じ通路で、AIの制御を止めていると、AIキャラクターたちが立ち止まってしまい、通行の邪魔になってしまうなんてことも。

 AIでキャラクターを制御する際、次に問題になってくるのが個々のキャラクターAIの判断と、レベルが出せる指示の限界となる。たとえば、レベルが「プレイヤーキャラクターを先導せよ」という指令を出した場合、AIキャラクターたちは皆が一様にプレイヤーを先導してしまうと、見た目的にもおかしな状況になってしまうが、これを解消するのがメタAIの役目となっている。
 メタAIとは、AIシステム全般を俯瞰して、適切な指示を振り分ける存在で、このメタAIの制御によって、ゲーム全体のキャラクターたちの動きが、違和感なくコントロールされるというわけである。


TAK_5373

▲レベルとAIのもうひとつの課題が、判断と指示について。限りあるAIの判断をレベルがカバーできるのか?

TAK_5374

▲AI個人で考えられることと、レベルが各AIに出せる指示には限界がある。そこで頼りになるのが……。

●台本の抽選とAIの意識表現による会話システムとは

 続いて紹介されたのは、ゲーム内のAIキャラクターたちが、普段何気なく行っているさまざまな会話をするためのシステム“AI会話量産システム”について。このAI会話量産システムの基本は、レベル・メタAI・各AIが会話を発生したいと思ったタイミングで、台本再生リクエストが発行されることから始まる(台本=ひとつの会話のかたまり)。このリクエストに沿って、メタAIが現在の状況にあわせた台本グループを指定し、その中から再生条件を満たす台本が抽選で選ばれる仕組みになっている。たとえば状況が“夜”で、なおかつイグニスがいる場合に、“イグニスが宿泊を勧める台本”が抽選されたり、バトル中での会話にしても、状況が厳しいとき、余裕のとき、それぞれに即した会話が選択されるといった具合に、違和感のない会話が自然と発せられるというわけだ。


TAK_5394

▲個々のAIで判断できない全体のコントロールに関しては、メタAIがレベルとAIの間に入ってコントロールすることで、全体の動作が違和感なく行われるというわけだ。

TAK_5397 TAK_5399 TAK_5401

 さらに、会話がより自然に見えるようにするため、各AIへの意識変更の指示もメタAIから行われる。これは、会話の内容によって、話者のほうに体や首を向けてみたり、自分が話者の場合はそれなりのモーションを与えるなどの指示が送られ、結果的に違和感のない会話シーンが出来上がるというわけである。また、移動中の会話などでは、各キャラクターの位置関係が固定されていないが、このときも各キャラクター間の距離や、向いている方向などに応じて、臨機応変にAI側がモーションを制御してくれるとのこと。このように、適切な状況に適切な会話を、適切な動作を交えてくり出すことが、“AI会話量産システム”の役割である。


TAK_5414 TAK_5416 TAK_5417

▲AIによる会話量産システムの基本フロー。さまざまな状況に応じて、適切な会話が行われるようにレベル、各AI、メタAIの役割が決まっている。

TAK_5419

▲会話に合わせて、モーションを変えるといった動作も、メタAIの指示によって行われている。

TAK_5443

▲会話だけでなく、周りの環境の変化(たとえば降雨)にあわせたモーションも、AI制御によって行われることで、より生身のキャラクターらしさが演出される。

●メタAI、キャラクターAI、ナビゲーションシステムの連携でシームレスなイベントに対応

 次に、F2F、汎用AIモード実装を担当する高橋光佑氏が登壇。対面式の会話システム“F2F”の説明が行われた。“F2F”とは、“Face to Face”の略で、相手の顔を大きく映し、会話を対面式で行うシステムのことを表している。この“F2F”は、“メタAI”、“キャラクターAI”、“ナビゲーションシステム”の3つの要素で成立している。基本的に、“F2F”はいつ発生するかわからないものとなっている。そのため、会話データは共通としながらも、発生状況は地上、車内、宿などといったように、複数の状況に汎用対応できるようにしておく必要がある。この状況を想定し、適切な指示を出してくれるのも、メタAIの役割のひとつ。


TAK_5458

▲スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー 高橋光佑氏

 また、“F2F”はシームレスに発生させる必要もあるが、そのときにキャラクターが適切な位置にいるとは限らない。そんな状況において、キャラクターAIを補助してくれるのが“ナビゲーションシステム”である。“ナビゲーションシステム”は、移動元と移動先の座標を受信し、現在移動可能な道を検索した後に、キャラクターAIに伝達。これを元に、キャラクターが自然と場所を移動し、“F2F”が発生するというわけである。


TAK_5478 TAK_5479

▲F2Fを行うにあたっての課題のひとつは、いつ発生するか。これは、メタAIがキャラクターAiを補助することで解決できる。

TAK_5497 TAK_5498

▲続く課題は、F2Fがどこで起こるか。これは、ナビゲーションシステムにキャラクターAIを補助させることで解決。

 AIによる会話システムの説明のあとは、最初に上段氏が述べていた、“AIモード切り替えシステム”についての紹介が、引き続き高橋氏より行われることに。“AIモード切り替えシステム”とは、レベルの演出的に、一時的にAIの行動をモード単位で指定する仕組みのことで、通常稼動(指定のない)のAI以外に、Wait、Go To、Lead、Routeモードなどが存在している。AIモードの使命は、レベルプランナーが、柔軟かつ簡素にAI行動を切り替えられることと、AIプランナーが各キャラクターのAI行動を効率よく作成・編集が行えることの2点。AI行動の柔軟かつ簡素な切り替えのためには、“共通枠組み”を、AI行動の効率のよい作成・編集のために“アセット化・オーバーライド”という概念を導入しているとのこと。基本的に『FFXV』のAIは、ステートマシンとビヘイビアツリーのハイブリッドとなっており、ノードの集まりをトレイとして管理し、そのトレイを階層構造にしていることが最大の特徴となっている。
 たとえば上層のトレイに、各キャラクターごとの通常稼動AIやWaitモード、Go Toモードなどを配置し、その下のトレイに各モードの具体的な実装や、各キャラクターの普段のAI行動を書き込むといった具合にしているとのこと。


TAK_5511

▲このように、メタAI・キャラクターAI・ナビゲーションシステムがそれぞれ柔軟に対応することで、シームレスなイベントの対応も可能になる。

TAK_5517 TAK_5545

▲AIモードの使命は、このふたつ。そのために、必要なものが“共通枠組み”と“アセット化・オーバーライド”となる。

 次に、トレイの仕組みを共有したい場合、別の場所に配置して使い回すことができるアセット化については、AIモードではトレイの無駄な実装を省くためにも、積極的なトレイの共有をしている。そのため、通常稼動時でもいろいろなトレイが実装されているとのこと。さらに、AIのトレイは、その構造を共有しながら、必要な箇所を専用のものに書き換える、オーバーライドも可能になっている。
 これらの階層構造やオーバーライドにより、異なるAIキャラクターにプレイヤーを導くといった同じ行動をさせる場合でも、比較的容易にそれぞれのキャラクターにあわせた方法(仕草)で表現することが可能になる。


TAK_5546

▲AIトレイ構造の概念。このように、ノードの集まりをトレイとして管理し、階層構造にしている。

TAK_5560 TAK_5561

▲AIのトレイをアセット化することで、同じトレイをいくつも用意しなくても、同じような処理を共有化することが可能になる。

TAK_5562 TAK_5565

▲トレイの一部の実装だけを変更するオーバーライドによって、AIモードの部分編集が行え、キャラクターごとの個性を簡単に演出することもできるように。

●ユーザー制御とAI制御の並列動作による没入感の向上

 3人目の登壇者としてステージに立ったのは、AI Graph Editor、仲間バトルAIを担当する下川和也氏で、“プレイヤーキャラクターAI制御”についてが語られた。なぜ、プレイヤーキャラクターをAI制御するかについては、他のAIキャラクターやゲーム世界への調和のためで、AI制御することにより、プレイヤーキャラクターをゲームの世界に溶け込ませることができ、さらなる没入感が得られるとのこと。
 プレイヤーキャラクターのAI制御を行うにあたって、ユーザー操作とAI動作のどちらを優先させるべきかといった課題があったが、これはユーザーの操作中もつねにAIキャラクターとして並列動作させることで問題を解決。バランス調整は、レベルとメタAIが担当している。


TAK_5587

▲スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー 下川和也氏

TAK_5598 TAK_5599

▲プレイヤーキャラクターの動作にAIを介入させることに課題と解決方針。どちらかを優先させるのではなく、並列に動作させることで問題を解決。

TAK_5603

▲プレイヤーキャラクターをAI制御する理由は、他のAIキャラクターたちとの調和を図るため。万一プレイヤーキャラクターにAIが介入していないと、見ていて不自然なものになってしまうとのこと。

 バトル中に仲間にアビリティを使うように指示できる“仲間コマンド”については、“イグニスが複数の敵にナイフを投げてマーキング”、“マークの付いた敵にノクトがシフトブレイク攻撃”、“QTEでノクトが追撃”といったように、さまざまなAIシステムを連動させることで、没入感の向上に繋がり、コンテンツ制作の幅も広がることとなっている。


TAK_5612 TAK_5615

▲降雨時のAI制御ありとなしの一例。周りのAIキャラクターたちは雨を気にする動作を行っているが、AI制御がないとプレイヤーキャラクターは仁王立ちのままに。AI制御があると、プレイヤーが操作していなくても環境に合わせた動きで、世界観に溶け込んでくれる。

TAK_5637 TAK_5658

▲仲間コマンドの処理の一例。このように、さまざまなAIシステムを駆使して、『FFXV』の世界は作り出されている。

●リアルな生き物の動きを実現するためのAIとアニメーションの細密化

 最後に、エネミーキャラクターAI実装を担当する並木幸介氏がステージに登壇。『FFXV』におけるモンスターAIの実装についての解説が行われた。並木氏によると、現在のゲーム制作ではリアリティ追求の結果、動きがどんどん細密化していっており、AIは5年前と比べて、考慮すべきものが格段に増えてきているとのこと。たとえば、従来行っていた、その場での回転が終わってから行動を開始するという動作をしていると、ギクシャクしたものとなってしまい、生物感を得ることが難しくなってしまう。そのため、現在は行動しながら回転も同時に行うといったように、動きの並列化、同時化が進行している。


TAK_5671

▲スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー 並木幸介氏

TAK_5680

▲並木氏が語る、AIの細密化。近年のゲーム制作はリアリティ重視が進んでおり、そのためにキャラクターの動きや動作がどんどん複雑になり、結果的にAIとアニメーション制作の同時並列化が進んでいるとのこと。

 これらのリアルな生き物の動きの背景には膨大なデータがあるが、データドリブン式のワークフローを突き詰めていったところ、ゲームデザイナーが多くの自由を手に入れた代わりにデータ量が極端に増大するという結果となってしまっている。人手で作れる物量を若干超えてきてしまった箇所もあったため、一部オートメーション化を試みたとのこと。


TAK_5700 TAK_5701

▲アニメーショントリガーによる攻撃中回転により、攻撃と回転が一体化。

 2000年代のゲーム開発を見ると、AIとアニメーションの制作作業は分業されていたのだが、AIが細密化してきたことにより、この境界が曖昧になってきたと並木氏。現在のAIとアニメーションの関係は、システム間の境界が限りなく小さくなってきており、より細密なクオリティが実現できるようになっているとのこと。AIとアニメーションの分業ができないと、作業負荷やコストが増大していくため、将来的には自動化技術をより進めることで、コストの増加がなく、いっそうの細密化が実現できる可能性が考えられる。
 『FFXV』では大規模なデータ、大規模なプログラムで細密化を実現したが、人間の作業量が多すぎるものはオートメーション(自動)化して対応を図っているとのこと。今後もハイエンドタイトルでは細密化の要求は高まり続けることが予想されるため、よりいっそうAIとアニメーションの自動化の取り組みを進めていくことが重要だと並木氏は締めくくり、本セッションは終了となった。


TAK_5706 TAK_5709

▲攻撃モーションに関して、これまでは企画がモーション解析システムを使って、アニメーション、攻撃範囲、角度などを計算して調整していた部分を、システムで半自動化することで工数を短縮している。

TAK_5717 TAK_5718 TAK_5720

▲並木氏がかかげる、“AIとアニメーション”のこれまでと現在、これから。自動化技術を取り組んでいくことで、より細密化したAIとアニメーションの融合が可能になっていく。