F.E.A.R.のAI、「ゴール指向型アクションプランニングAI」
 IGDA日本によるゲームAI連続セミナー「ゲームAIを読み解く」の第2回、「F.E.A.R.におけるゴール指向型アクションプランニング」が開催された。講師はフロム・ソフトウェアの三宅陽一郎氏。

 今回テーマとなった「ゴール指向型アクションプランニング」とは、Monolith ProductionのホラーFPS「F.E.A.R.」で実装されたAIで、COMが状況判断から反射的に行動を選択する(例:敵が視界に入った!→攻撃する!)のではなく、比較的長い時間での行動目標(ゴール:例、渇きをいやす)をCOMが選択し、ゴールを実現するための複数のステップ(水場に移動する→飲む)をプランニングして実行するというもの。ただ、ゴール指向といっても、AIは設定されたゴール群から状況に応じてひとつのゴールを選択し(意志決定)、ゴール達成に向けて行動(ゴール指向)する。一般に、現在の人工知能のレベルではAIが自発的に“目標”を見つけることはできないため、人間(開発者)があらかじめ環境(つまりここではゲーム)からゴールを抽出して選択肢として用意しておくことは必要だ。

 同社のFPSは、1998年のSHOGO、2002年のNo One Lives Forever 2(NOLF2)ののち、2004年にF.E.A.R.がリリースされたが、AIについてみると、SHOGOがプレイヤーに気付いて攻撃する「単純反射型AI」、NOLF2が目的(ゴール)を持って行動する「ゴール指向型FSM」ときて、F.E.A.R.で「ゴール指向型アクションプランニングAI」へと進化したという。こうした進化が必要だった背景として三宅氏は、欧米では目が肥えたFPSプレイヤーが多く、COMを賢く見せることが必要だと指摘する。

 反射型と比べて、まとまった時間(F.E.A.Rの場合で数秒〜十数秒)の一連の行動を連続性を持ってプランニングできる。ゲーム内で様々に変化する初期条件に応じて、COMがいろいろな行動を起こすことができるため、状況に適応した行動をする「賢いCOM」を実現することができるのが特徴。さらに、状況の変化(例:通ろうと思った扉が開かない、占拠しようと思った建物が敵軍に先に占拠された、など)に応じてプランを再構築(リプランニング)することで、状況の変化についていくCOMが可能になる。

 COMは、五感(に相当する世界表現)から得たさまざまな情報を、統一したフォーマットでワーキングメモリに保存して状況判断に使用するが、このとき場所、方向、感覚の種類、対象オブジェクトについて、それぞれ信頼度付きで情報取得時刻とともに蓄積。さらに、これらの情報を20種類の「シンボル」にサマライズしたものを実際のプランニングのアルゴリズムが参照する仕組みになっている。これは、プランニング処理を軽くするための仕掛けだ。複数のCOMが連携する仕組みとして黒板(Blackboard)もあり、これはそれぞれのCOMが選択した目標を他のCOMに通知するための共有メモリで、これによって援護や協調攻撃などの目標を選択できるようになる。

 行動選択のプログラムコードとしては、有限状態機械(FSM)を記述するのではなく、とりうる行動のリスト(前提条件と行動内容、結果がもたらす効果の組み合わせ)から目的を実現するための行動セットを抽出して並べ、実行する、というものになる。この方法は、FSMと異なり、新しい目標や新しい状況の追加がしやすいというメリットもある(FSMではすべての状態遷移表の中に矛盾しないよう注意しながら組み込まなければならない)。

 このゴール指向型アクションプランニングでは、同一のゴールに向かって異なるプランを採るようなキャラクタの違いが実装しやすくなっている。たとえば同じ「プレイヤーを倒す」という目的に対して、キャラクタごとに可能な行動リストとそれぞれの行動のコストを設定すれば、