|
会場:Moscone Center
その「Halo」シリーズにおいて目立たない要素ではあるものの、一種のリファレンスとなるまでに海外で高い評価を得ているのがNPCのAI(人工知能)である。現時点での最新作である「Halo 2」はBehavior Tree AI(階層構造でNPCの生態を表現した人工知能)を採用することで、より表現豊かなキャラクタインタラクション、緊迫感の高いバトルといったものを実現していた。 最終日に行なわれたセッション「Three Approaches to Halo-Style Behavior Tree AI」では、この「Halo 2」スタイルのBehavior Tree AIにおける3つの新しいアプローチが公開された。次世代ゲームにおけるAIの重要性を証明するかのように、開講前から満席の状態で活況を呈していたのが印象的だった。内容的にも単にゲームAIの最新動向が取り上げられるような内容ではなく、誰もが注目する「SPORE」や「Halo 3」といった著名なAI構造も公開されるなど、大きな収穫のあった講演だった。
■ 「SPORE」のBehavior Tree AIは、再利用性を考えたシンプルな構成
ゲームのメインストリームはあくまで自ら創造した種の繁栄ということになるが、仮想世界を成立させるためには、プレーヤーとNPCとのインタラクションだけでなく、目に見えない部分でのNPC同士のインタラクションも重要になる。こうしたことから「SPORE」では、シンプルなコードで記述された静的なツリー構造でAIを記述し、デザイナーが見ても理解できるような形で、無数のツリーAIを用意している。 しかし、種の全員が同じAIで行動を取ってしまうと軍隊のような無味乾燥な動きとなってしまうため、同種複数のAIパターンの中から無作為に選ばせる構造を採用している。これにより、たとえば平時なら、Aはあたりをうろつき、Bは果物を食べ、Cは目の前の昆虫を殺して食べるなどの勝手気ままな行動を取り、風景として自然に行動しているように見せることができる。 「Halo」のAIとの違いは、支配者と従属者の存在が存在することであり、従属者同士はお互いが一切の行動を制限できず、またAIにも他を制御するコードが記述されていないのに対し、支配者は従属者に対して一方的な拘束力、つまり命令を下すことができる。
従属者の生態に関するAIは、活発的、まあまあ、不活発の3段階があり、特定の条件で動的に切り替わり、順次下層の行動に移っていくことになる。なお、コードの効率化を図るためにレアケースの行動に関しては、通常行動を納めたTree AIには含まず、独立したツリーとして用意するようだ。実際のデモ等は一切行なわれなかったため、その性能のほどは不明だが、自動生成されるコンテンツに即応できるように柔軟性の高いAIと言えそうだ。
■ マウス1本でTree AIを構築できる「Visual Behavior Tree Editor」
その取り組みとは、FPSをターゲットゲームに、Behavior Tree AIを可視化した状態でAIを生成していくためのツール「Visual Tree Editor」だった。Unreal Engine 3.0のグラフエディターを用いて開発されたツールで、可視化したことで誰でもその構造が理解できるだけでなく、スクリプトの実装を短時間で行なえることや、デバッグの短縮化、結果として開発期間全体を短縮できるといったメリットがある。 「Visual Tree Editor」では、生態を定義したノードから、ナビゲーション、戦闘戦術、接触といったシーン別のサブシステムまでを一括してひとつのTree AIとして構築できる。その実装は、マウス1本で行なえるというシンプルさで、非常にわかりやすい。デバッグモードで表示されるずらずらっとコードが書かれるAIの記述が一般的であるだけに、このアプローチはおもしろい。 講演では、ノードのみが設定されている状態から枝葉を延ばし、敵の行動がどのように変化するかのデモが行なわれた。単にターゲットを見つけて銃撃するだけの状態から、逃げる敵を追いかける、銃撃されたら隠れる、弾切れになったら隠れてリロードする、最終的には回り込んで攻撃するというところまで進化した。
このノウハウがどのゲームにどう活かされるのかまったくわからないのが残念で、また、これだけでは、果たして細かいケースで応用できるのかどうかにも不安が残る。いまのところMOD制作が飛躍的に楽になるというぐらいしかわからないが、ともあれユニークな取り組みである。
■ そして真打ちの「Halo 3」のAIはどう進化するのか!?
初代「Halo」での課題としては、めったに起こらないイベント用の行動までもいちいちすべてチェックしてしまうことを挙げた。「Halo 2」では、このムダなルーティンを防ぐために、NPCの行動や行動の発端となる刺激が動的にかつ気まぐれに特定のツリーの位置に置き換わるようにAIを改良したという。 また、デザイナーがBehavior Tree AIの構造を理解していないために、「グレネードなし」、「カバーなし」、「グレネード、カバーなし」とった無意味なTreeを作ってしまっていた。「Halo 3」ではBehavior Tree AIの構造を変え、「消極的」、「普通」、「攻撃的」といったスタイルを採用して、これらのスタイルに基づいた行動パラメータを調整していくという。 また、「Halo」と「Halo 2」の開発を通じて、Tree AIの中で何が重要で、何が不要かを学んだという。たとえば、「Halo 2」では、ターゲットのサーチ状態が絶えず続いていたが、乗り物に着いているアタッチメントは、わずかにしか使用していなかった。また、乗り物の座席においてたびたび内部的にスタック状態になり、複数人数を正しく乗せていくことが難しいことを理解したという。 そこで「Halo 3」では、乗り物に対するアプローチを変え、乗り物の構造をAIに理解させ、また、ケースによって動機付けの有無を設定したり、行動の中に入れたり入れなかったりといった調整を行なっていくという。これにより、内部スタックが発生しにくくなり、なおかつスクリプトが引き締まったという。 なお、他のNPCとの共同作戦については、「Halo 2」では他のNPCに対して共同作戦に誘うというアルゴリズムを取っていたが、「Halo 3」では、複合的なメカニズムを採用し、先述した乗り物と同様のコンセプトでレベルの高い共同作戦を実現するという。 今回紹介された「Halo 3」のAIはまだ部分的なものだが、ゲームにおける重要なポイントとして見定め、しっかりした進化を約束してくれたのは心強い。ゲームAIは、日本でも議論が活発になりつつあるだけに、「Halo 3」が最終的にどのようなものに仕上がるのか完成形を見るのが非常に楽しみだ。
□Game Developers Conference(英語)のホームページ (2007年3月12日) [Reported by 中村聖司]
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved. |
|