デジタルゲームAIの歴史(1)(人との機械のインタラクションの知能化)

人工知能技術 機械学習技術 自然言語処理技術 人工知能アルゴリズム ICT技術 デジタルトランスフォーメーション 人工生命 推論技術 知識工学 本ブログのナビ オートマトンと状態遷移と自動計画
デジタルゲームAIの歴史(1)(人との機械のインタラクションの知能化)

「人と機械」のインタラクションの知能化はゲームの世界で昔から行われている。今回はそれらを考えるためのベースとしてまずその歴史をデジタルゲームの教科書 知っておくべきゲーム業界最新トレンド」からピックアップしてまとめてみた。

内容としては以下のようになる

  1. デジタルゲームAIの歴史(1) (本稿) 反射型AI、FSM、GA、BT
  2. デジタルゲームAIの歴史(2) 自律型エージェント、C4、階層型FSM
  3. デジタルゲームAIの基本技術(空間認識) 知識表現
  4. デジタルゲームAIの基本技術(時間認織) 過去記憶、未来(プランニング)
  5. Behavior Tree(動作ツリー) 概要

まず初期(1970年代〜1980年代)のデジタルゲームでは、AIとは「ゲームステージの仕組みの一部」でしかなかった。これは例えば1978年に登場した「スペースインベーダー」では、インベーダーというAIが、プレイヤーの動きに関係なく、決められたタイミングで、決められた動きをして降下してくるというものとなる。つまり、初期のデジタルゲームではプレイヤーが行っていたものは、「敵のパターンを読み取って攻撃して倒す」ことになる。

次の世代のAIは「反射型」となる。反射型AIとは、環境やキャラクターのアクションに応じた動きをするAIのことで、プレイヤーが近づけば遠ざかり、剣を振りかざせば盾でガードとするといった決まった対応の重ね合わせとなる。対応を増やせば増やすほどAIの動きは複雑になる。(単純反応エージェント)ここで、プレイヤーが行う戦略は「AIの複数の動作パターンを学習して倒すこと」になる。

この時期(1980年代)に同時に行われていたのが、タスクによってゲーム内イベントを制御する「タスクシステム」となる。これは、AIの制御み、各オブジェクトの移動制御や破壊制御も、各フレーム単位のタスクとしてタスクシステムの中で処理されるものでナムコが開発していたタスクシステムが著名なものとなる。

次の世代で行われていたものが「構造化AI」と呼ばれるものとなる。AIを外部から情報を入力(インプット)して、内部で判断し、行動を紡ぎ出す(アウトプット)する主体だとする。1990年代のゲームはゲーム全体の3D化であり、その結果として入力情報と出力情報の複雑さが指数的に増加してきた。これに対応するため内部の処理が単純な反射的なアルゴリズムから複雑なアルゴリズムへ変化しなければならなくなり、同時期の開発環境において高級言語(主にC言語)が主流になってきたのと合間って様々な複雑なAIアルゴリズムが実装されるようになった。

それらのアルゴリズムの一つが「有限状態機械(Finite State Machine:FSM)」で、これは複数の状態と、その状態感の遷移条件を定義して、条件で切り替えるもので、これを用いてAIの制御や思考に取り入れる手法が多く用いられた。特に有限状態の一部がループになっているものをサイクリックなFSMと呼び、FPS(First Person Shooter:一人称のシューティング)において多く使われるようになった。(例 Quake, Halo, No one Lives Forever)

これに対して循環遷移経路を持たない1方向だけのFSMを方向づけられた(Directed Acyclic Graph DAG)FSMと呼びこれを用いて階層的に構築された階層型FSM(Hierarchical FSM:HFSM)も使われるようになった。

Haloで用いられたHFSM

これは状態の複雑さを階層で解決すると言うアプローチで、特に状態が振る舞いの場合は振る舞いツリー(Behavior Tree)とも呼ばれた。FSMは状態と遷移を付け加える事で拡張が可能で、これまでのゲームに比べてスケーラビリティは大幅に改善した。FSMには多くのGUIツールが準備されていた。

アルゴリズムのもう一つの観点に学習があるが、ゲームに組み込まれた学習のツールはそれほど多くない。その中の一つが「遺伝的アルゴリズム(Genetic Algorithm:GA)」となる。遺伝的アルゴリズムは、ある一群のAIの一つの方向に統計的に進化させる手法で、具体的には(1)各AIに遺伝子(GEN)として、属性と行動をカスタマイズするパラメータを付与する(例えば体力、攻撃力の属性パラメータ、攻撃ヒット率や逃げやすさ等)(2)全てのAIほゲーム世界に放り込み、実際に行動させる(シミュレーション。一定時間後AIを取り出し、それぞれ評価点を計算する。(3)AIの評価点を基準として、より優秀なAIのパラメータを掛け合わせ次の世代のAIを作る。となる。

数は少ないがニューラルネットワーク(Neural Neywork)を使ったAIも用いられたり、以前的アルゴリズムと組み合わせたNEAT(Neuro Evolving of Augmenting Topology)と呼ばれるアルゴリズムも用いられる。さらに高度なアルゴリズムとしては強化学習(Reinforcement Learning)を用いたものもある。これはAIが環境への行為を為し、そこから受ける利得(報酬)を通じて、徐々に学習していく手法で、例えばMITラボのC4アーキテクチャ(C4アーキテクチャに関しては次回述べる予定)が実装されたバーチャル剣(duncan)がそれに当たる。

次回は最後の世代(00年度以降)に現れた自律型エージェントについて述べたいと思う。

コメント

  1. […] 前回述べた続きで、今回は最後の世代(00年度以降)に現れた自律型エージェントについて述べたいと思う。 […]

  2. […] デジタルゲームAIの歴史(1)(人との機械のインタラクションの知能化) […]

  3. […] “デジタルゲームAIの歴史(1)(人との機械のインタラクションの知能化)“等で述べているようにゲーム内のキャラクターや敵キャラクターの行動を制御するためにAIが使用されてお […]

タイトルとURLをコピーしました