オススメ機能
Twitter
お気に入り
記事履歴
ランキング
4Gamer.net
パッケージ
FINAL FANTASY XV公式サイトへ
読者の評価
70
投稿数:46
レビューを投稿する
準備中
FINAL FANTASY XV
お気に入りタイトル/ワード

タイトル/ワード名(記事数)

最近記事を読んだタイトル/ワード

タイトル/ワード名(記事数)

LINEで4Gamerアカウントを登録
QRコードでLINEの4Gamer
アカウントを友達登録すると
月〜金の週5回,21時に厳選
ニュースをお届けします!
※購読にはLINEアプリが必要です
[CEDEC 2015]「FFXV」で導入されるゲームAIの仕組みが明らかに。ゲームエンジン「Luminous Studio」の先進的AIシステム
特集記事一覧
注目のレビュー
注目のムービー
印刷2015/09/02 00:00

イベント

[CEDEC 2015]「FFXV」で導入されるゲームAIの仕組みが明らかに。ゲームエンジン「Luminous Studio」の先進的AIシステム

FINAL FANTASY XV
 スクウェア・エニックスの新世代ゲームエンジンとして,4Gamerでもたびたび取り上げている「Luminous Studio」。話題になるのは,先進的なグラフィックス表現ばかりといったイメージがあるかもしれないが,実はAI部分でも,時代を先取りした技術が実装されているのだという。
 スクウェア・エニックスがCEDEC 2015で行ったセッション「FINAL FANTASY XV -EPISODE DUSCAE- におけるキャラクターAIの意思決定システム」は,これまで表舞台であまり語られることのなかった,Luminous StudioにおけるAIシステムの設計思想とその構造が語られる興味深いものだった。そこで本稿では,セッションの概要をレポートしよう。


ゲームにおけるAIとは何か


三宅陽一郎氏(テクノロジー推進部,リードAIリサーチャー,スクウェア・エニックス)
 セッションの冒頭で登壇したのは,スクウェア・エニックス テクノロジー推進部でリードAIリサーチャーを務める三宅陽一郎氏だ。三宅氏は日本におけるゲームAIの第一人者であり,CEDEC 2015では本稿のセッション以外にも,AIに関する別のセッションも担当している。

 その三宅氏は,まず「ゲームにおける人工知能とはなにか」という基本から説明を始めた。
 三宅氏の定義では,「知能とは,環境と自分を動的に調和させる機能のこと」であり,言い換えれば「環境を理解して,行動を選択する」のが知能の基本的な振るまいといったところか。

知能とは,環境と自分を動的に調和させる機能であると三宅氏
FINAL FANTASY XV

 知能は「認識→意思決定→運動」という流れを経て,世界に影響を与える(反応を返す)のだが,入力に対して単純に反応するだけの微生物のような知能では,頭が良い知能には見えない。そこで認識,意思決定,運動の各段階において,その結果を記憶として蓄積し――つまり「学習」だ――,それを今後の意思決定における参考データとして,解釈のために参照できるメカニズムを実装しておくことも必要になる。
 簡単にいえば,記憶が蓄積されて過去の経験から学んだ行動を起こせるようになると,より高度な知能として振る舞えるようになるわけだ。

人工知能における,理想的かつ基本的な構造例の一例
FINAL FANTASY XV

 さて,「ゲームにおけるAI」では,この「意思決定」の部分で定番とも言える簡易モデルがいくつか考案されている。Luminous Studioでは,こうした意思決定の簡易モデルから「ビヘイビア(振る舞い)ベースAI」と「ステート(状態)ベースAI」の2種類を使用して,AIを構築していくことを選択したそうだ。

AIの意思決定モデルには,定番的な簡易モデルがいくつか存在する。Luminous Studioでは,ビヘイビアベースAIとステートベースAIを選んだ
FINAL FANTASY XV

FINAL FANTASY XV
 ビヘイビアベースAIの構築手段には「ビヘイビアツリー」という概念があり,このビヘイビアツリーは,細かい行動を行う適応型の意思決定に長けているという。一方,ステートベースAIの構築手段としては「ステートマシン」という概念があり,ステートマシンは堅実な意思決定に適したAI構造であるそうだ。
 Luminous Studioでは,これら2種類の長所を取り入れるために,ハイブリッド型のAIシステムを開発することにしたのである。

ゲームにおけるビヘイビアツリーの例
FINAL FANTASY XV

ゲームにおけるステートマシンの例
FINAL FANTASY XV

ステートマシンは階層構造をとることもできる
FINAL FANTASY XV


Luminous StudioのAIエンジン「Luminous AI」の概要


 ゲームエンジンであるLuminous Studioの一部として,AIを実装するためには,プログラマ以外の非エンジニア系スタッフ――プランナー(企画)やデザイナー(アーティスト)――にも分かりやすく使いやすいツールで,キャラクターの知能を設計,開発できることが求められる。
 そこで,まずはゲームAIに必要な概念をリストアップして,これを分類し,そこから必要な要素を実装していくという設計方針で検討を始めたそうだ。

必要な概念をリストアップして,それを11種類に分類した
FINAL FANTASY XV

 さて,近代ゲームにおけるAIは,主に「メタAI」「キャラクターAI」「ナビゲーションAI」の3大要素に分類される。そのため,大枠としての設計方針もこれに従うことになる。

 メタAIとは,ゲーム世界の進行を司る大局AIで,具体的にはストーリー進行やイベント進行を制御するものだ。キャラクターAIは,その名のとおり,キャラクターの行動を司るAIで,ゲーマーが「ゲームのAI」と聞いたときにイメージするのはこのタイプだろう。最後のナビゲーションAIは,キャラクターなどが移動するときに,合理的な移動経路を割り出す用途に使われている。

ゲームAIの三大要素
FINAL FANTASY XV

 今回のAI開発プロジェクトでは,Luminous Studio向けのAIエンジン全体を「Luminous AI」と称し,そのうち,キャラクターAIは「Lumionus AI Graph」,ナビゲーションAIは「Luminous AI Navigation」と呼ばれているそうだ。

Luminous AI開発プロジェクトでは,キャラクターAIがLumionus AI Graph,ナビゲーションAIはLuminous AI Navigationとして開発された
FINAL FANTASY XV

 Lumionus AI Graphは,「キャラクターのアタマ(脳みそ)を開発するツール」という位置づけで,ノードとノードを結線してフロー図を作るようなグラフツールとして開発された。テキストでコードやスクリプトを書くのではなく,グラフツールで設計させるアプローチは,非エンジニアでも使える,分かりやすさを目指したもので,最近のゲーム開発ツールの定番だ。
 一方のLuminous AI Navigationは,Luminous AI GraphでキャラクターAIを設計していくときに,経路探索機能が必要になったときに呼び出される仕組みとされた。

分類されたAI要素の大部分は,Lumionus AI GraphとLuminous AI Navigationのどちらかに振り分けられている。現時点ですべてが実装されているわけではなく,色の付いた項目が実装済みとのこと
FINAL FANTASY XV

 なお,メタAIは,より大きな概念となるため,タイトルごとに独自開発する場合と,Luminous AIのツールを用いて作る場合があるとのこと。たとえば,Luminous AI Graphは,必要に応じてメタAIの内部を構造化する用途に使うこともあるそうだ。


Luminous AI Graphの基本機能


 三宅氏による基本アーキテクチャの説明に続いては,スクウェア・エニックス 第二ビジネス・ディビジョンの白神陽嗣氏と並木幸介氏が登壇し,Luminous AIに実装されたツールや機能の紹介が行われた。

白神陽嗣氏(第二ビジネス・ディビジョン,プログラマ,スクウェア・エニックス)
並木幸介氏(第二ビジネス・ディビジョン,AIプログラマ,スクウェア・エニックス)

Luminous AI設計における4つの課題
FINAL FANTASY XV
 白神,並木両氏による解説は,4つのテーマに分かれており,いずれも,具体的なLuminous AIの機能と,実際にAIを設計する制作者に向けた使い勝手の配慮といった内容である。順に説明していこう。

 1つめのテーマは,ビヘイビアツリーとステートマシンという異なる構造のAIを,どのように組み合わせて実装したかである。
 ループ構造のステートマシンと,木構造的なビヘイビアツリー。これらを統合するのは難しい問題のように思えるが,開発チームは大胆な実装法で,これらを統合させたという。具体的には,両構造で共通要素となっている部分を互いに使いあえるようにして,独自要素となるグラフ構造は,互いに階層構造をとれるように統合させたのだ。

 もう少し詳しく説明しよう。まず,AIの構成要素,すなわちロジックを記述する各ノード(機能マス)は,ある種の部品として,ステートマシンとビヘイビアツリーの両方で共有できるようにした。

ステートマシンとビヘイビアツリーの各単位ノードで,同じロジック部品を必要に応じて共有できるようにした
FINAL FANTASY XV

 そして,ここがユニークなのだが,ステートマシンとビヘイビアツリーという構造の異なる部品を,それぞれ組み合わせられるような仕組みを実装したのだ。これにより,ループ構造のステートマシンを構成するノードの一部を,ビヘイビアツリーとしたり,逆にビヘイビアツリーにおけるノードの一部を,ステートマシンのループ構造にしたりできるようになった。

ステートマシンとビヘイビアツリーを組み合わせられるようにした。これにより,複雑な階層グラフ構造を記述できるように
FINAL FANTASY XV

Luminous AI Graphの画面。最上層がステートマシンで,含まれるノードの一部がビヘイビアツリー。ビヘイビアツリーに含まれるノードの一部がステートマシンとなっている
FINAL FANTASY XV

FINAL FANTASY XV
 2つめのテーマは,ゲームAIの機能拡張を行いやすくするための工夫だ。これには,「ノードがグラフ構造をとれる」という階層化構造が大きく貢献しているという。

 白神氏は下のスライドを例示して説明する。スライド左の図が,設計中のAIだとする。リンク線(遷移線)の多い,とても複雑なステートマシン構造だ。左図の右側には,AIによる攻撃行動が縦に列挙されている。
 ここに,攻撃行動を1つ追加しようとした場合,単に「新しい攻撃アクションノード」を追加するだけでは済まない。というのも,スライド右側にあるように,攻撃の意思決定を行っている複数のノードそれぞれから,追加したノードにリンク線(右側の赤線)を引かなければ,追加したノードが起動しないためだ。意思決定ノードがたくさん存在するほど,引かなければならないリンク線も増えるわけで,これは作業が非常に冗長なものとなってしまう。

左のステートマシンAIに,新しく行動ノードを追加したい場合,右のように無数のリンク線も引かなくてはならない
FINAL FANTASY XV

 そこで,右端の攻撃ノードを階層化してひとまとめにする。こうすることで,新しい攻撃行動を追加する場合でも,この攻撃ノートの階層に1つノードを追加して,攻撃ノード階層の根本にリンク線を1つ張るだけで済む。そのうえ,上層に当たるステートマシンのリンク線もすっきりして,ロジックの全体像も見渡しやすくなるなど,まさに一石二鳥というわけだ。

ノードを階層化できるようにしたおかげで,ノードを比較的容易に追加できるようになり,ノードを追加しても上層のリンク構造は変化ない
FINAL FANTASY XV

FINAL FANTASY XV
 3つめのテーマは,ゲームの大きな流れ(ゲーム進行側)とAIの統合制御を行うための工夫である。これには「ブラックボード」(※黒板の意)と呼ばれる概念を導入することで対応した。黒板のように,書いたり消したりが自由にできる共有変数空間である。
 Luminous AI Graphでは,AIグラフの中だけで使える共有変数空間として「ローカルブラックボード」を,ゲーム進行に関わるパラメータのやりとり用に「グローバルブラックボード」を用意したとのこと。

AI側からゲーム進行に関わる情報のやりとりを可能にする仕組みとして「ブラックボード」の機能を実装
FINAL FANTASY XV

ブラックボードから取得した情報を,ノード内で処理して書き戻す関数のような使い方も可能となっている
FINAL FANTASY XV

 4つめのテーマは,似たような構造のAIを作りたいときに,コピー&ペーストを繰り返して制作するような手間を省くための工夫だ。具体的には,2種類の機能が用意されている。

 1つめの機能は,汎用性の高いAI部品を一塊の「アセット」として登録できること。アセット化されたAI部品は,プロジェクトのAI制作者が共有して使えるAI部品になると同時に,アセット自体に変更改良を加えると,そのアセットを使って制作されたすべてのAIで,該当のアセットを最新状態に更新できるという。
 アセットを編集する様子を動画で撮影したので,参照してほしい。


 もう1つの機能は,「よく似た構造のAIで,ノードの一部だけを変更したものを作りたい」という要望を実現するために導入された仕組みである。これは,「オーバーライド」というもので,もとになるAI部品を一部だけ変更して新しいAI部品を作る機能だ。この仕組みでは,もとのAI部品に変更を加えると,その変更はオーバーライド機能で作ったAI部品にも反映されるという。これにより,似たようなAIの共通部分を,1つ1つすべて修正する必要がなくなるわけだ。

上のスライドは,もとになるステートマシン型の戦闘AI。このAIのバトル制御部分だけを変更して,別キャラクターのAIを作りたい場合は,もとのAIをオーバーライドして,AI構造はそのままに変更したい部分だけを改変すればいい
FINAL FANTASY XV
FINAL FANTASY XV

 以上のように,Luminous AI Graphには実用性の高い工夫が,多数盛り込まれていることが分かるだろう。


FFXV開発を進めていくなかで実装されたLuminous AIの機能


 続いて白神氏は,Luminous AIを実際にゲームへと組み込んでいく過程で求められた,3つの機能群について説明した。Luminous Studioベースで開発されているゲームというのは,もちろん「FINAL FANTASY XV」(PS4 / Xbox One,以下 FFXV)のこと。すなわち,白神氏が挙げた3つの機能は,FFXV開発過程でLuminous AIに搭載された機能といえよう。

 1つめの機能は,制作したAIのデバッグ機能だ。
 デバッグ機能は2種類あり,1つは,Luminous AI Graphのツール画面上でAIグラフ画面を見ながら,実行しているAIのどの部分が実行中なのかを確認できる「ビジュアルノードデバッガ」。もう1つは,さまざまなパラメータや実行ログなどを確認できる「インゲームデバッグウインドウ」だ。

2種類のAIデバッガ。ちなみに,緑色のワイヤーフレーム表示となったキャラクターがデバッグ対象を表している
FINAL FANTASY XV

ゲームプレイとイベント間で,AIキャラクターの行動推移をシームレスにするための工夫が必要となり,「トレイの割り込み実行」が導入された
FINAL FANTASY XV
 2つめの機能は,AIキャラクターの行動をゲームプレイ中からイベントへと,シームレスに遷移させる機能であるという。これはAIの実行に対して割り込み実行をかける,「トレイの割り込み実行」という仕組みを導入することで実現させた。トレイとは,Luminous AI Graphの作業画面のことだ。
 具体的な流れはこうだ。通常AIとイベント演技用のAIをそれぞれ個別に用意しておき,通常AIを実行中にイベントを発生させる必要が生じたら,そこに割り込み実行をかける。割り込みが発生すると,通常AIからイベント演技用AIの実行へと切り替わり,そのイベント演技AIが終了すると,通常AIに復帰する。これにより,「ゲームプレイ→イベント→ゲームプレイ」の遷移をシームレスに実行できるわけだ。

割り込み実行の仕組みを導入。ブラックボードを活用しゲームシステム側とのパラメータ受け渡しも可能だ
FINAL FANTASY XV

 なお,前述のブラックボード機能を使って,状況に応じたパラメータをブラックボードにセットすることで,イベント演技AIにバリエーションや環境適応能力を持たせることも可能となっている。

FINAL FANTASY XV
 3つめの機能は,より賢いAIを実現するために,同時に複数のことを思考させられるようにする機能だ。これは,ステートマシンとビヘイビアツリーのどちらでも,並列思考を行える「Parallel Start」(以下,P-Start)ノードを用意することで実現したという。
 トレイに複数のP-Startノードを設定すると,ステートマシンとビヘイビアツリーのどちらに対しても,並列実行を行えるようになるのだ。

上のスライドはステートマシン,下のスライドはビヘイビアツリーでP-Startノードを指定した様子
FINAL FANTASY XV
FINAL FANTASY XV

 ユニークなのは,P-Startを設定したAIノード階層ごとに,その並列思考レベルが変わると言う点だ。たとえば,最上層でP-Startを設定すると,常に並列思考するAIを作れる。一方で,下の階層にP-Startを設定すると,その階層下に実行が移ったときだけ,並列思考するようになる。
 具体的な例を挙げよう。最上階層で「索敵」と「歩行」にP-Startを設定しておくと,そのキャラクターは常に歩きながら索敵するようになる。それに加えて索敵の下層に,複数の目標がいる場合にどれを攻撃すべきかという「攻撃対象選択」と,選択した目標に対する適切な攻撃手段を選ぶ「攻撃手段選択」をP-Startで設定しておく。すると,索敵範囲内に複数の目標が入って戦闘状態に遷移したときに,目標選択と攻撃手段選択を同時に行うAIを作れるわけだ。

並列実行の概念を階層化に適用すると,常に並列で考えたり,任意の状況でだけ並列で考えるAIを作れる
FINAL FANTASY XV


FFXVでLuminous AIはどのように使われているのか


 Luminous AIの機能説明に続いて並木氏は,開発途中のFFXVとLuminous AI Graphを見せながら,FFXVにおける実際のAI作例を説明した。残念ながら,その映像は掲載できないので,ここでは公開された写真を使って,概要だけをまとめることにしたい。

 さて,FFXVの場合,街の住人といったNPCは,大枠の行動決定を行う社会行動が書かれたスクリプトシステムと,社会行動のディテールを設定したLuminous AI GraphベースのAIと組み合わせた実装になっているという。

NPCのAI制御
FINAL FANTASY XV

 また,キャラクターのアニメーション制御は,ビヘイビアツリーによる意思決定AIから直接アニメーションを呼び出すのではなく,ステートマシンによる身体制御AIを介して制御するようになっているそうだ。意思決定部分と身体制御を分離するこの仕組みの実装により,NPCが周囲の環境を認識して,その環境に適した自然な動きをとれるようになっている。
 今後のゲーム表現で重要となるといわれる「AIとアニメーションの相互連携」を,Luminous AIはすでに導入しているといえるだろう。

FFXVのキャラクターは,草木が邪魔になればかきわけ,近くに岩があれば手を付くといった動作をAIが行う。周囲の環境を認識して,アニメーションを連携させているのだ
FINAL FANTASY XV
FINAL FANTASY XV

視覚センサとターゲットサーチ機能。ゲーム世界のキャラクターは,敵味方問わず対等の条件で行動するようになるわけだ
FINAL FANTASY XV
 さらに,Luminous AIには,「視覚センサ」の機能が用意されており,ゲーム世界で実際に見えているものを各キャラクターが認識して,視覚情報に連動した行動がとれるAIを設計できるという。
 攻撃対象を選択する「ターゲットサーチ」機能は,この視覚センサを活かしたサブシステムで,目で見た対象の攻撃優先順位を算出するという働きをするものだ。

上の画像は戦闘中の画面で,下はAIによる地形解析状況をデバッグ表示させたもの。右下にいる金髪のキャラクター「プロンプト」のAIが,地形環境を解析してベヒーモス(左上のモンスター)を射撃するベストな場所を検索している様子だ。緑赤青のヒートマップは,赤い場所が危険な場所で,緑が候補点,右に1つだけ見える青が,AIが算出したベスト位置。そのためプロンプトは,青い地点に向かって突進している
FINAL FANTASY XV
FINAL FANTASY XV

モンスターAIの制作に活用されたLuminous AI Navigationの機能
FINAL FANTASY XV
 一方,モンスターなどの動き制御には,Lumionus AI Navigationの機能が積極活用されている。とくに,Lumionus AI Navigationに実装されている「Point Query System」(以下,PQS)位置検索システムと,「ステアリング」システムは,モンスターAIの構築に大きく貢献しているという。

 PQSは,移動先の候補をデータで制御できる仕組みで,モンスターごとに個別のPQSデータを作っておくことで,そのモンスター固有の基本移動パターンを制作できるというもの。PQSデータとは,そのキャラクターから見た移動先の候補地点データ群のようなもので,これをうまく与えることで,目標の周りを一定距離を空けて回る,といった動きが設定できるようになる。これまでなら,プログラマが個別に制作していたモンスターの歩行/移動パターンを,このPQSデータを作り込むだけで制作できるようになったそうだ。

PQSにより,モンスターの動きバリエーションを移動先の候補データを与えることで制作できる
FINAL FANTASY XV

 一方のステアリングは,視界情報をもとに動的な回避行動をとりながら移動するシステムだ。群れで行動している複数のNPCに同じ目的地を与えると,NPC同士で衝突しやすくなってしまう。そこでステアリングを利用すると,与えられた目的地に向かって,障害物を避けながら到達できるようになるわけだ。

 セッションのレポートは以上のとおり。主な内容は「スクウェア・エニックスでは,これだけ先進的なAI制作環境を構築しています」というアピールといったものだったが,裏を返せば,「現行世代のゲームにおけるAIは,ここまでやる必要がある」という新基準を示す内容だったようにも思える。
 思い返せば,PlayStation 3やXbox 360世代のゲームは,グラフィックスこそ前世代から格段に向上したものの,アニメーションやAIによる行動の品質が,それに見合っていないタイトルが多かった。スクウェア・エニックスとしては,Luminous Studioでこの壁を打ち破ろうとしているのであろう。

 また,このセッションからは,これから新たなAIシステムを構築しようとしているゲーム開発者にとって,多くのヒントが得られたのではないだろうか。とくに,ステートマシンとビヘイビアツリーで互いに階層構造をとれる仕組みは,話を聞く限りにおいては,非常に応用範囲が広くて汎用性にも優れているように思えた。これに各種の知覚システムやナビゲーションAIを組み合わせたシステムは発展の余地も大きくありそうだ。

 Luminous AIはこれで完成形ではなく,今後も進化していくそうなので,2016年に発売されるFFXVでは,現在リリースされている体験版「FINAL FANTASY XV -EPISODE DUSCAE-」よりも賢くなったAIキャラクター達に出会えることになるだろう。今から楽しみだ。

CEDEC 2015 公式Webサイト

  • 関連タイトル:

    FINAL FANTASY XV

  • 関連タイトル:

    FINAL FANTASY XV

  • この記事のURL:
line
4Gamer.net最新情報
トピックス
スペシャルコンテンツ
注目記事ランキング
集計:05月27日〜05月28日