基本読書

基本的に読書のこととか書く日記ブログです。

ゲームAIの基礎がこの一冊に集約されている!──『ゲームAI技術入門──広大な人工知能の世界を体系的に学ぶ』

本書はゲームAIの研究と開発の最前線で戦い続けている三宅陽一郎さんの「ゲームAI技術入門」である。三宅さんはこれまで何冊も本を書かれていて、入門編的な意味だと昨年出た『高校生のための ゲームで考える人工知能』も素晴らしいんだけど、本書(ゲームAI技術入門)は技術評論社から出ているだけあって専門的にアルゴリズムを紹介・説明していて、しっかり理解したいならまずはこちらをオススメしたい。

とはいえ、ガチのゲームプログラマ向けというわけでもなく、本文中にほとんどコードは出てこないし、基本的にアルゴリズムの概念の説明に終始しているので、「ゲーム好き/ゲームAIに興味があるけどプログラムとか書いたことない」とかそういう人でもまったく問題なく理解することができるだろう。そもそも「ゲームAIってなに?」と思う人もいるかもしれないが、現代のゲームAIの範疇は広がり続けていて、ゲームを少しでもやる人ならば興味を持たないのはむしろ難しいぐらいだといえる。

わかりやすいのは対戦相手になってくれたり味方になってくれるNPCだろうが、他にもたとえばフィールド/ダンジョンの自動生成、物語をコントロールするメタAI、難易度自動調整、AIによる膨大なステージの品質保証など多岐に渡る。わりとWebの開発現場でも一般的になりつつある機械学習や遺伝的アルゴリズムが、こんな風にゲームの開発に役立てられているんだなと特に(自動での品質保証のあたりとか)終盤は驚きっぱなしであった。訳注が多いのも特徴的で、しかもほとんどはネット上で参照できるものであることからそれで詳細を把握して広がっていくこともできる。

端的にいって、非常にオススメでございます。では以下紹介してみよう。

『The Last of Us』について

ゲームAIには大きく分けて「ゲーム中のAI」と「ゲーム外」のAIがある。そう難しい概念ではなく、前者はゲーム中に出てくるAI(NPCとか)のことで、後者はデータの自動生成や自動でのバランス調整を行ったりする「ゲーム開発者のためのAI」ということになる。ほとんどの人にとって身近なのはゲーム中のAIになるだろうが、そうはいっても、その表現がどのように実現されているのかまでは知らない人が多いだろう。

たとえば、『The Last of Us』というゲームは、謎のウィルスによって大半の人間が死滅した終末のアメリカで、一人の少女とおっさんがとある目的のために旅をしていくのだけれども、このゲームにはいわゆる敵の目をかいくぐって突破するステルス的な要素がある。ステルスということはつまり敵から隠れながら進んでいくわけだが、はたして敵はどのようにプレイヤーを感知し、ルートを巡回するのだろうか?

このルート巡回に関して、『The Last of Us』がとっている手法が面白くて、ここでは存在確率マップと呼ばれる技術が用いられている。これは、まずマップ全体を俯瞰的にみて、キャラクタの大きさのマスごとに分割する。そのマスは一つずつ固有の状態を持っていて、まず岩屋地形のオブジェクトがある/ないの2パターンがある。

ない場合はキャラクタが存在し得るので、そこには今度は0から1の敵の存在確率を示す数値が振られることになる。巡回する兵士は周囲を確認しながら(通常扇形の視野で、目の位置からレイを飛ばし見える/見えないの判定を行う)進んでいくわけだが、その時に「兵士が見て主人公の不在を確認したマスの存在確率はゼロになる」。

つまり、誰も見ていないマスの敵の存在確率はどんどん上がっていって、兵士が見に行く可能性は高くなる。確かにこれなら単純な設計で効果的な巡回パターンを構築できるのでこれを読んだときは「頭いいなあ」と素直に関心してしまった。

メタAIについて

とまあ、こんな感じで基本的に実例を上げながらゲーム中のAIといったものを体系的に網羅していってくれる。体系的なので部分的に紹介するのが難しいので、ついでにおもしろかったところをピックアップすると、プレイヤーを楽しませるための「メタAI」という概念がある。通常のAIはプレイヤーの味方や敵となって楽しませてくれるわけだが、メタAIはユーザーの能力に応じて敵を強くしたり弱くしたり、「ゲームのペース」をコントロールすることでプレイヤーを楽しませてくれるための存在だ。

この概念が取り入れられているゲームは数多くあるが、一例をあげると『Left 4 Dead』に採用されるAI Directorがいい。Lef4はプレイヤーが銃を持ってマップを進んでいくと凄まじい勢いでゾンビが襲ってきてそれを撃ち殺していくタイプのゲームだが、AI Directorはプレイヤーのスキルからゾンビの出現数を調整しているのだ。

それも出現数Nはスキルから決定されるだけでなく、予想されるプレイヤーの逃走経路の長さと要求される密度によって計算され、出現ポイントも変更されるので体験はプレイごとに異なる。それを可能にするためには精確にメタAIが地理を把握してないといけないんじゃないの、と疑問が沸いてくるのだけど、地理についてはナビゲーションマップ技術を通じてAIは理解していて──と、ゲームAIには目的を実現する、「世界を表現するための」無数のアルゴリズムが作用していることがよくわかる。

ちなみにこのLeft4の件で一番驚いたのは、このゲームの開発中、テスターは人間の脳波や視線トラッキング、手の発汗量や脈拍などの生体データを観測して、そこから緊張しているか/リラックスしているかなどのリアルな情報を得ていたということ。Biofeed in Gameplayという題で2011年に発表済みの内容で、もう8年も前にそんなことやってたんだなあと心底たまげてしまった。
www.gdcvault.com

ゲーム外のAIについて

加えて感銘を受けたのはゲーム外のAIについて。特にゲームの品質保証のためのAIが凄くて、たとえば『Candy Crash』では千を超えるマップを作る必要があり、それらがゲームデザインにあっているかを確認するために、AIにゲームをプレイさせているのだという。『遺伝的アルゴリズムによってニューラルネットのトポロジーを進化させる「ニューロエボリューション」を用いて、モンテカルロ木探索(MCTS)のプレイアウトを改良し、効率良く一つ一つのレベルをクリアしていきます。』

はあ、そんな手法があったとはなあという感じだ。『Horizon Zero Dawn』ではゲームを自動的にプレイして負荷を計測し、ヒートマップの形でビジュアリゼーションされる自動プレイシステムがあるそうだし、『逆転オセロニア』では膨大なキャラクター間の組み合わせで強すぎる組み合わせが存在しないかどうか強化学習によるゲームシミュレータで確認したり、ゲームの世界で強化学習や深層学習(も別のゲームではチート検知などに使われている)、遺伝的アルゴリズムが使われているんやなあ。

おわりに

そうした品質保証が必要とされてきた背景には、そもそもゲーム自体が巨大化・複雑化してきたという背景があり、ゲームの巨大化とその品質をいかに担保するのかという技術は、共に発展していかなければならない両輪なのだろう。ゲーム好きではなく、広くAI技術について興味のある人にオススメしたい一冊である。もうちょっと優しいほうが……という方には下記がいいでっせ。

高校生のための ゲームで考える人工知能 (ちくまプリマー新書)

高校生のための ゲームで考える人工知能 (ちくまプリマー新書)