【Watch記事検索】
最新ニュース
【11月30日】
【11月29日】
【11月28日】
【11月27日】
【11月26日】

Game Developers Conference 2007現地レポート

世界に先駆けて「Halo 3」と「SPORE」のAI構造が公開!!
「Three Approaches to Halo-Style Behavior Tree AI」

3月5~9日開催

会場:Moscone Center

 Microsoftが誇る最高のキラーコンテンツ「Halo」シリーズは、そのグラフィックス、エフェクト、シナリオ、マルチプレイを含むゲームプレイ全般に至るまで、大作FPSとしてふさわしいクオリティを備え、世界中で大ヒットを記録している。

 その「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は、再利用性を考えたシンプルな構成

「Behavior Tree AI for SPORE」というタイトルで講演を行なったMaxisのSoftware Engineer Lauren McHugh氏
 まず始めに紹介されたのは「SPORE」のBehavior Tree AI。「SPORE」は、ポリネート(受粉)して生成されたコンテンツから自動生成される種を育てていくことになる。ゲーム世界の中にはプレーヤーの種以外に無数の種が存在し、それぞれが意図を持ってアクションを起こしている。

 ゲームのメインストリームはあくまで自ら創造した種の繁栄ということになるが、仮想世界を成立させるためには、プレーヤーとNPCとのインタラクションだけでなく、目に見えない部分でのNPC同士のインタラクションも重要になる。こうしたことから「SPORE」では、シンプルなコードで記述された静的なツリー構造でAIを記述し、デザイナーが見ても理解できるような形で、無数のツリーAIを用意している。

 しかし、種の全員が同じAIで行動を取ってしまうと軍隊のような無味乾燥な動きとなってしまうため、同種複数のAIパターンの中から無作為に選ばせる構造を採用している。これにより、たとえば平時なら、Aはあたりをうろつき、Bは果物を食べ、Cは目の前の昆虫を殺して食べるなどの勝手気ままな行動を取り、風景として自然に行動しているように見せることができる。

 「Halo」のAIとの違いは、支配者と従属者の存在が存在することであり、従属者同士はお互いが一切の行動を制限できず、またAIにも他を制御するコードが記述されていないのに対し、支配者は従属者に対して一方的な拘束力、つまり命令を下すことができる。

 従属者の生態に関するAIは、活発的、まあまあ、不活発の3段階があり、特定の条件で動的に切り替わり、順次下層の行動に移っていくことになる。なお、コードの効率化を図るためにレアケースの行動に関しては、通常行動を納めたTree AIには含まず、独立したツリーとして用意するようだ。実際のデモ等は一切行なわれなかったため、その性能のほどは不明だが、自動生成されるコンテンツに即応できるように柔軟性の高いAIと言えそうだ。

【「SPORE」のビヘイビア】
さまざまなビヘイビアを持ち、本能の赴くままに行動するNPCたち。これらを制御するAIもかなり複雑なものになりそうだ

【「SPORE」Tree AIの概略図】
「SPORE」で使用されるTree AIの概念図。極めてシンプルな構造をしている。英語で記述しているため、何をするのかはかろうじてわかる


■ マウス1本でTree AIを構築できる「Visual Behavior Tree Editor」

「Visual Behavior Tree Editor」の講演を行なうHigh Moon StudiosのMarc-Antoine Argenton氏。スライドとデモをうまく切り替えられず、大幅にタイムロスした結果、質疑応答の時間がなかったのが残念だ
 2つ目はゲームではなく、Vivendi Gamesの一部門であるHigh Moon Studiosの次世代機向けの取り組みが紹介された。

 その取り組みとは、FPSをターゲットゲームに、Behavior Tree AIを可視化した状態でAIを生成していくためのツール「Visual Tree Editor」だった。Unreal Engine 3.0のグラフエディターを用いて開発されたツールで、可視化したことで誰でもその構造が理解できるだけでなく、スクリプトの実装を短時間で行なえることや、デバッグの短縮化、結果として開発期間全体を短縮できるといったメリットがある。

 「Visual Tree Editor」では、生態を定義したノードから、ナビゲーション、戦闘戦術、接触といったシーン別のサブシステムまでを一括してひとつのTree AIとして構築できる。その実装は、マウス1本で行なえるというシンプルさで、非常にわかりやすい。デバッグモードで表示されるずらずらっとコードが書かれるAIの記述が一般的であるだけに、このアプローチはおもしろい。

 講演では、ノードのみが設定されている状態から枝葉を延ばし、敵の行動がどのように変化するかのデモが行なわれた。単にターゲットを見つけて銃撃するだけの状態から、逃げる敵を追いかける、銃撃されたら隠れる、弾切れになったら隠れてリロードする、最終的には回り込んで攻撃するというところまで進化した。

 このノウハウがどのゲームにどう活かされるのかまったくわからないのが残念で、また、これだけでは、果たして細かいケースで応用できるのかどうかにも不安が残る。いまのところMOD制作が飛躍的に楽になるというぐらいしかわからないが、ともあれユニークな取り組みである。

【Visual Behavior Tree Editor】
ツリーを延ばし、項目を選択していくだけでAIが完成する。コンシューマゲームのアプローチだが、これで「Unreal Engine 3.0」のリアルなキャラクタが制御できるのだからおもしろい

【デモ】
敵がどんどん優秀になっていくのを見ているのはおもしろい。しかしこのアプローチだと、敵が何によって相手を把握しているのかが不明瞭で、「ずるい」動きにも見える。リアリティを深めていくために別のノウハウの投入も必要だと感じた。ただ、いずれにしてもやはりゲームのおもしろさを左右するのはAIだ


■ そして真打ちの「Halo 3」のAIはどう進化するのか!?

拍手喝采で迎えられ照れながら講演を行なうBungie StudiosのMax Dyckhoff氏。講演タイトルは「Ecolving Halo's Tree AI」
共同作戦は「Halo 3」でまた進化する。ここで紹介されているのは、共同作戦におけるAI制作のアプローチだ
 そして最後に紹介されたのが、このセッションの元ネタである「Halo」の最新作「Halo 3」である。Microsoftのプレスプレビューイベントでもデモは行なわれなかったため、GDCで「Halo 3」が語られたのは嬉しい誤算だった。Dyckhoff氏は、講演の中で「Halo」や「Halo 2」のBehavior Tree AIの課題を指摘しながら、「Halo 3」でどう乗り越えていくのかを解説していった。

 初代「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」が最終的にどのようなものに仕上がるのか完成形を見るのが非常に楽しみだ。

【「Halo 3」Inhibition】
「Halo 3」で新しく導入されるInhibition(抑制)の概念図。乗り物に乗った際は、他の乗り物を利用する選択肢はInhibitionし、アクターがバーサーク状態の場合は、乗り物に乗る、退却する、逃げる、身をすくむといったアクションをフィルタする

□Game Developers Conference(英語)のホームページ
http://www.gdconf.com/
□Game Developers Conference(日本語)のホームページ
http://japan.gdconf.com/
□関連情報
【3月7日】サンフランシスコにてGame Developers Conference 2007が開催
史上最大規模での開催。任天堂とSCEのキーノートに期待
http://game.watch.impress.co.jp/docs/20070306/gdc2007.htm
【3月】Game Developers Conference 2007 記事リンク集
http://game.watch.impress.co.jp/docs/20070308/gdclink.htm

(2007年3月12日)

[Reported by 中村聖司]



Q&A、ゲームの攻略などに関する質問はお受けしておりません
また、弊誌に掲載された写真、文章の転載、使用に関しましては一切お断わりいたします

ウォッチ編集部内GAME Watch担当game-watch@impress.co.jp

Copyright (c) 2007 Impress Watch Corporation, an Impress Group company. All rights reserved.