« おもしろメディア学 第21話 長く見えたり短く見えたり? | トップページ | 日本語を話すことの出来ない子供との相互行為 »

おもしろメディア学第22話 ゲームキャラクタの知能(AI)

2014年8月14日 (木) 投稿者: インタラクティブメディアコース

メディア学部では、ゲーム制作に関する研究を多く行っています。「ゲームの研究」で最も主流なのはグラフィックス分野になりますが、美しいCGを演出することに匹敵する重要なこととして「知能の実現」があります。格闘ゲームの敵キャラクタの動きや、RPGにおける街の人々や動物達の動きなど、ゲームの中には数多くの人工知能(AI, Artificial Intelligence)が動作しています。
ゲームでは、ほとんどの場合なんらかの知性を持つ「敵」に相当するものが存在しており、そのため人工知能の実現は「宿命」と言えます。1978年に登場した「スペースインベーダー」というゲームがあります。ビデオゲームとしては最初期に当たるものです。このゲームではインベーダー達が隊列を組ん地球に降りてくるのですが、このインベーダー達の動きも一つの「人工知能」と言えます。しかし、実際にプレイしてみるとこのインベーダー達に知能が備わっているようには思えません。それは、このインベーダーの動きに対して、プレイヤーは
  1. 法則性が容易に理解できる。
  2. ひたすらランダムに攻撃するだけで、こちら側を狙った攻撃を行ってこない。
ということを感じるからです。一方、そのすぐ後の1979年に登場した「ギャラクシアン」というゲームでは、敵の動きも放物線を取り入れた複雑なものになり、さらに自機を狙って弾を発射してきます。こうなると、かなり知能があるように感じられるようになります。
「人工知能」と言うと非常に複雑で難解なもののように感じられてしまうかもしれませんが、実際のところは「ひたすら敵を追いかける」や「敵が近づいたら弾を発射する」といったような、かなり単純なものも多く存在しています。むしろ、ゲームの中で用いられている人工知能はこのような単純な法則を組み合わせてできている物が多いのです。例えば、魚・鳥や動物の群れを表現するために、「boidアルゴリズム」と呼ばれる手法がよく用いられます。これによりそれなりにリアルな群れの動きを表すことができるのですが、この手法は以下の3つの法則を各個体に持たせているだけです。
  • 分離: 他の個体と一定の距離より近づかないようにする。
  • 整列: 周囲の個体が向いている方向と同じ方を向く。
  • 結合: 群れの中心に向かおうとする。
この3つの法則を各個体が行うと、不思議なことに全体として複雑な群れ行動をなすわけです。言われてみると、人が大勢いるけど自分がどこに行けばいいかわからないとき、自分がこの3つの法則に沿って動いているように思えませんか?以下の2つの画像は、boidアルゴリズムに生物固有の法則をさらに加え、それぞれマイワシやニホンミツバチの群れ行動を実現したものです。

Zmovie

Hachi2

一方、最近のゲームAI研究では、なんらかの目的に対し、どのようにそれを動きとして実現するのかということを求めることが主流となっています。例えば、「高さ3メートルのリンゴの木の実を取る」という目的を持ったとします。しかし、それを行う動物が鳥なのか、猫なのか、あるいは人間なのかによって実際に取る行動はかわってきます。また、人間である場合も、どのような道具を用いることができるのかによってかわってきますね。棒があればそれを使うことができますが、道具が何もなければ登って取るしかありません。近年の研究では、こういったことを幾つかのレイヤー(層)に分けて処理します。例えば先ほどの例では
  • 目的レイヤー 「リンゴの実を取る」
  • 手段レイヤー 「木の近くまで歩いて、棒を使って取る」
  • 動作レイヤー 「足や手をどのタイミングでどのように動かすか」
といったように、大きな目的から徐々に具体的な動作を決めていきます。こうすることによって、異なるエージェント(鳥や猫や動物)であっても、同一の目的によって処理することが可能となります。
ゲームAIは、最初に述べたように歴史自体は古いのですが、まだまだ学問的には未整備な部分が多く、これから発展していく分野と言えます。みなさんも、より魅力的な知能をコンピュータの中で実現することを、一緒に取り組んでみませんか?
(執筆者: 渡辺大地)

おもしろメディア学」カテゴリの記事

« おもしろメディア学 第21話 長く見えたり短く見えたり? | トップページ | 日本語を話すことの出来ない子供との相互行為 »