IGDA日本は、株式会社フロム・ソフトウェアの協力、日本デジタルゲーム学会(DiGRA JAPAN)の後援の下、12月16日(土)に東京大学本郷キャンパス工学部新2号館(東京都文京区)にて、ゲームAI連続セミナー「ゲームAIを読み解く」の第1回「KillzoneにおけるNPCの動的な制御方法」を開催しました。
手前味噌ではありますが、本セミナーのコーディネータを務めました筆者がレポートをお届けします(写真提供:IGDA日本 新清士)。
セミナー概要
次世代機と呼ばれるXbox 360・Wii・PlayStation 3が次々と発売され、ゲームにあまり興味のない方も報道でご存知のことでしょう。CodeZine読者の皆さんも日々の開発で実感されるように、集積技術の向上に伴って、ソフトウェアが使えるメモリ容量やCPUパワーなどのリソースが、年々潤沢になっています。コンピュータであるゲーム機にも、当然その恩恵は及んでおり、1つ前の世代のゲーム機では、美しい映像をリアルタイムに生成することが可能となりました。次世代機では、さらに増強されたリソースを使って、物理現象のシミュレートや人工知能(以下、AI)の実装を行おうとする開発者の動きが活発になっています。
このような現状を鑑み、CEDEC2006において、「クロムハウンズにおける人工知能開発から見るゲームAIの展望」を講演した株式会社フロム・ソフトウェア技術部の三宅陽一郎氏と、「人工知能インターフェイス標準化:日本との出会い」のラウンドテーブルを司会した筆者は、欧米で先行するゲームAIの事例を紹介し議論によって理解を深める場として、全6回予定のゲームAI連続セミナーを企画しました。
本セミナーは、一般的な技術セミナーと異なり、
- 技術者だけではなく、ゲームデザイナー(企画職)にも参加してもらう
- 聴講するだけではなく、参加者に議論してもらう
というコンセプトを掲げています。
前者を唱える理由として、ゲームに組み込まれるAIはゲームの進行に大きく影響するため、技術者だけの問題ではなく企画に携わる方も共に理解を深める必要があることが挙げられます。ゲームデザイナーの方には「ゲーム内で何が実現できるか」を、技術者には「どう実現するか、どう発展できるか」を理解して頂き、双方がコミュニケーションを取りつつ開発を進めることができるように配慮しました。
後者を唱える理由としては、議論を通じて理解が深まることや、意見交換を行える場がほとんどないことが挙げられます。IGDA日本のセミナーには多くのゲーム開発者が集まるため、実際にゲームAIの実装に試行錯誤した経験を持つ開発者が集まり、そうした参加者の議論から有益な知見が得られる可能性が期待できます。みんなでセミナーを作っていくため、質疑応答やパネル討議ではなく、会場の全員で議論する時間を作りました。
セミナーの講演を担当する三宅氏は、冒頭で、このセミナーが「開発者が一堂に会してゲームAIについて学び討論する場」となるよう協力を呼びかけました。そしてセミナーの成果を実務に活かし、その経験を再びセミナーに持ち寄るというポジティブなフィードバックループを、日本でも実現しようと訴えました。
KillzoneにおけるNPCの動的な制御方法
第1回は「KillzoneにおけるNPCの動的な制御方法」と題して、評価関数による動的位置検出を取り上げました。
講演では、まず導入として、AIが判断を行う前処理として世界認識を挙げ、AIが周辺環境の情報を解釈する枠組みを、自ら獲得する場合と、枠組みは開発者が与えてやる場合に分け、今回のセミナーでは後者を扱うことを説明しました。開発者としては、自ら獲得してくれれば楽なのですが、一般的にこの枠組みを構築するのは難しく、後者の枠組みの方が手間はかかるが確実です。後者の枠組みのキモは、AIが解釈しやすいような情報の表現方法です。この情報表現を「知識表現」と呼び、特にAIの属する世界の大局的な知識表現を「世界表現」と呼びます。AIは世界表現から得られる情報に基づいて思考を行うので、AIに判断できる事柄の数や判断の質は、世界表現の出来によって左右されます。
Killzoneは、FPS(一人称視点シューティング)と呼ばれるジャンルのゲームです。この「電脳版サバイバルゲーム」では、プレイヤーと撃ち合う敵の出来が重要な要素になっています。Killzoneでは、敵が移動する場所を判断する場合に、世界表現を参照し状況判断を行っています。
Killzoneの世界表現の形式としては、ウェイポイント(way points)と呼ばれる手法が採用されています。ウェイポイントでは、地形上に網羅的な代表点を配し、代表点の間を移動コストで重み付けされた枝で結びます。枝は物理的に隣接する代表点の間でだけ結ぶものとします。この表現によって、地形上のある地点(に最も近い代表点)から別の地点(に最も近い代表点)への移動経路を、枝を通りながら代表点を経由していく形で表すことができます。ネットワークにおける経路制御と同じ考え方と言うとピンと来るかも知れません。
ゲームにおいて、ウェイポイントを世界表現として使うには、単に移動可能性の表現だけでは足りませんので、代表点にさまざまな情報を付与します。例えば、土地の高さ、見晴らしの良さ、どの方向に壁があって身を守れるかなどの情報を付与します。見晴らしの良さはその代表点から直接視界に入る他の代表点の数として表現可能でしょう。どの方向に壁があって身を守れるかは、方位を8分割し、方位ごとに射線の通る(直接視界に入る)代表点の数と、姿勢を工夫して壁に隠れることで射線を塞げる数の比率として表現可能でしょう。
こうして構築された世界表現を使って、次に向かうべき代表点を判断する仕組みを考えてみましょう。一般的に、高い土地は戦略・戦術の両面から有利とされています。見晴らしが良いことは、多くの地点を狙えると同時に、多くの地点から狙われるので、諸刃の剣ですが、壁に隠れられるなら、狙われるリスクを軽減できるので、有利になります。そこで、移動先の候補となる代表点について、さまざまな評価の観点を考慮して、1つの代表点を選ぶことにします。最も単純なのは、さまざまな観点の評価をそれぞれ点数化し、適当な重み付けをした後で総和を求め、この総和が1番大きい代表点を選ぶという方法です。
例えば、次の様な関数を考えることができます。
評価の総和= 0.7×それぞれの方向からの隠蔽率の平均×見晴らしの良さ +0.3×土地の高さ
こうした関数を「評価関数」と呼びます。適切な評価関数を使うことで、敵の移動はもっともらしいものになります。講演では、公開資料を元に、Killzoneがどのような評価関数を用いているのか具体的に解説されました。
講演に関する資料は、IGDA日本のサイトで配布されていますので、ぜひご覧ください。
ディスカッション
講演に続いて参加者全員によるディスカッションが行われました。本セミナーでは、出席者に聴講ではなく参加してもらうことを目的としているため、パネラーを置かず、講演者である三宅氏が司会する形でディスカッションを行いました。
互いの顔が見え、肉声でやりとりできる距離感を演出するため、参加者を半分に割り、狭めの空間で2回実施することにしました。参加された方の中には、どうして広い教室を半分に狭くしてセミナーを行うのかと疑問に思われた方も居られたと思いますが、そのような意味があったのだと理解いただければと思います。同じ内容を2回実施したことで、三宅氏の消耗具合はかなりのものでした。明らかになった、さまざまな問題点については、今後のセミナーで対処していきたいと考えています。
ディスカッションの内容としては、はじめての試みでもあり、議論が広範囲に発散してしまった印象があります。それだけゲームAIの守備範囲が広いということの現われでもあり、今後、時間をかけて、しっかり掘り下げていければと思います。
今後の展開
本セミナーの第2回は2007年2月10日(土)を予定しています。テーマは「F.E.A.Rにおけるゴール指向型アクションプランニング」の予定です。1月中旬からIGDA日本のサイトにて参加申し込みを受け付けますので、興味を持たれた方はぜひご参加ください。
本セミナーは全6回の開催を予定しています。第3回は4月以降に開催し、8月には終了する予定です。セミナー終了後も、セミナー参加者を中心としたゲームAIに取り組むコミュニティを維持できればと考えています。皆さんのお力添えを宜しくお願い致します。