ゲームAI 単語

20件

ゲームエーアイ

8.5千文字の記事
  • twitter
  • facebook
  • はてな
  • LINE

ゲームAIとは、電子ゲームにおいて利用されるAI(人工知能)をす言葉である。

概要

しかし実質的には、プレイヤーゲームプレイする上で用意された仕掛けの動作をより巧妙にし、それによってプレイアビリティを向上させる事を的とした一連のテクニックである。

書籍『実例で学ぶゲームAIプログラミング』(以下『GAI』)の前書きには「私達のゴールを持っているような幻想を与えるエージェントを設計することであり、それ以上ではないのです」と書かれている。要するに、同書籍が発売された2007年時点では「知」と言えるほどの高度なプログラムを作成し、それをゲームに搭載することは技術的にもコスト的にも非現実なことであった。2016年現在でもその現状は変化していない。

このように、通例ゲームにおけるAIとはそれが恰も人間が操作しているかのように見せ掛けるにはどのような動きをさせるのが良いかという観点から設計されている。つまりゲームAIという時、それがAIとしての条件を満たし ているかどうかよりも、プレイヤーゲームプレイしていてその対に知あるいは知性を感じるかどうか、という点に眼が置かれている。

また、『カルネージハート』『アーマード・コア フォーミュラフロント』など、ゲーム内においてプレイヤーが自らパターンブロック図などで組んで定し、それに従った行動を取らせる事の出来る機を備えているゲームもある。それを用いて組まれたAIをゲームAIと呼ぶこともある。

アクションゲームにおけるAI

最もポピュラーかつ古典的な電子ゲームの一つ『マリオブラザーズ』に登場するクリボーノコノコといった敵キャラクターは、画面右から登場し一定速度で左に向かってひたすら直進を続け、に突き当たった場合は反対方向に向かって同様に直進するという動作が組込まれている。

こういったごく基本的な動作しかとらない対AIと呼ぶことは出来ない。論こういった動作であってもその移動速度や出現タイミングには細心の注意を払って設計しなければならないという点では、製作者の意図が少なからず込められてはいるが、そのキャラクターを一つの個体として捉えた時そこに知と謂うべきものを一切見出すことが出来ないからである。

ゲームAIのように擬似的なものであっても、最低プレイヤーの動作に従って行動パターンが分岐するようなものでなければならない。

ゼルダの伝説 神々のトライフォース』に登場する敵キャラクターに「兵士」がいる。この敵は一定範囲をただ往来するという単純な動作しか取らず、こちらから接近したり攻撃を行っても一切行動が変化しない。一方その上級キャラクターである「兵士」はプレイヤー立った動作を取るとそれに反応し、こちらに向かって突撃してくる。

この「プレイヤー行動に反応して動作が変化する」かどうかという点にAIかそうではないかの一つのがあると言える。あるパターンの動作を繰り返し行うだけでは知とは呼べず、キャラクターの形をとった舞台装置の一種でしかない。

ロールプレイングゲームにおけるAI

敵キャラクターのAI

ターンベース戦闘が行われるRPGでは、敵キャラクター行動パターンをどのように設計するかという問題がある。

最も単純なパターンは毎ターン管同じ行動を繰り返すというものだがここまで単純なパターン実装される事は稀で、多くの敵キャラクターには攻撃・防御・ 魔法・特殊攻撃・逃走など幾つかのコマンドが用意されており、それらの内からランダムで一つの行動を取る事が多い。またそれらを一定周期で繰り返すといっ たパターンが組まれる事も屢である(攻撃→魔法→防御→特殊攻撃→以下ループ、等)。こういった極めて単純なパターンであっても調整次第で知的な行動をとっている様に見せる事がある程度可だが、より人間的な振舞いを取らせるにはより複雑なパターンを追加していく必要がある。

またRPGにおいてこういった極度に単純化された行動パターン攻略不能性やフラストレーションの元になる。ターンベース戦闘RPGではアクション系統のゲームと異なり、相手の攻撃を自で回避する事が不可能仕様が採用されていることが大半であるからだ。よってそこに攻略性を持たせるには敵の行動をある程度「知的」なものにしなければならない。

その最たる例としてはパラメータの変動に伴う行動パターンの変化である。蓄積ダメージが一定の割合をえたときにある行動ルーチンから別の行動ルーチンに 移行したりというのが典的なもので、これはRPGのみならず戦闘行為が行われるゲームの多くが採用しているギミックである。ただこうした行動は知的というよりもゲーム性を盛り上げる為に敵キャラクターの足掻きのようなものを醸し出す演出として受け取られる事が多く、ゲームAIの技法とは言い難い側面が強い。

敵の行動をより知的に見せる手法としては特定キャラクターへの集中火といったパターンが考えられる。これはプレイヤーゲーム攻略の際に用いる戦術をそのまま模したような形になっており、回復・補助系の魔法を得意とするキャラクターから先に倒すことで戦闘を有利に展開させるといった事はどのRPGでもよく見受けられる攻略法である。つまりプレイヤーが敵に対してとる行動を敵側に真似させる事で、敵の行動に戦術性を有利に持たせることは出来る。

かしこういった行動をとる場合、プレイヤー側の情報を敵AIが「知る」過程を作らなけらばいなければプレイヤー不自然な印を与えてしまう。仮に、単純に「魔法が使えるキャラクターを集中的に攻撃してくる」といった行動パターンを組む場合は魔法が使用できるキャラクターとそうではないキャラクターフラグ分けして前者に集中して攻撃を行う、といった行動を取らせれば事足りる。しかし毎回こうした行動を繰返し行うだけでは、「敵キャラクターは知的に判断しているというより、何らかの内部変数を元に機械的に狙う相手を選ぶという行動を行っているだけ」という事にプレイヤー側が勘付くのは容易である。

「この敵キャラクターは、戦闘中に得た知識を元に行動を変化させた」という印プレイヤーに与えるには、魔法を使用してきたキャラクターに対して攻撃を集中する、といったパターンを組む必要がある。この場合「その敵キャラクターに対して魔法を使わなければ集中攻撃をされないので、魔法を使わずに倒す」という一つの攻略法が出来上がる。

キャラクターにある行動を取らせようとした時、それを即座に実現させるようなプログラムがゲームAIとして優秀とは限らない、という事である。プレイヤーに対し如何に攻略性をそこに担保してやれるかがカギとなる。

味方キャラクターのAI

日本で最も有名なコンピュータRPGシリーズのひとつ『ドラゴンクエストシリーズには、4作ドラゴンクエストIV」「さくせん」コマンドが存在し、これを選ぶことでキャラクターを下す事が出来る。

5作ドラゴンクエストV」から登場したさくせんである「めいれいさせろ」では全キャラクタープレイヤーが操作できる。これに対して、「みんながんばれ」・「ガンガンいこうぜ」・「じゅもんせつやく」など「めいれいさせろ」以外のコマンドでは主人公以外のキャラクターが操作不能になり。作戦名にあるような行動を自動で行う。

「さくせん」システムが初登場した「ドラゴンクエストIV」の発売当時は、この「さくせん」システム、すなわち「AI戦闘」を大きな売りとしていた。AIという言葉がまださほど一般的ではなかった時代であり、「当時のこのゲームで初めてAIという言葉を知った」という人は少なくなかったようである。

このドラゴンクエストIVでは既に「学習AIを採用しており、「敵にどういった戦法が有用なのかをAIが学習して次の戦闘に活かす」という機までも実現されていた。だがあくまで「次の戦闘から」というだけであるため、最初の戦闘中は、効かない攻撃であろうと何度も繰り返してしまう仕様となっていた。

そのため「即死効果属性を持つボスキャラに対してまで、即死魔法を唱え続ける」といった、プレイヤーから見れば間の抜けた行動をとってしまうも生まれてしまい、シリーズファンり種となった。(「クリフト」の記事を参照。)

シミュレーションゲームにおけるAI

シミュレーション、とりわけストラテジー/タクティカルゲームにおいてAI必要不可欠なものにして、その出来がゲームの面味に直結する度合においては他のゲームに優るとも劣らない。

シミュレーションソフトにおいてAIの挙動が最も問われるのはやはり敵ユニット行動パターンである。

とは言え、大半の作品では戦の上でプレイヤー側に対して敵側が圧倒的に優っており、各ユニットのパラメータも桁違いの差が付いているような事もしくない。戦に非対称性を付ける事でAIの思考の低さを補う形となっており、またそういった状況ではプレイヤー側が如何に不利な形勢から勝利を掴むかという腕前が問われるため、囲碁将棋の様に人間と対等の条件下での勝負に耐えるような高度なAIを組まずともプレイ甲斐が保されるという訳である。

そのため多くの作品ではAI側がプレイヤー側がしばしば用いる基本的な戦術(特定ユニットを囮にする、交戦回数を稼ぐことで消耗を促す等)であっても敢えてそれらを活用してくるようなプログラムは組まれていない。有態に言えばAIプレイヤー側を「攻略」してくるような思考パターン実装している作品は極めて稀である。

通例、シミュレーションRPGでは各ステージグリッドまたはヘックスで構成されており、そこに予め配置された敵がプレイヤー側のユニットに対して接近し 攻撃を仕掛けてくる。各ユニットは固有の移動を持ちそれに従って移動するが、最も基本的なパターンプレイヤー側のユニット掛けて全で接近→射程に入り次第攻撃、というものである。基本的にはこれで完成だがマップ構成に障害物が含まれていたり、マスの種類によって消費する移動が異なる場合幾つかの工夫を必要とする。

その程度の単純な思考パターンしか持たせない代わりに、敵がプレイヤー側を「攻略」してきていると感じさせる要素が、特定ステージシチュエーションとして用意されていることもある。特にストーリー展開の上でプレイヤー側が敵軍から包囲されたり、追撃されるといった戦況に立たされる事は定番で、それに合わせてAIの挙動も若干アレンジが施されているケースが多い。論こうした状況をAI自らが練っている訳ではなく純舞台装置である。


本記事では以下の節より、『GAI』内の記載に準じた記述が多くなる。2007年の著作であるためいささか古い内容も多いが、時代をえて参考となる部分もあるかもしれない。


イベント駆動

GAI』には「よく設計されたゲームイベント駆動になる傾向があります」と書かれている。

イベントとは通常出来事や行事、催し物をす言葉でカタカナとして広く使われている。またゲームにおけるイベントとは、プレイヤーの観点からはゲームを大きく変化させる出来事(物語の急展開など)や、その他何か特別な出来事(話すとアイテムが 貰える人物との会話など)を表す言葉として了解されているため、イベントと聞いた時多くのプレイヤーが思い浮かべるのはそちらだと予想される。

だがプログラミングにおけるイベントとは「キーボードを押した」、「時計がある時刻になった」などのプログラムの流れとは別に発生する事(アクション)を受けて付帯情報キー種別やボタン種別などのデータ)とともに発信された信号をいう。

イベント駆動とはそれらのイベントを切っ掛けに他のプログラムコードが動かされたりするようなプログラミングをすることをし、GUIイベント駆動によって記述されている。

GAI』ではゲームAIプログラミングに長きにって用いられてきた技法である有限ステートマシン[Finite State Machine:以下FSM]を紹介しており、FSMを採用する理由として次の5つを上げている。

FSMはその名の通り限られた数のステート(状態)からなる装置で、あるオブジェクトに対してそれが取りうる複数のステートを定義し、それらの間を特定の条件をトリガーとして切り替える事でAI様の振舞いを見せることが可という仕組みである。以下のような例が挙げられている。

前項で上げた『ゼルダの伝説 神々のトライフォース』の敵キャラクターの動作をFSMによって理解すると以下のようになる。

兵士:ステート「巡回」のみを持つ。リンク行動をトリガとした状態遷移は起きない。
兵士:ステート「巡回」「突撃」を持ち、リンク特定行動(接近、突、被弾など)をトリガとして「巡回」から「突撃」へ状態遷移する。

ここで兵士の動作をより知的にしようとした場合、どういった工夫を凝らせば良いだろうか。ステートの数を増やす事は論、状態遷移を可逆的なものにするというのも重要なポイントになる。上の例では「巡回」→「突撃」の状態遷移はあってもその逆は定義されていない。「突撃」に移行してから一定時間が経過する、リンクとの距離が離れるなどした場合に再び「巡回」ステートに戻るといったパターンが考えられる。

GAI』は更にFSMそのものを並列化・階層化させる事を推奨している。並列化の例としてはあるキャラクターについて移動に関するFSMと武器の使用に関するFSMの2つを用意し、これらを同時に制御する事でより明確な定義を可にするといったものである。階層化は例えばあるオブジェクトが「探検」「戦闘」「巡回」というステートを持っていたとして、「戦闘」は「回避」「追跡」「攻撃」といった幾つかの細かなステートからなる、といった多段構造になっているようなケースである。

自律エージェント

エージェント(Autonomous Agent)とは「何らかの環境におかれたシステムであり、その環境を感知し、自身の内的方針に従って行動する存在」、「周囲の環境を認識して状況を解釈し、自身の内的な方針に基づいて意思決定を行って、環境に働きかける行動を取るを持つ存在」といった定義が与えられている。『GAI』では自エージェントの動作を次の3層からなる構造で説明している。

  1. 行動選択
  2. 移動運動

この三つの具体例を示すと1.ゴール地点およびそこに至るプランの選択、2.ゴールまでの軌計算、3.移動に際して行われるモーションの定、のようになる。

しかしまずは「自的」とはどういう状態か、また「エージェント」とは何かという疑問から払拭せねばならない。

autonomousの義は次のようなものである。

  1. able to govern itself or control its own affairs
  2. able to do thigs and make decisions without help from anyone else

対義にheteronomous[他的]があり、これはその行為や意志が、他者の意志や自然行動によって支配されている状態をす。

一方agentは一般に代理人、代理店、剤などと訳されるが「行為の体、動作」といった定義も存在する。コンピュータとしても使われており、「ユーザーを代行して処理を自動的に行うプログラム」といった意味がある。

では自的でないエージェントとはどういったものかと言えばPC(プレイヤー操作キャラクター)全般がこれに当たるだろう。彼らは内的方針といったものを持たず、プレイヤーからのボタンを受けて所定の動作を実行するのみであり、そこに自性は存在しない。よって次のような分類が可である。

エージェント:NPC、敵機、オートモード下のオブジェクト全般
エージェント:PC、自機、マニュアルモード下のオブジェクト全般

上述の『ドラゴンクエスト』の例で言えば、「めいれいさせろ」ではパーティ全員が他エージェントとして振舞うのに対し、それ以外の作戦では勇者のみが他エージェント、その他のメンバーは自エージェントとして振舞う事になり、パーティ全体では半自エージェントと言うべき状態で戦闘が行われる。
プレイヤーから作戦として与えられた行動方針を「内的方針」と呼ぶには当たらない(1.の「行動選択」を自ら行っていない)、という考えもできるので、例えば各プレイヤーに固有の行動方針が設定されており、それに従った行動をとるような場合でなければ全な自エージェントとは呼び難く、やはりこれも半自的あるいはセミオートと言うべき状態であろうか。

グラディウスシリーズの「オプション」もまた半自エージェントに相当する。これは自機の他に追加で射撃を行う球状オブジェクトだが、その配置は予めプレイヤーが選択した形態に従い、また直接操作は不可能だがその軌は自機の操作をそのまま準える。自ら敵機を察知して攻撃を加えたりはせず、専らプレイヤー射撃に合わせる形で行うため、「周囲の環境を認識した上での状況解釈」も、「自身の内的な方針に基づいた意思決定」も一切行っていない。その意味ではど全く他的と言ってよいのだがプレイヤーの意志に従った行動をとっている訳ではなく、プレイヤー自身とは言えない程度に独立した存在であるため半自になる。

このようにゲーム中にはプレイヤーの意向が反映されつつも随意に操る事が不可能または困難プレイヤーオブジェクトが多数存在する。これらは時としてフラストレーションの要因にもなるので可な限りプレイヤーの意をむ事が出来るようなパターンの設計が望まれる。

については数多くあり、『GAI』では次のようなものが列挙されている。

ファジー理論

ファジー(fuzzy)とはぼやけた状態の事で、輪がはっきりしないような状態を表す言葉でもある。このファジーの概念論理や制御に応用したのがファジー理論で、身近な所では家電自動車に、その他クレーンやエレベータの制御にも使われている。

基本的にコンピュータはある値よりも大きいか小さいか、ある条件を満たすか満たさないかといった二値判断に基づいて動作しており、例えばx>100という条件を入すればジャスト100であっても満たさないとする。論そのように判断しているのが正しく動作していると言える状態なのだが、例えばあるAIに成功率50%未満ではトライしないという条件を入した場合、49%だった場合人間ならばほぼ50%と同じものと判断して挑む事も多いがそのようにプログラムされたAIは絶対に挑戦しない。

毎回このような判断を下すAIに対して人間は知的であるという感触を持つ事は少ない。

GAI』では集合論の話から始めてファジー理論の説明を行っているが、ここでは次のプロセスを中心に見ていく事にする。

クリスプ値→ファジー化→ファジールール→非ファジー化→クリスプ値

クリスプ値」とは二値の事で、コンピュータでは1か0に分けられる。ファジー値とはその中間値、つまり0から1の間に含まれる任意の数の事で、このファジー値を「度合」を量る数として用いる事でより柔軟な制御を可とする。

例えばをその長さで短剣、剣、大剣の3グループに分ける時、渡り100cm未満は短剣、100-200cmは長剣、200cm大剣としたとする。この分け方は同時に二つのグループに属している物が存在しないためクリスプである。一方渡り120cm未満は短剣、100-200cmは長剣、180cm大剣とした場合、短でも長でも有り得る物と長でも大剣でも有り得る物が出て来る。こうした分類はファジーであり、また重なり合う部分はファジー界となる。

同書では更にファジー言変数(Fuzzy Linguistic Variable:FLV)という概念を用いてファジールールの設計を解説する。

関連商品

関連項目

この記事を編集する

掲示板

おすすめトレンド

ニコニ広告で宣伝された記事

記事と一緒に動画もおすすめ!
もっと見る

急上昇ワード改

最終更新:2024/04/24(水) 02:00

ほめられた記事

最終更新:2024/04/24(水) 02:00

スマホで作られた新規記事

ウォッチリストに追加しました!

すでにウォッチリストに
入っています。

OK

追加に失敗しました。

OK

追加にはログインが必要です。

           

ほめた!

すでにほめています。

すでにほめています。

ほめるを取消しました。

OK

ほめるに失敗しました。

OK

ほめるの取消しに失敗しました。

OK

ほめるにはログインが必要です。

タグ編集にはログインが必要です。

タグ編集には利用規約の同意が必要です。

TOP