CEDEC 2011レポート

「ARMORED CORE V」で実現なるか? 先進的AIへの挑戦
人間のように目標を立て、行動を計画し、柔軟に戦うNPCを目指して


9月6~8日 開催

会場:パシフィコ横浜


 グラフィックス、アニメーションに並んで、ゲームを実現するために外せない要素となっているゲームAI。この分野で先進的な取り組みを続けている株式会社フロム・ソフトウェアでは、2012年1月に発売を予定しているメカカスタマイズアクション「ARMORED CORE V(以下『ACV』)」に向けて、さらに進化したゲームAIの実現を目指している。

 CEDEC 2011の会期2日目、「ARMORED CORE V の対戦AIにおける階層型ゴール指向プランニングと機体制御」と題して、今まさに研究開発が進められているAI研究の成果が披露された。発表を行なったのはフロムソフトウェアの技術部に所属する岡村信幸氏。将来見るべき、より洗練されたゲーム体験を実現するためのゲームAI。その面白さと難しさにの両面に注目してみたい。



■ フロム・ソフトウェアが取り組む「階層型ゴール指向プランニング」というアプローチ

フロム・ソフトウェア 技術部 岡村信幸氏
「ACV」のAI要件。かなり「賢い」ものを志向している

 岡村氏によるゲームAI研究の講演は2セッションに分けて行なわれ、前半部では「ACV」で使用される立体的で複雑な地形におけるパス検索の手法が示された。そして本稿で扱う後半部では、適切なパスが与えられた上での機体制御、それを元にした「階層型ゴール指向プランニング」への取り組みが紹介された。

 「ACV」では戦略性を重視するチーム戦をコンセプトのひとつとしており、NPCにも戦略的な判断と、判断を実行に移すための多層的な知性が必要となる。そのために「階層型ゴール指向プランニング」というAI処理のアプローチを採用したというのが、そもそもの経緯だ。

 このアプローチでは、状態の変化に対して単純にリアクションする条件分岐型のAI処理とは違い、AIが自ら行動目標を設定して、目標達成のために具体的な行動を計画していくという流れで、人間の思考様式に近いふるまいが実現される。

 例えば、NPCがプレーヤーと対戦する際、NPC AIの戦略目標は「自機の生存」、「敵機の破壊」といったものになる。AIはそれと同時に、局所的に発生する状況にも対応しなければならない。敵の攻撃を避けたり、敵に攻撃を命中させるために移動、姿勢制御するといった部分だ。このように時間的粒度が大きく異なる判断を並列的に行なうため、「階層型」の処理が必要となるわけである。

 実は、この「階層型ゴール指向プランニング」は、2006年にXbox 360向けに発売された「クロムハウンズ」でも試みられている。岡村氏のミッションは、そこで培われた技術をベースとしつつ、より複雑なアクション、より複雑な空間構成を持つ「ACV」に向けて、その内容をさらに進化せることだといえる。特に大きなチャレンジとなっているのが、「機体制御」の部分だ。


高速ロボットアクションであるところの「ACV」。今作では「階層型ゴール指向プランニング」により戦略的なチーム戦を行なうAIを実現しようとしている。メカのアセンブルパーツの変更にも耐えられる柔軟なアプローチだ

ゴール指向プランニングのコンセプト
階層型のゴールプランニング。上位層の計画を実現するために、下位層でより小さな単位の計画が組まれる構造

 まず、「階層型ゴール指向プランニング」が、実際にどういったAI処理になっているかを大まかにご紹介しよう。

 「ACV」向けのAIは「戦略層」、「戦術層」、「機体制御層」の3層で構成されている。上位層で行動目標(ゴール)が設定されると、下の層ではその実現のために取りうる手順が、個々のゴールとして組み立てられていくという趣向だ。

 各層でのゴール設定を適切に行なうための処理部分が「プランニング」と呼ばれる。ここでは、キャラクターの現在状態から取りうる数々の「一手」を仮想的に実行していき、その結果の状態を予測する。無数の組み合わせでこの処理を行ない、上位層で与えられたゴール状態に到達する「手順」を発見したら、それを実行するという按配だ。将棋や囲碁のAIが、相手を打ち負かすための最善手を探す処理に近い。

 これはゲーム向けAIの実装としては非常にリッチなもので、AIがより能動的に、柔軟に行動を行なえるというメリットがある。プレーヤーにしてみれば、NPCの行動にきちんとした「意図」を感じられる、という面白さも大きい。AIが将来の状態を予測するための関数に変化をつけることで、NPCの行動様式に個性を持たせられるという特性も魅力的だ。大いに、手応えのあるゲームを実現できそうな手法であろう。


3層からなる「ACV」のゴール指向プランニングの詳細




■ リッチすぎる?! 複雑な地形とアクションを持つ「ACV」での実験的ソリューション

慣性のある操作系で、決められた経路を辿らせるのは意外と難しいという例
足場から落ちたりしない、移動操作の「プランニング」を創りだすにはどうするか?
機体操作に使われる移動制御関数を活用してプランニング処理を構成

 「階層型ゴール指向プランニング」では非常に面白いAIのふるまいが期待できる一方で、メモリーやCPUの使用率が非常に高まりやすいという技術的難しさがあるのが弱点だ。特に、「ACV」で表現される複雑な地形や、多様なアクションが曲者である。AIの取りうる行動に非常な広がりがあるために、予測すべき将来の状態が爆発的に増え、予測にかかるコストが増大するためだ。

 そこで、セッションの後半で取りざたされたのが「機体制御層」の実現部分である。例えば、ある地点に移動するという戦術上のゴールを実現するために、「機体制御層」が移動方法を組み立てる場合。移動経路(パス)の検索は三次元AABB法で解決されている。そのパスを、自機の持つ移動アクションの組み合わせで、適切になぞらなければならない。

 人間キャラクターが主人公のFPS系ゲームなどでは、移動制御が比較的単純であるため、パス上を単につるっとなぞることもできる。しかし、「ACV」は強い慣性の働くロボットの移動を扱う。しかも、壁を蹴ってジャンプするといった複雑なアクションもある。経路をなぞるための「手順」を見つける処理が難題だ。

 岡村氏は試行錯誤の上、機体の移動に使われる状態更新関数を利用して、状態遷移の予測を行なうアプローチをとった。プレーヤーと同じ移動操作の入力を関数に与えて、未来の状態をシミュレートし、膨大な組み合わせの中から、パスをなぞってゴールに到達する解を見つけるという方法だ。こうすることで、あらゆる地形、あらゆる機体、あらゆる状況において、柔軟に移動操作をプランニングすることができる。人間プレーヤーと同じように、様々な形状の地形を有効に活用する強力なAIが実現されるわけだ。


実装された「機体制御層」が作り出す動き。複雑な移動経路を高い精度でトレースできている。コントローラーからの入力を模しており、もちろん、プレーヤーが操作する際と同条件だ。ワープさせたり強制移動させたりなど各種のインチキは無しである

あまりに重すぎる処理が課題。近く解決されれば「ACV」で使われそう?

 問題は「計算が重すぎる」こと。CPUコア(どの機種かは触れられず)の1つを、この処理だけで専有してしまうという結果になったという。単純に移動AIとして考えればあまりにもヘビーすぎる。何らかの方法で最適化を行ない、処理負荷を劇的に下げることが実用化のための必須条件だ。

 岡村氏は「衝突判定データの最適化」をひとつの解決策として挙げつつも、根本的なパフォーマンス改善はこれからの課題である、と現状を報告した。つまり、本手法はまだまだ研究開発の途上というわけだ。

 この発表で興味深いのは、発売前のゲームに関する要素を扱ったことではなく、実際にゲームに使われるかどうかわからないという段階の先進研究がテーマとなったことだ。岡村氏が研究開発を進めているゲームAIは非常に高度なものである反面、実用化に向けて解決する課題も抱えている。それだけに、大きな収穫を得られるのではないかという手応えもある。

 もしかすると、今世代のゲーム機では実現が難しいという結論に達するかもしれない。しかし、プレーヤーと同様に考え、戦うAIが実現されれば、ひとりで遊ぶゲームや、NPC混じりのマルチプレーヤーで遊ぶゲームが、もっと面白くなっていくはず。果たして、2012年1月に発売予定の「ACV」でどんな楽しみが実現されることか、期待していきたい。



(2011年9月8日)

[Reported by 佐藤カフジ]