[CEDEC]「FINAL FANTASY XV」のレベルメタAI制御システムがもたらすキャラクター・モンスターの自然な挙動とは
昨年のCEDECでゲームAIの意思決定などの基礎システムが講演されていたFFXVだが,今年のAIパートを紹介する講演では実際のゲームの中でどのようにAIが使われているかの実例と,そこで出た課題をいかに解決したかということまで踏み込んだ内容を,AIシステムを担当したスタッフ4人が解説してくれた。
まず登壇したのは,メタAIを担当した上段達弘氏だ。彼の「FFXVの広い世界で,すべてのキャラクターはAIで動いています。メタAIに限らずできる限り多くのAIを紹介できればと思っています」との言葉から講演がスタートした。
レベルとAI間に起きる問題をメタAIに解決させる
レベルとAI間の大きな課題として「AIを止めたいけど止めたくない」ということがあったという。基本的に各キャラクターの行動は,AI Graph Editorによって,それぞれが環境や状況を認識して自律的になにをするかを考えて決定している。しかし,レベルデザインの都合上,イベントのために集合する必要が出たりなど,特定の行動をしなければならないことがある。このレベルからの命令は絶対で,ここで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が適切な会話を選んで再生してくれるようになっているのだ。
そして,会話を再生すると同時に,メタAIから各AIへ意識の変更が指示される。会話を聞いているキャラクターであれば「あなたは話者に注目しなさい」という指示が飛ばされ,話者であれば「話者として行動しなさい」という具合だ。続けて各AIはメタAIからの指示に応じて,体や首を話者へ向けたり,話者としてモーションを変えるといった,キャラクターが実際に行動を起こす意識表現を行う。
FFXVでは,こういった一連の流れで自然な会話シーンを実現しているのだ。
あらゆる状況に対応できるF2Fシステム
このF2Fは大きく分けて,ゲームの全体状況を把握するメタAI,キャラクター個別の条件や動作に柔軟対応できるキャラクターAI,動的環境を把握できるナビゲーションシステムの三つで構成されていて,とくにシームレスなイベントの導入でこれらのAIをフル活用しているとのこと。そして,このF2Fに与えられた課題は,複数の発生状況に対して汎用的に対応できるようにすることだという。同じ会話データでも,フィールド上や車内,宿といった違う場所で発生したときに対応できる汎用性が求められ,課題の解決にはメタAIがキャラクターAIを補助するという形を採ったという。
上段氏が説明してくれたように,メタAIは会話しているキャラクターがいるのがフィールドなのか車内なのかなども含めて,全体状況を常に把握している。このメタAIにサポートさせることで,レベルからF2Fをリクエストされたときに適切なタイミングで,キャラクターAIへ指定された命令を実行させることでき,汎用性を実現できたということだ。
状況に応じてキャラクターがどう振る舞えばいいかという汎用性を持たせる問題は,メタAIで解決できた。次に課題として残ったのが「開始モーション」だったという。これは,F2Fがシームレスに開始するために発生した問題だ。とくに地上などのフィールドでは,操作されているプレイヤーは動き回るのでF2Fの開始地点が不定,かつ,いつでも発生する可能性がある。F2Fが発生してキャラクターが所定の位置へ移動しなければならないとき,どういうルートをたどればいいのか,実際に発生してみないと分からないのだ。
この問題の解決には使われたのが,目標とする地点までの移動可能な道を検索してくれるナビゲーションシステムだ。このシステムに,キャラクターAIを補助させることで,課題を解決したという。
このようにメタAI,キャラクターAI,ナビゲーションシステムをうまく組み合わせることで,シームレスなイベントに対応しやすいシステムとしてF2Fが作られていったとのことだ。
AIの行動を効率的に管理するAIモード
次に先ほど話題に出ていたAIモードの詳細な解説が行われた。AIモードは,レベルデザイナーがなにか大きなくくりでAIに指示を行いたいときに用意されたもので,動きはAIに任せる通常状態「Normal」,キャラクターを待機させる「Wait」,指定場所への移動「Go to」,プレイヤーを先導して導く「Lead」,特定の場所を経由しての移動「Route」,余計なことをしないでプレイヤーについていく「Follow」などの行動単位を設定したモードになっているという。ゲーム中では,レベルデザイナーが望むモードに切り替え,ある程度指示を与えるだけで,あとはいい感じにAIが処理してくれるようになっているのだ。
そして,このAIモードに求められたのは,レベルプランナーがAIの行動を柔軟かつ簡素に切り替えられることだけでなく,AIプランナーが各キャラクターのAI行動を効率よく作成・編集できることだったという。FFXVという広い世界で動いているすべてのキャラクターはAIで動いている。そのAIの数々を,いかに効率よく作り上げられるシステムにできるかが求められたのだ。
これらの要望を実現するために採った方針は二つ。レベルプランナーからのAI行動を柔軟かつ簡素に切り替えたいという要望には,共通の枠組みを用意することで対応したという。そして,AI行動を効率よく作成・編集するために導入されたのが,AIの処理を共有する仕組みである「アセット化」と,全体の構造はそのままに一部だけを変更できる「オーバーライド」だ。共通化の仕組みによってAIモードでは,異なるキャラクターでも同じ動作をすることができ,さらに部分的にオーバーライドすることで,個性を演出することができるようになったという。
AIで制御されているプレイヤーキャラクター
「プレイヤー操作とAI制御を利用するにあたって,容易に想像できる問題が一つあります。それがコントロールの衝突です」と下川氏が言葉を続けた。プレイヤーによる操作とAIによる制御がぶつかり合い,ともに満足できない動作となってしまうこともある。一般的には,場面によって制御を切り替えるのだろうが,それでもスムーズに二つの制御をどうつないでいけばいいかという問題が浮かび上がってくるという。最終的に制作チームは,プレイヤーが操作している間もAIを並列に動作させるという方針で問題解決を図ったという。
具体的には,プレイヤーキャラクターを実際に動かすプレイヤーコントロールシステムに対して,プレイヤー操作とAIのどちらかが独占するのでなく,互いに譲り合い・連携しながら命令を送るようにして,制御がぶつからないようにする。さらにレベルやメタAIからの調整も踏まえて,プレイヤーキャラクター動かしているのだ。
これにより,ほかのAIキャラクターが持つ意識表現(とくに仲間たち)をプレイヤーキャラクターへも反映できるようになり,さらにプレイヤーキャラクターとゲーム世界を調和させることができるようになったという。
レベルやメタAIによる制御によるイベントなどで,プレイヤーキャラクターもAIシステムを活用でき,演出の幅が広がったという。
具体的な例として,イグニスの仲間コマンドを映像で紹介。まず,イグニスが複数の敵にマークし,そのマークがついた敵にプレイヤー(ノクト)が連続攻撃,最後にQTEでトドメを刺すというバトルの一連の流れだ。ここでは,イグニスからノクトと攻撃を行っているキャラクターのAI制御(AI Graph)を経て,最後にボタン入力を感知して追撃モーションを再生しているところは,Sequence Graphで行っているという。
世界に生きるモンスターを作るAI
一つめは「AI・アニメーションの細密化」だ。敵を動かすのに必要な物量が単純に増大しているのはもちろん,リアリティ追求の結果,アクションの同時化,並列化,細密化が進んだという。例えば,モンスターを移動させるのにも従来の「その場で回転してから行動」といった方法では,どうしても動作がギクシャクしてしまい,FFXVのクオリティに達しないと判断。そこで,行動しながら回転を行わせることで少しでも違和感をなくすように動作の並列化を行い,より生物感らしい動きにしたそうだ。
その敵の動きのリアルさを実現するために,アニメーションのパラメータとして取り入れたのが回転トリガーだ。これは,敵がアクションしている間で,回転しても大丈夫な区間を指定するもの。例えば,四足動物の足がすべて地についているときに回転してしまうと,横滑りが顕著に現れてしまう。しかし,大きく足を振り上げたり,大きな動きをしているときであれば,さほど違和感なく回転できる。そういった回転が自然に振る舞えるタイミングを,ピンポイントで指定するのが回転トリガーの役割なのだ。
その自動化の試みの一つが攻撃モーションの解析システムだ。攻撃モーションとコリジョン(当たり判定)から,解析システムが自動的に攻撃が到達する距離や角度を計算し,その結果をAIが利用することで,これまで人の手で調整した部分を半自動化することができたという。
そして変化の三つめが「AIとアニメーションとの間が狭まる」というもの。2000年代では,AIとアニメーション技術は綺麗に分かれていたが,ここ最近はAIの細密化によってAIの担当者がアニメーションを触る必要が出てきたり,逆にアニメーション担当者がAIについて把握しておかないといけない状況が発生してきたと並木氏は語った。
密接な関わりあいが進むことは,アニメーションとAIが一体化したシステムになってしまうことを意味し,よりクオリティの高いものが実現できるが,作業の分担ができなくなってしまうという弊害も発生しているという。すでにFFXVの段階で人の手に余るデータを扱わなくてはならなくなってしまっているので,これから先,さらにクオリティが求められた場合は,単純な作業負担の増大だけでなく,人力での対応が不可能となってしまうことも出てくるだろう。
並木氏は,その問題を解消するための方法として挙げたのが,攻撃モーション解析システムのような自動化技術だという。AIとアニメーションの境界をうまくつなぐことで,分業のワークフローを維持しつつ,より一層の細密化,現実的なコストでクオリティアップができるだろうと話を締めくくった。
以上で,FFXVで使われたAI技術の解説が終了。かなり中身の詰まった一時間の講演だったが,おそらくこれでも搭載されているAI技術のほんの一部なのかもしれない。これら最新のAIシステムを持ったFFXVが,プレイヤーにどんな世界を見せてくれるのか期待をしつつ,発売を楽しみにしたい。