コンピュータゲームにおける人工知能

コンピュータゲームにおける人工知能は、コンピュータゲームにおいて、ノンプレイヤーキャラクター  の振る舞いに知能があるかのような錯覚を生み出す技法である。主な技法は人工知能  の既存技術を活用したものである。しかしゲームAIと呼ぶ場合、制御理論・ロボット工学・コンピュータグラフィックス・計算機科学全般の技法を含む様々なアルゴリズムを指して使われることが多い。

ゲームAIはユーザーから見て知性が感じられるか、ゲームプレイが心地よいかに集中しているため、通常のAIとは手法が大きく異なる。ワークアラウンドやチートは許容されており、コンピュータと人間の対戦形式の場合、人間側が公平さを感じるよう調整が必要である。例えばファーストパーソン・シューティングゲームの場合、NPCは人間の能力を超えた完璧な射撃もできるが、それでは公平さが感じられなくなる。

1. 歴史
-----

ゲームプレイはAIの初期から研究対象となっていた。初期のAIの例として、ニムというゲームをコンピュータ化したものがあり、1941年に開発され、1942年に発表された。ポンの30年以上前、当時の最先端技術を使ったゲームだが、比較的小さい箱型のゲームであり、ニムの熟練プレーヤーにも普通に勝てるレベルだった。1951年、マンチェスター大学の Ferranti Mark 1 を使い、クリストファー・ストレイチーがチェッカープログラムを、Dietrich Prinz がチェスプログラムを開発した。他にもアーサー・サミュエルがチェッカーのプログラムを1950年代中ごろから1960年代にかけて発展させ、最終的には腕のいいアマチュアと互角に戦えるレベルを達成した。チェッカーやチェスに関しての最高到達点は、1997年にIBMのディープ・ブルーがガルリ・カスパロフに勝ったことである。1960年代から1970年代初めにかけての初期のテレビゲームとして、「スペースウォー!」、「ポン」、「ガッチャ」 などがあるが、それらは論理回路で実装され人間同士が対戦する形式であり、AIとは無縁だった。

シングルプレーヤーでゲーム内の敵と戦う形式のゲームは1970年代に登場しはじめた。アーケードゲームでの初期の例として、「スピードレース」、//Qwak//、//Pursuit//などがある。テキストベースのコンピュータゲームでは1972年に //Hunt the Wumpus// や //Star Trek//といったゲームにコンピュータの操る敵が登場している。敵の動きは予め格納されたパターンに基づいている。マイクロプロセッサが使われるようになるとより多くの計算が可能となり、動きのパターンにもランダムな要素が加えられるようになっていった。

アーケードゲームの黄金時代には、「スペースインベーダー」 の成功によってAIが操る敵というアイデアが大いに一般化された。「スペースインベーダー」ではAIを使って徐々に難易度が上がるようにし、別個の動きのパターンを可能にし、プレーヤーの入力に基づいてハッシュ関数でゲーム内イベントを生成していた。「ギャラクシアン」 では敵の動きのパターンがさらに複雑化・多様化し、編隊から個々の敵が飛び出すような動きも実現した。「パックマン」 では迷路ゲームにAIパターンを導入し、それぞれの敵に異なる個性を与えている。「空手道」 では対戦型格闘ゲームにAIパターンを導入したが、AIが貧弱だったためすぐに第2版が登場した。「ファーストクイーン」 は戦術アクションRPGで、AIが操るキャラクター群がリーダーに従うシステムを導入した。コンピュータRPG「ドラゴンクエストIV 導かれし者たち」 では、戦闘の際のNPCの行動を自動化するAI戦闘において「作戦」システムを導入し、NPCの行動を制御できるようになった。この方式はアクションロールプレイングゲームのジャンルでは「聖剣伝説2」 で導入されている。

「マッデンNFL」、//Earl Weaver Baseball//、//Tony La Russa Baseball// といったスポーツゲームは、特定の有名人の指導・監督スタイルをコンピュータ上で再現するのにAIを利用している。その後のスポーツゲームでは、AIの変数群をユーザーが調整することで、好みの指導・監督スタイルを設定できるようにしている。

1990年代には新たなゲームのジャンル群が出てきて、有限状態機械などのAIツールの利用が促進された。リアルタイムストラテジーゲームは、多数のオブジェクト、不完全な情報、経路探索問題、リアルタイムでの意思決定、経営計画などといった事柄をAIに扱わせた。しかし、初期のその手のゲームにはAIに関連して様々な問題があった。例えば「ヘルツォーク・ツヴァイ」 の経路探索とユニット制御のための3状態機械はほとんどうまく機能しなかった。また //Dune II// ではプレーヤーの基地を最短コースで攻撃し、ゲーム上知りえないはずの情報に基づいて行動することで知られていた。このジャンルのAIはその後洗練されていった。

その後、創発などのボトムアップ的AI技法を採用するゲームも登場。「ブラック&ホワイト」では、プレーヤーの動きをボトムアップ的AIで評価している。//Façade//  は、NPCと自然言語で対話することをゲームの中心に据えている。

ゲームは人工知能開発の環境を提供し、そこからゲームを超えた潜在的用途も生まれてきた。例えば、「ジェパディ!」というアメリカのクイズ番組で人間に勝利したコンピュータ「ワトソン」や、サッカーをロボットにプレイさせるロボカップなどもある。

2. 利用
-----

ゲームAIは多種多様なゲームで利用されている。最も明らかな利用例はゲーム内のNPCの制御だが、今ではスクリプティングが最も一般的な制御方法となっている。経路探索でもAIはよく利用されており、リアルタイムストラテジーゲームでよく見られる。経路探索とは、NPCがマップ上のある地点から別の地点へと移動する経路を求めることで、地形や障害物、さらに時には「戦場の霧」を考慮する。経路探索をさらに発展させたナビゲーションもゲームAIのサブフィールドであり、NPCにその環境内で誘導する機能を与え、他者との衝突を避けつつターゲットまでの経路を探させたり、他者と協調させたりする。ゲームの難易度をプレーヤーの技量に基づいてリアルタイムに調整する動的ゲーム難易度調整もゲームAIを利用することがある。

最近では創発的AIの概念もゲームに利用されており、「ブラック&ホワイト」、「nintendogs」、たまごっちなどの玩具がある。これらのゲーム内の「ペット」は、プレーヤーのアクションから「学習」し、行動を更新していく。実際には選択肢はある範囲内に限定されているのだが、プレーヤーに対して知的存在の幻影をある程度与えることができる。

2.1. 戦闘AI
---------

多くのゲームは何らかの戦闘を含んでいる。ゲームAIは、戦闘における敵の振る舞いをより人間的にするのに役立つ。

近年のゲームAIで最も効果的な機能として「狩り」の能力がある。本来AIは白か黒かというような明確な反応を示す。プレーヤーがいる場所の設定に従い、AIは攻撃または防御のどちらかの行動をとる。近年これに「ハンティング」という考え方が導入された。「ハンティング」状態では、AIはキャラクターの立てる音や足跡といった具体的なマーカーを探す。それによってプレイの形態がより複雑になった。AIが「狩り」の能力を備えたことで、敵への接近や回避の方法に頭を使う必要が出てきた。この機能は特にステルスゲームでよく見られる。

もう1つのゲームAIにおける近年の発展として、「生存本能」の開発がある。ゲームAIが操るキャラクターは環境内の各種オブジェクトを認識し、それが自身の生存に有益か有害かを判断できる。プレーヤーと同様、AIは銃撃戦で武器のリロードや手榴弾を投げる際などに無防備にならないよう遮蔽物を探すことができる。反応のしかたを設定するマーカーが存在する場合もある。例えば、AIが操るキャラクターの健康状態をチェックするコマンドが存在する場合、パーセンテージで表された健康状態によって反応を設定する。健康があるしきい値より低いとき、AIはキャラクターがプレーヤーから逃げるよう設定したりする。また、弾切れになったときは遮蔽物に隠れてリロードなどをする。このような振る舞いによってAIの操るキャラクターがより人間味を増す。この分野にはまだ改良の余地がある。AIは様々な状況に対応しなければならず、プレーヤーを驚かすほどの能力を示すのはまだ先のことである。

戦闘AIのもう1つの副作用は、AIが操るキャラクター同士が遭遇した際に見られる。id Software のゲーム //DOOM// でそのような状況が一般化し 'monster infighting' と呼ばれた。//DOOM// の攻略本では、'monster infighting' を利用して敵同士を戦わせ、生き残る方法なども紹介されていた。

3. チート
------

ビデオゲームにおける人工知能の文脈では、チートとは、ある状況でプレーヤーが得られない情報をNPCについてはアクセス可能としていることを指す。例えば、NPCがプレーヤーが近くにいるかを知りたい場合、人間と同様の知覚を操って知る方式もあるが、単にゲームエンジンにプレーヤーの位置を問い合わせることで知る方式になっている場合もある。AIにおけるチートは、その人工的に達成された知能に限界があることを示している。一般に戦略的創造性が重要なゲームでは、このような有利さをAIに与えておかないと最小限の試行錯誤で人間が容易に勝ってしまう。また、性能上の問題からチートを実装していることが多く、プレーヤーから見てその効果があからさまでない限りは許容されている。AIだけに与えられる特権のみをチートと呼び、コンピュータが本質的に持つ高速性と正確性はチートとは呼ばないが、一方でプレーヤーから見てコンピュータ固有の利点がNPCの人間離れした動きを生じているなら、それらも含めて「チート」と呼ぶこともある。

4. 脚注
-----

5. 参考文献
-------

Bourg; Seemann . //AI for Game Developers//. O'Reilly & Associates. ISBN 0-596-00555-5.
Buckland . //AI Techniques for Game Programming//. Muska & Lipman. ISBN 1-931841-08-X.
Buckland . [1]. Wordware Publishing. ISBN 1-55622-078-2.
Champandard . //AI Game Development//. New Riders. ISBN 1-59273-004-3.
Funge . //AI for Animation and Games: A Cognitive Modeling Approach//. A K Peters. ISBN 1-56881-103-9.
Funge . [2]. A K Peters. ISBN 1-56881-208-6.
Millington . [3]. Morgan Kaufmann. ISBN 0-12-497782-0.
Smed and Hakonen . [4]. John Wiley & Sons. ISBN 0-470-01812-7.

6. 関連項目
-------

コンピュータチェス
ボット 
コンピュータ囲碁
シミュレーテッドリアリティ

7. 外部リンク
--------

[5]
[6] on aiwisdom.com
[7]date=2020年9月}} on AiGameDev.com
[8]date=2020年9月}} at GameDev.net