『FFXIV』におけるキャラクターのAI意志決定技術とは
2016年8月24日~26日の3日間、パシフィコ横浜で開催された、日本最大級のコンピュータエンターテインメント開発者向けカンファレンス“CEDEC 2016”。最終日となる8月26日に、レギュラーセッション“FINAL FANTASY XV におけるレベルメタAI制御システム”が行われた。本稿では、スクウェア・エニックス 第2ビジネス・ディビジョン プログラマー陣によって行われたセッションの模様をお届けする。
本講演では、おもに『ファイナルファンタジーXV』(以下、『FFXV』)において、AIのキャラクターやモンスターなどを、いかに自然に描くことができるのか。そのために用いられるAI制御システムについての解説が行われていった。おもな講演内容は以下のとおり。
・AI vs レベルデザイン 終わりなき戦い
・神様仏様「メタAI」様
・プレイヤーだってAIなんだぜ
・モンスターAIって大変
メタAIの活用による全体のAIのコントロール
まずはじめに、仲間のメタAI実装を担当する上段達弘氏が登壇。AIをレベルで制御するための課題と対策、メタAIを活用したシステム例についての紹介が行われた。本講演におけるレベルとは、マップ・キャラクターの配置やイベントの配置・制御、ゲームバランス設定といったレベルデザインの部分を指している。これらのレベルからの指示によって、各キャラクターたちは自分で考え、自律的に行動するわけだが、AIが好き勝手に動いてしまうと、状況によってはゲーム進行に弊害が出てしまうことがある。こういった状況下で、AIをいったん止めてしまえば、ゲーム進行には影響が出なくなるのだが、そうすると今度はキャラクターとしての柔軟性が損なわれてしまい、視覚的に違和感のある状態となってしまう。このように相反する状態を解決する手段として、AIは止めずに、モードを切り替えることで対応を図っているとのこと。
AIでキャラクターを制御する際、次に問題になってくるのが個々のキャラクターAIの判断と、レベルが出せる指示の限界となる。たとえば、レベルが「プレイヤーキャラクターを先導せよ」という指令を出した場合、AIキャラクターたちは皆が一様にプレイヤーを先導してしまうと、見た目的にもおかしな状況になってしまうが、これを解消するのがメタAIの役目となっている。
メタAIとは、AIシステム全般を俯瞰して、適切な指示を振り分ける存在で、このメタAIの制御によって、ゲーム全体のキャラクターたちの動きが、違和感なくコントロールされるというわけである。
台本の抽選とAIの意識表現による会話システムとは
続いて紹介されたのは、ゲーム内のAIキャラクターたちが、普段何気なく行っているさまざまな会話をするためのシステム“AI会話量産システム”について。このAI会話量産システムの基本は、レベル・メタAI・各AIが会話を発生したいと思ったタイミングで、台本再生リクエストが発行されることから始まる(台本=ひとつの会話のかたまり)。このリクエストに沿って、メタAIが現在の状況にあわせた台本グループを指定し、その中から再生条件を満たす台本が抽選で選ばれる仕組みになっている。たとえば状況が“夜”で、なおかつイグニスがいる場合に、“イグニスが宿泊を勧める台本”が抽選されたり、バトル中での会話にしても、状況が厳しいとき、余裕のとき、それぞれに即した会話が選択されるといった具合に、違和感のない会話が自然と発せられるというわけだ。
さらに、会話がより自然に見えるようにするため、各AIへの意識変更の指示もメタAIから行われる。これは、会話の内容によって、話者のほうに体や首を向けてみたり、自分が話者の場合はそれなりのモーションを与えるなどの指示が送られ、結果的に違和感のない会話シーンが出来上がるというわけである。また、移動中の会話などでは、各キャラクターの位置関係が固定されていないが、このときも各キャラクター間の距離や、向いている方向などに応じて、臨機応変にAI側がモーションを制御してくれるとのこと。このように、適切な状況に適切な会話を、適切な動作を交えてくり出すことが、“AI会話量産システム”の役割である。
メタAI、キャラクターAI、ナビゲーションシステムの連携でシームレスなイベントに対応
次に、F2F、汎用AIモード実装を担当する高橋光佑氏が登壇。対面式の会話システム“F2F”の説明が行われた。“F2F”とは、“Face to Face”の略で、相手の顔を大きく映し、会話を対面式で行うシステムのことを表している。この“F2F”は、“メタAI”、“キャラクターAI”、“ナビゲーションシステム”の3つの要素で成立している。基本的に、“F2F”はいつ発生するかわからないものとなっている。そのため、会話データは共通としながらも、発生状況は地上、車内、宿などといったように、複数の状況に汎用対応できるようにしておく必要がある。この状況を想定し、適切な指示を出してくれるのも、メタAIの役割のひとつ。
また、“F2F”はシームレスに発生させる必要もあるが、そのときにキャラクターが適切な位置にいるとは限らない。そんな状況において、キャラクターAIを補助してくれるのが“ナビゲーションシステム”である。“ナビゲーションシステム”は、移動元と移動先の座標を受信し、現在移動可能な道を検索した後に、キャラクターAIに伝達。これを元に、キャラクターが自然と場所を移動し、“F2F”が発生するというわけである。
AIによる会話システムの説明のあとは、最初に上段氏が述べていた、“AIモード切り替えシステム”についての紹介が、引き続き高橋氏より行われることに。“AIモード切り替えシステム”とは、レベルの演出的に、一時的にAIの行動をモード単位で指定する仕組みのことで、通常稼動(指定のない)のAI以外に、Wait、Go To、Lead、Routeモードなどが存在している。AIモードの使命は、レベルプランナーが、柔軟かつ簡素にAI行動を切り替えられることと、AIプランナーが各キャラクターのAI行動を効率よく作成・編集が行えることの2点。AI行動の柔軟かつ簡素な切り替えのためには、“共通枠組み”を、AI行動の効率のよい作成・編集のために“アセット化・オーバーライド”という概念を導入しているとのこと。基本的に『FFXV』のAIは、ステートマシンとビヘイビアツリーのハイブリッドとなっており、ノードの集まりをトレイとして管理し、そのトレイを階層構造にしていることが最大の特徴となっている。
たとえば上層のトレイに、各キャラクターごとの通常稼動AIやWaitモード、Go Toモードなどを配置し、その下のトレイに各モードの具体的な実装や、各キャラクターの普段のAI行動を書き込むといった具合にしているとのこと。
次に、トレイの仕組みを共有したい場合、別の場所に配置して使い回すことができるアセット化については、AIモードではトレイの無駄な実装を省くためにも、積極的なトレイの共有をしている。そのため、通常稼動時でもいろいろなトレイが実装されているとのこと。さらに、AIのトレイは、その構造を共有しながら、必要な箇所を専用のものに書き換える、オーバーライドも可能になっている。
これらの階層構造やオーバーライドにより、異なるAIキャラクターにプレイヤーを導くといった同じ行動をさせる場合でも、比較的容易にそれぞれのキャラクターにあわせた方法(仕草)で表現することが可能になる。
ユーザー制御とAI制御の並列動作による没入感の向上
3人目の登壇者としてステージに立ったのは、AI Graph Editor、仲間バトルAIを担当する下川和也氏で、“プレイヤーキャラクターAI制御”についてが語られた。なぜ、プレイヤーキャラクターをAI制御するかについては、他のAIキャラクターやゲーム世界への調和のためで、AI制御することにより、プレイヤーキャラクターをゲームの世界に溶け込ませることができ、さらなる没入感が得られるとのこと。
プレイヤーキャラクターのAI制御を行うにあたって、ユーザー操作とAI動作のどちらを優先させるべきかといった課題があったが、これはユーザーの操作中もつねにAIキャラクターとして並列動作させることで問題を解決。バランス調整は、レベルとメタAIが担当している。
バトル中に仲間にアビリティを使うように指示できる“仲間コマンド”については、“イグニスが複数の敵にナイフを投げてマーキング”、“マークの付いた敵にノクトがシフトブレイク攻撃”、“QTEでノクトが追撃”といったように、さまざまなAIシステムを連動させることで、没入感の向上に繋がり、コンテンツ制作の幅も広がることとなっている。
リアルな生き物の動きを実現するためのAIとアニメーションの細密化
最後に、エネミーキャラクターAI実装を担当する並木幸介氏がステージに登壇。『FFXV』におけるモンスターAIの実装についての解説が行われた。並木氏によると、現在のゲーム制作ではリアリティ追求の結果、動きがどんどん細密化していっており、AIは5年前と比べて、考慮すべきものが格段に増えてきているとのこと。たとえば、従来行っていた、その場での回転が終わってから行動を開始するという動作をしていると、ギクシャクしたものとなってしまい、生物感を得ることが難しくなってしまう。そのため、現在は行動しながら回転も同時に行うといったように、動きの並列化、同時化が進行している。
これらのリアルな生き物の動きの背景には膨大なデータがあるが、データドリブン式のワークフローを突き詰めていったところ、ゲームデザイナーが多くの自由を手に入れた代わりにデータ量が極端に増大するという結果となってしまっている。人手で作れる物量を若干超えてきてしまった箇所もあったため、一部オートメーション化を試みたとのこと。
2000年代のゲーム開発を見ると、AIとアニメーションの制作作業は分業されていたのだが、AIが細密化してきたことにより、この境界が曖昧になってきたと並木氏。現在のAIとアニメーションの関係は、システム間の境界が限りなく小さくなってきており、より細密なクオリティが実現できるようになっているとのこと。AIとアニメーションの分業ができないと、作業負荷やコストが増大していくため、将来的には自動化技術をより進めることで、コストの増加がなく、いっそうの細密化が実現できる可能性が考えられる。
『FFXV』では大規模なデータ、大規模なプログラムで細密化を実現したが、人間の作業量が多すぎるものはオートメーション(自動)化して対応を図っているとのこと。今後もハイエンドタイトルでは細密化の要求は高まり続けることが予想されるため、よりいっそうAIとアニメーションの自動化の取り組みを進めていくことが重要だと並木氏は締めくくり、本セッションは終了となった。