2009年09月28日

ゲームAIにおける4つの階層

ゲームAIには大切な4つの階層がある。

@ 時間の階層
A 場所の階層
B AIの構造的階層
C AIの意思決定の時間的階層

この4つを順番に説明する。皆様の開発の助けになれば幸いである。


@ 時間の階層

まずAIを作ろうとするとき、つまり、ユーザーにあるキャラクターなり、
機能を知的なものとして見せたいと思うとき、そのAIをユーザーに対して、
果たしてどれだけの時間、知的に見せたいのか(これをスコープ時間という)、
それが、3秒なのか、30秒なのか、3分なのか、で、必要な技術やレベルが
違って来る。まず、この点に注意して、自分が作ろうとするAIが、
どのような時間幅で、AIとして機能させたいかを考えてみよう。

ai_20090928_01.JPG

例えば、狭いマップの中で、戦闘をくり返すのであれば、
例えば、むかしの格闘ゲームであれば、3秒を一つの単位として、
戦闘を考えればよいだろう。
また、RPGなどの戦闘は平均3分だとしたら、その3分の間、
敵AIパーティをどう思考させてよいか考えてみる。
戦略ゲーム、Age of Empire なら、20分〜30分を考えて行かねばならない。

また、一つのゲームの中には、通常、多重にそういったサイクルが含まれており、
格闘ゲームでも、いつ休んだで体力を回復したり、パワーアップアイテムや酒とかを
飲むか、という戦術AIは、通常のアクションの上のロングレンジな階層がを持つAIである。

さらに、各AIのスコープ時間幅によって、使用する技術の適用の仕方も違って来る。
それが、反射型AIでよいのか、パターン分けAIでよいのか、FSMか、
プランニングか、ベイジアンネットワークか、逆に言えば、割り当てられる
計算時間によって使える技術も異なって来る。ここでは、
各時間幅に適した技術を分類することは避けるが、是非、そういった視点から、
AIを見るとよいだろう。例えば、FSM(有限状態マシン)やプランニングは、
どの階層にも使えるにしても、その単位となるのが、戦略なのか、戦術なのか、
アクションなのか、違って来る。


A場所の階層

AIの行動範囲が一体どれぐらいの広さで、複雑さを持つかによって、
「世界表現(AIが持つ場所データ)」の持ち方が違って来る。

例えば、単純な50m四方の空間であれば、AIは座標系だけを持っていればよい。
複雑な地形やダンジョンのような中な自由に動き回るとすれば、ナビゲーションのために、
ウェイポイントや、ナビゲーションメッシュからなるグラフを持っていけばならない。
さて、より広い範囲になれば、そういったナビゲーション・グラフを、階層的に
持っておく必要がある。例えば、ダンジョンの各部屋の代表点からなる上層グラフ、
そして、各代表点について各部屋ごとのナビゲーション・グラフなどである。

ai_20090928_02.JPG


ai_20090928_03.JPG

[参考]
Damian Isla, "Dude, wheres my Warthog? From Pathfinding to General Spatial Competence"
 http://www.aiide.org/aiide2005/talks/isla.ppt

BAIの構造的階層

AIの思考の構造もまた複雑になればなるほど階層化が進行する。
階層化をすることによって、AIは、より高度な思考が実現する。
また、階層を分けることで、「思考(モジュール)を思考」できるようになり、
メタ的な思考の組み合わせが抽象的な思考を可能にするのである。

例えば、敵の位置を現在の情報から予測する思考と、
予測した情報から、自分の戦術プランを立てる思考は、
違った階層に属するはずである。

FSMやプランニングは、
階層型FSM(Hierarchial FSM)、階層型プランニング(Hierarchial Planning)と言って、
そういった階層化は既にデフォルトの技術として研究されている。
これからの複雑なゲームAIは、思考の階層化は避けて通れない道である。

ai_20090928_05.JPG


ai_20090928_04.JPG

[参考] Bungie Publication
Damian Isla, "Managing Complexity in the Halo2 AI"
 http://www.gamasutra.com/gdc2005/features/20050311/isla_01.shtml

Hai Hoang, Stephen Lee-Urban, Héctor Muñoz-Avila,
"Hierarchical Plan Representations for Encoding Strategic Game AI",
AIIDE05
http://www.cse.lehigh.edu/~munoz/Publications/AIIDE05.pdf

ai_20090925_02.JPG


 
ai_20090925_03.JPG
 

The Quake III Arena Bot
 J.M.P. van Waveren
   Master of Science thesis, Delft University of Technology, June 2001
   http://www.kbs.twi.tudelft.nl/Publications/MSc/2001-VanWaveren-MSc.html


C AIの意思決定の時間的階層

複雑な思考の構造を持つAIを持てば、思考が遅くなるというのは、よくある誤解である。
人間が行動な思考能力を持ちながら、反射的な行動も取れるように、
実際に動作する思考は、常に多層な時間モードを持っている。AIにおいても、
そういった機能を持つことが出来なければ、ゲームに対応することは出来ないだろう。

実際、向こう3分の行動計画を立てることが出来るAIが、自分のプランに従って、
行動プランをこなしているときに、突然の敵の攻撃に対応して隠れる、或いは、反撃する、
という、「プランニングと即応モード」の両極的な行動の実装は、
多様な時間幅に対応できるAIを作り出し、ユーザーに強いインパクトをもたらす。

また、そういったアクションAIでなくても、高度な問題を解くAIにおいて、
簡単な問題な、単純な思考で、難しい問題は、よく深い思考で解くような、
「階層的な思考システム」を持つことも、非常に有効である。

ai_20090928_06.JPG
ai_20090928_07.JPG

[参考]
三宅陽一郎、「ゲームAI」、
デジタルコンテンツ制作の先端技術応用に関する調査研究報告書(2008年)、第3章
http://www.dcaj.org/report/2007/data/dc08_07.pdf

三宅陽一郎、「エージェント・アーキテクチャーから作るキャラクターAI」(CEDEC 2007)
CEDEC2007_R22_ymiyake_lecture.pdf
*   *   *

AIとは、
欧米的な言い方をすれば、与えられた時間と空間を自分のために征服する機能である、
東洋的な言い方をすれば、時間と空間と調和する生命だと捉えることが出来る。
どちらも同じことを言っている。

そして、
そういった時間と空間は、与えられた規模や複雑度に応じて、階層化して処理することで、
多様な多重性を持つAIが実現できるのである、

*   *   *

ゲームAIの基礎として頭の片隅に置いておいて頂ければ、
きっと皆様の開発に役立つことかと思います。長文、ご講読ありがとうございました。

posted by miyayou at 23:08| Comment(1) | TrackBack(0) | 日記
この記事へのコメント
I've been taken this chinese pills fruta planta for 1 week already, I heard a good deal about botanical slimming product, I haven’t used eating plan pills ahead of ,so I had no notion which product is powerful, but I appears there are various men and women working with it not. So I would like to have a try. Hope it functions good.
Posted by chinese pills fruta planta at 2013年08月01日 18:00
コメントを書く
お名前: [必須入力]

メールアドレス: [必須入力]

ホームページアドレス: [必須入力]

コメント: [必須入力]

この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/32493117
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック