IGDA日本は、株式会社フロム・ソフトウェアの協力、日本デジタルゲーム学会(DiGRA JAPAN)の後援の下、2月10日(土)に東京大学本郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第2回「F.E.A.R.におけるゴール指向型アクションプランニング」を開催しました。本セミナーのコーディネータを務めました筆者がレポートをお届けします。
なお、本連続セミナーの概要などは、第1回のレポートを参照して下さい。
F.E.A.R.におけるゴール指向型アクションプランニング
第2回は「F.E.A.R.におけるゴール指向型アクションプランニング」と題して、「プランニング」と呼ばれるAI技術を取り上げました。「プランニング」とは、「目的を達成するために、小さい行動を、どのような順序で積み重ねれば良いかを決める」という手法です。
第1回で取り上げた、評価関数を用いた移動方法では、今この瞬間に、どの場所へ移動するのが良いか、極めて近い未来のための判断を行っていました。これに対してプランニングでは、単純で小さい行動を順番に実行し、その連鎖の結果として、中・長期的な未来の目標を達成します。
プランニングでは、複雑な目的を達成するのに必要となる、単純で小さい複数の行動を考えます。例えば、戦闘においては「索敵」「接敵」「攻撃」といった行動の組合せによって、「敵を倒す」という目標を達成します。
こうした行動は、いつでも必ず実行できるとは限りません。敵がどこにいるのか知らなければ「接敵」できませんし、敵を攻撃可能な場所にいなければ「攻撃」できません。しかし、別の行動の結果、状況が変化して実行できなかった行動が可能になる場合があります。「索敵」の結果、「接敵」が可能になりますし、「接敵」の結果、「攻撃」が可能になります。そこで、全ての行動には、行動を可能とする前提条件と、行動によって得られる結果があると定義します。
行動 | 前提条件 | 結果 |
索敵 | なし | 敵の位置を把握 |
接敵 | 敵の位置を把握 | 敵を攻撃可能 |
攻撃 | 敵を攻撃可能 | 敵を倒す |
上記のような行動が可能として、「敵を倒す」という目標を立ててみます。すると、直接、この目的を達成できる行動が「攻撃」であることが分かります。しかし、「攻撃」には前提条件「敵を攻撃可能」があるので、これを満たさなければ実行できません。そこで、結果に「敵を攻撃可能」を持つような行動を探し、「攻撃」前に実行することを考えます。探してみると、結果に「敵を攻撃可能」を持つ「接敵」を見つけることができます。これで、「攻撃」の前に「接敵」すれば良いことが分かりました。でも、「接敵」も無条件に実行できるわけではなく、前提条件「敵の位置を把握」が満たされていなければなりません。今度は、結果に「敵の位置を把握」を持つような行動を探してみると、「索敵」を見つけられます。「索敵」には前提条件がないので、何時でも実行できます。このようにして、「索敵」→「接敵」→「攻撃」の順で行動すれば、目標を達成できることが分かります。
行動の幅が広ければ、多様な計画を立てることもできます。行動の選択肢が下記のとおり増えたとします。
行動 | 前提条件 | 結果 | 説明 |
索敵 | なし | 敵の位置を把握 | 最も近くにいる敵を探す |
接敵 | 敵の位置を把握 | 敵を攻撃可能 | 敵を直接攻撃できる位置まで移動する |
攻撃 | 敵を攻撃可能 | 敵を倒す | 敵を直接攻撃し倒す |
通信 | なし | 敵の位置を把握 | 最も近くにいる敵を、味方に教えてもらう |
移動 | 敵の位置を把握 | 敵を砲撃可能 | 敵を砲撃できる位置まで移動する |
砲撃 | 敵を砲撃可能 | 敵を倒す | 敵を砲撃し倒す |
すると、敵を倒すための計画は、上記の図のとおり4つ、考えられるようになります。どの計画を選ぶか選択に幅が生まれるため、目的を達成する手段が多様になります。キャラクタの特性に合わせて各行動にかかるコストを差別化し計画の選択を行わせたり、状況に応じて特定の行動を選択させないなどとすることができます。近接戦闘能力の低いキャラクタは「攻撃」のコストが高くなり「砲撃」を選択するようになったり、通信手段を失った場合は「索敵」しか選べなくなったりすることが実現できます。
行動の連鎖を実現するには、前提条件と結果の記述方法を明確にして連鎖を自動的に構築させる方法と、後段の行動が前段の行動を呼び出すと考えて、行動の間の呼び出し関係・条件を開発者が明示的に与える方法を考えることができます。前者は自律的な連鎖構築が期待できますが、開発者が与える条件設定が適切でないと、突飛な行動の連鎖を構築してしまいます。後者は開発者の意図する行動を期待できますが、行動を追加していく際に既存の行動を意識しなければなりません。
講演では、連鎖を自動的に構築する例として「F.E.A.R.」を、開発者が行動の間の呼び出しを定義する例として「クロムハウンズ」を取り上げました。「F.E.A.R.」については公開資料を元に解説が行われ、「クロムハウンズ」については開発に携わった講演者三宅氏の経験から解説が行われました。
講演に関する資料は、IGDA日本のサイトで配布が予定されています。
グループ討論
講演に続いてのディスカッションでは、3~6名のグループに分かれて、グループ討論を行いました。グループ毎に、実際に「プランニング」を使ったゲームを考えてもらうことで、理解の確認と相補を行おうと意図しました。
まず、メンバー全員が議論に参加できるよう、グループ毎に対象とするゲームジャンル、もしくは具体的なゲームを選択してもらいました。
次に、その対象におけるCOM(ノンプレイヤーキャラクタ)の外延的定義を行ってもらいました。メンバーの認識を摺り合わせるため、対象におけるCOMについて、2、3の実例を挙げるようにお願いしました。この実例から、COMが参照できる情報、COMの行動選択肢を整理してもらいました。COMの枠組みを整理できたところで、「プランニング」の手法を使って実現できるCOMの具体例を考えてもらいました。
続いて、「プランニング」を用いたCOMによって、実現可能になるゲームデザインについて考えてもらいました。「プランニング」を用いない従来のCOMから、「プランニング」を導入したCOMに変えることで、これまで無理だと考えていた機能や、面白さの表現が実現できると考えられます。いくつかのアイデアを出した後に、そのアイデアを吟味して、1つのゲームデザインのアウトラインに集約するようにお願いしました。
最後に、考えたゲームデザインのアウトラインを元に、その実現可能性を「企画会議シミュレーション」として議論してもらいました。各グループには、予め、企画職の方と技術職の方が入るように調整しておいたので、それぞれの立場で意見を出してもらい、現実の会議に近付くように配慮しました。
参加者の殆どがプロのゲーム開発者であることもあり、各グループで活発に討論が行われていました。また、他社の開発者との討論という状況も、参加者の刺激になっていたようです。
時間の都合もあり、各グループの成果をまとめる余裕がありませんでしたので、参加者の協力も得て、グループ討論のレポートを作成する予定です。
懇親会
IGDA日本のイベントでは、毎回、必ず懇親会を用意しています。これは普段、業界内の交流が、付き合いのある仕事仲間の範囲に限定されてしまうので、少しでも交流の輪が広がることを期待して催されています。
今回も40名を超える参加者が集まりました。セミナーの話題に止まらず、まじめな話題から、酒の席でしか話せないことまで、さまざまな話題で盛り上がりました。
締め切りありきで土日も関係ないような業界ですので、懇親会の参加を希望されても、仕事の都合で難しい方が多いようです。ですが、機会がありましたら、是非参加してみて下さい。IGDA日本という場が、望めば多くのものが手に入る場所だと理解してもらえるでしょう。
今後の展開
本セミナーの第3回は2007年4月を予定しています。詳細な日時、場所などは、まだ確定していません。テーマとしては、「クロムハウンズ」を題材に、オンラインゲームにおけるAIと、チームAIについて取り上げる予定です。3月中旬からIGDA日本のサイトにて参加申し込みを受け付けますので、興味を持たれた方はぜひご参加ください。
また、本セミナーを手伝って下さるボランティアも募集しています。会場の設営や懇親会の準備など、ちょっとした事でも手伝って頂けると助かります。参加者全員で作っていくセミナーを目指して、3回目以降の準備も進めていきます。皆さんのお力添えを宜しくお願い致します。
また残念ながら、「F.E.A.R.」の日本語版は既に販売とサポートが終了しています。