作者: 三宅 陽一郎 出版社/メーカー: 技術評論社 発売日: 2019/09/30 メディア: 単行本 Amazon Kindle

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

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

わかりやすいのは対戦相手になってくれたり味方になってくれるＮＰＣだろうが、他にもたとえばフィールド／ダンジョンの自動生成、物語をコントロールするメタ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