21世紀に“洋ゲー”でゲームAIが遂げた驚異の進化史。その「敗戦」から日本のゲーム業界が再び立ち上がるには?【AI開発者・三宅陽一郎氏インタビュー】

1

2

3

4

ゲームAI史――2.3Dゲームで「ナビゲーションAI」が登場

――ここからが21世紀の海外における「ゲームAI史」の大進化の幕開けですね……。具体的には、いつが画期だったのでしょうか。 

三宅氏:
 2000年の『Counter-Strike』(2000・Valve Software/米国)【※】の登場がエポックでした。 

※Counter-Strike……もともとは『Half-Life』のアドオンとして、1999年にValve Softwareからβ版がリリースされたFPS。ちなみに、前述の『DOOM』をWindowsに移植したチームがMicrosoftから独立して1996年に設立した会社がValve Softwareで、『Half-Life』を開発している。
(画像は公式Steamより)

――『Counter-Strike』って、対戦ゲームとして人気だったイメージなのですが、AIでも画期的だったのですか。

三宅氏:
 ええ。「ナビゲーション・メッシュ」と「A*アルゴリズム」という現在のキャラクターのパス検索の典型を示したのがこのゲームです。ただ、この時期のAI開発の動きが、同時多発的な現象でもあったのも見逃せません。 

 一応、その前からの流れを話しますね。先ほども言ったように、PlayStation登場後の1994年からの6年間は、ほぼファミコンの発想で3Dゲームはデザインされてきました。だから、当時のゲームはキャラが「動かない」か「動かそうとして失敗する」、あるいはキャラが「一つの場所に閉じ込められた」か「障害物の少ない空間にいる」ようなゲームがほとんどです。
 というのは、3D空間で賢そうにキャラクターを動かすのは、案外と難しいんです。理由は、AIが処理すべき情報が2Dに比べていきなり複雑になるからです。2Dだったら単純だった問題が、3Dでは途端に難しくなるんですね。その問題は、単に次元が一つ増えたというだけに留まりません。
 例えば、ファミコンやスーパーファミコンの時代には、よくキャラクターがマップの端っこに引っかかっている現象がありましたよね? 

――敵がハマってる光景ですよね。

三宅氏:
 あれは当時のAIが、ゲームデザイナーでも書ける簡易スクリプト言語で動く、主体性のない「操り人形」でしかなかったからです。もし、敵キャラが自分の置かれている光景を認識できるだけの「知能」があれば、そうはなりません。 

 ただ、まだそれでも2Dの頃は、ゲームデザイナーがゲーム画面を俯瞰的に見て、それぞれのキャラクターが果たすべき役割をいくつかのロジックの組み合わせで作ることができました。プレイヤーが直線上に来たら近付くとか、部屋の中の複数のポイントを指定して巡回させるなど、です。

――当時のゲームの敵キャラは、本当にそんなイメージですね。

三宅氏:
 ただ、スクリプトでは大抵、プレイヤーや敵に向かって直進する指示ぐらいしか書けませんでしたので、80年代のゲームキャラクターはよく壁に引っかかっていました。せいぜい壁際に沿って歩く、という処理で対応していたくらいです。 

 ところが、この問題が3Dの大型ゲームの開発では、本格的に噴出してくるんです。というのも2Dゲームと違って、3Dはその場の光景全体を見渡す「俯瞰」の視点を持つのが困難だったからです。2Dでは多少の高低差や落とし穴があっても、スクリプトで「ジャンプしろ」と書けば制御できますよね。でも、3Dとなると平面のマップ内に高低差はいくらでもあるし、「壁」や「岩」のような障害物も沢山ある。そうなると、人力でスクリプトを全て書く労力の限界がやって来ます。
 その結果、キャラクターが直線移動しては壁にぶつかるのを繰り返すような、酷い状態になっていきました。これが結局、日本では2005年近くまで続くことになります。 

――言わば、3D化で人間が敵キャラの挙動を統括しきれなくなって、デフォで敵がハマってる状態になってしまった感じですね。 

三宅氏:
 それでも日本のゲームデザイナーたちは、なんとか「職人技」で回避していこうとしたのですが、その頃、欧米ではテクノロジーによる解決策を探る流れが生まれていました。 

 そもそも90年代の初期~中期から、米国では各社の人間が技術書を出したり、GDC【※】という情報共有の場を作ったり、あるいはインターネットのフォーラムで議論したりして、どんどんノウハウの共有を進めていく流れが生まれています。そういう流れで登場した一冊に、『Game Programming Gems』(2000・Charles River Media; Book & CD edition)という技術書がありました。

※GDC
Game Developers Conferenceの略。毎年数万人を動員する大規模なゲームイベント。1988年、ゲームデザイナー、ゲーム関連書籍の執筆者であるクリス・クロフォード氏が自宅のリビングルームのリビングルームにゲームデザイナーを集めて行われた会合から始まった。

『Game Programming Gems』:「日本では2001年に翻訳された、どこのゲーム会社にもある非常に有名な技術書です。また、後にオライリー出版から「実例によるゲームAIプログラミング」(マット・バックランド)として翻訳が出される『Programming Game AI by Example』も素晴らしい教科書でした。これも大きな影響を与えています」(三宅氏)

 その本の第一巻で「パス検索というものがあるんだぜ」と紹介されていたのがキッカケで、この技術が徐々に普及していくんです。人工知能は第三章ですが、ほとんどがパス検索の解説に費やされています。

――3DのCG技術でもよく言われる話ですが、日本に職人技で「してやられている」間に、どんどんアメリカはそうやってノウハウ共有して科学的に研究開発を進めていたんですよね。では、「パス検索」とはどういう技術なのですか? 

三宅氏:
 端的に言えば、ゲーム内の位置情報を取得してキャラクターをナビゲートするための手法です。「ナビゲーションAI」と呼ばれることもあって、AIの一種です。と言っても、当時はプログラムで2点間を指定して最短経路を導き出すだけのものです。ここの2点間の経路をつなぐ赤い線が検索結果で、その最短距離に沿ってキャラが移動していくだけです。

 ちなみに、このプログラムの基本部分は、数十行ぐらいで簡単に書けるものです。手間としては、どちらかというとナビゲーション・データを作る方が、手動にしろ自動にしろコストがかかるくらいです。でも、これによって障害物をキャラクターが認識できるようになったのは非常に大きかったです。

 ちょっと以下の動画を見てみましょうか。例えば、このキャラクターはかなり長い距離を走っていて、地形を認識しているように見えますよね。でも、実際には単に地形のデータを与えて「パス検索」をしているだけです。

※動画は『Dragon Age』というゲームで、パス検索によってキャラが走る様子を示すテスト動画。人の間をスルリとすり抜けていくのがわかる。
 「『Dragon Age:The origin』(Bioware,2009)のパス検索システムはアルバータ大学のGAMES GROUPが開発しました。アルバータ大学のGAMES GROUPは、プロを打ち負かしたIBMのチェスAI『DeepBlue』の開発者を輩出するなど古くからのゲームAIの名門です」(三宅氏)

――おお! 読者の人も見てみればわかりますが、めっちゃ最短距離でずーっと走ってますね。なるほど……冷静に考えると、FPSだとかの多くのゲームでの敵キャラって、こっちを殺そうと最短距離で向かってきちゃえば、そのままそのシチュエーションでの「知能」を持った行動なんですね。

三宅氏:
 そういうことですね。これを大々的に導入したエポックが、先ほどから出ている2000年の『Counter-Strike』でした。

『Counter-Strike』のゲーム画面のマップ上に、ナビゲーションメッシュの形を重ねている。
(画像はThe Official Counter-Strike Botより)

 ちなみに、この最短経路の計算自体は、グラフ理論で1960年代にはあった技術です。アメリカで電話交換網を広げていく際に、電信の最短距離を計算する過程で使われました。これ自体は、ダイクストラ法やA*法と言って、情報科学を専攻している学生が誰でも学ぶ技術ではあるのですが。

 ただ、グラフ理論はまさに電話交換機のような「点と点」を繋ぐ「離散空間」での議論なんです。でも、ゲームの中の世界は現実と同じ「連続空間」でしょう。そこでゲーム内の空間を四角いメッシュで囲って、その各中心にある点の連結データを取ることで、無理矢理に「連続空間」を「離散空間」と見なしているんです。これもロボット技術の分野では60年代からあったのですが、ゲームに持ち込む発想がなかなか出てこなかったんですね。2000年当時でも、3D空間でのパス検索技術はかなり珍しいものでした。 

――なるほど。技術的な概要はつかめたのですが、結局ここで起きた発想の転換って、本質的にはどんなものだったのでしょうか?

三宅氏:
 「ユーザーが見ているゲーム画面」と「ゲーム内のキャラクターが見ている光景」は違うということですね。3Dになって情報量が圧倒的に増えて、ゲームデザイナーがゲーム画面を統御できなくなったとき、キャラクターにそのキャラクター自身から見た周囲の状況を認識する「知能」を与えないと、どうにもゲームを上手く作れなくなる。「パス検索」のようなナビゲーションAIは、いわばその大前提となる技術です。

――ゲーム史の中で「2Dから3Dへ」で大きな転換点があったのは有名です。率直に言えば、日本のゲーム業界が「敗北」していく転換点でもあったと思います。でも、その変化というのは欧米では、単に表面的なビジュアルの変化だけじゃなくて、キャラクターや世界観を動かすAIの技術とセットだったわけですか。 

三宅氏:
 実際、この「キャラクターがマップ内で引っかかる」という問題の解決は、ちっとも小さい話ではないのです。

 なぜなら、こうやって現実に移動できなければ、いくら頭脳が賢くても目的地にはたどり着けないですから。パス検索は一つのエリアにとらわれていたキャラクターを解放したんです。ただ、自由と引き換えに、ゲームのキャラクターは、より高度に周囲を認識し、行動を決定する必要に迫られるようになりました。その意味で、やはり歴史的な転換点ではあって、ここからAIはどんどん発展していくことになりました。

AIは空間の自由を獲得して、自律し始めた

――ちょっと思いだしたのが、東大で人工知能研究をしている松尾豊特任准教授が、ディープラーニングによる画像認識の発展でAIに「眼の誕生」が起きたと話していたことです。カンブリア紀に生物が眼を獲得して一気に生存戦略が多様化して進化が加速したように、周囲の環境を認識する能力が上がるとAIの可能性が広がるというんですね。 

三宅氏:
 ゲームAIの場合は、「パス検索」の結果として、ゲーム内キャラクターの「場所からの解放」が起きたと言えます。ゲームデザイナーのスクリプトで「お化け屋敷」に閉じ込められていたキャラクターが、まさにパス検索でマップの状況を認識できるようになり、原理的にはどこまででも歩いて行けるようになったんですね。

 そうなると、ゲームデザインそのものも変化します。なにせどこへ行ってもいいからと言って、別に主人公の目の前にただ飛び出すのも芸がない。せっかくなら、色んなことをしたいわけです。するとAIの思考をもっと賢くする必要が出て、ゲーム内でのもっと長期的なスパンでの判断を下すことを求められていきました。

――なるほど。なんかホントに人間みたいな話になってきました(笑)。

三宅氏:
 つまり、場所からの解放は、時間の解放にも繋がったわけです。移動が自由になると言うことは、思考においても長時間のプランを作る能力を要求するようになるんです。こうなると、もはやキャラクターはお化け屋敷のお化けではありません。そこでは、より高度な思考――言わばマップの上を動き回る自由に伴う「責任」を必要とされるんです。

――環境の認識が可能になると、自然と次のステップとして「判断」が求められ始めるというのは、なんだか哲学的ですね……(笑)。

三宅氏:
 AI用語では、こういうAIを「自律型エージェント」と呼んでいて、まさにこの時期の2000年にゲーム業界に登場します。
 これは「情報を自分で得て、自分で行動することができるAI」なんですが、その大前提にナビゲーションAIのような技術があります。というのも、AIは人間や動物のように、環境を自分自身で認識できなくて、AIのためにデータ加工された状態でないと情報が取得できないんです。これは人工知能一般の難しい問題で、何らかの解釈の方法――これを「知識表現」と言います――を人間がAIに与えてあげる必要があるわけです。

図 それぞれのゲームにおけるAIが地形把握するためのヒントデータ(知識表現、世界表現)

――著作の中で、白い円形のCGを見て人間は「ボール」と認識できるけど、AIが「ボール」を存在していると思うためには、ボールにタグを付けるのが必要だという話をされていましたよね。なんだか、哲学史の「存在論」と「認識論」の対立みたいな話になってきましたが(笑)、要は人間なら「お前が自分で判断しとけよ!」みたいなことまで、あらかじめ環境の側に書き込んでおく必要があるんですね。

三宅氏:
 そういうことです。そして、その前提のもとでゲーム内の世界とキャラクターを繋ぐのが「エージェント・アーキテクチャ」【※】という考え方です。その中でも、認識、意思決定、運動生成、記憶の部分をモジュール化(部品化)したアーキテクチャを「C4アーキテクチャ」と呼んでいて、とてもゲームAIでは重要です。

※エージェント・アーキテクチャ……ここで言う“エージェント”とは、周囲の環境を認識して振る舞う、自律型のエージェントを指す。エージェントはつぎの自分の取るべき行動に対して判断を下し、人格のように振る舞うプログラム上の概念として考えるといい。この技術を取り入れたプログラム構造(アーキテクチャ)がエージェント・アーキテクチャとなる。

 やはり、これも元々はロボット開発の考え方です。MITメディアラボの『Synthetic Creature Group』で、仮想空間の中に本物のオオカミを作るプロジェクが行われた際に登場したと言われています。センサーを作って環境を認識させて、位置を決定して、行動も決定して、さらに記憶や身体状態も定義する――そんな一連の能力を持つアーキテクチャを作るんですね。そして、このプロジェクトに参加していた人間から、あの『Halo2』【※】のAIのプログラマー・Damian Isla(ダミアン・イスラ)が出てくるんです。あのゲームって、キャラクターがしっかりしていて、動きにリアリティーがあったでしょう。MITのメディアラボは競争の厳しいラボですので、このグループは既にありませんが、研究成果がサイトで残っています

※Halo2
Microsoftの傘下だったバンジーによるFPS。1作目『Halo: Combat Evolved』は2001年のリリース。ストーリーでは人類とコヴナントと呼ばれる異星人連合、フラッドなる寄生生物の三つ巴が軸となり、それぞれの陣営の兵士が倒されたときなどに、仲間が駆け寄ったり、憤りを見せたりする様子が観察できる。バンジーはその後に独立。「Halo」シリーズから離れ、『Destiny』を制作した。

――確かに、当時『Halo2』は凄かったですね。仲間が死ぬと近くに行って、泣いたりしていました。 

三宅氏:
 ああ……あれはただの演出ですけどね(笑)。最初は「感情」を実装しようとしたのですが、プレイヤーが「キャラクターが怒っている」と思ってくれたらそれでいいと判断して、AIの意思決定に感情の要素を入れるのは諦めたと、講演で話していました。
 ただ、そんなことはありつつも、『Halo』はロボティクスとAIの技術動向を本格的にゲームに取り入れて、3D空間を自由に動き回るアーキテクチャを最初に作った、非常に画期的なゲームではあるんです。しかも、『Halo』は「設計文書」を公開したんです。だから、みんな『Halo』の仕事を参考にして、その後の海外FPSのAIは作られているんです。

Haloのエージェント・アーキテクチャ図(画像左)と、Haloの意思決定(Decision Logic)の内部構造(ビヘイビアベース、ステートマシン、スクリプトの組み合わせ。画像右)
(参考:The Illusion of Intelligence Chris Butcher, Jaime Griesemer

 また、Damian Isla は『Halo3』のAI lead をつとめたあと Bungie から独立しますが、自身のサイトで講演資料を公開しています。これはまさに2000-2007年のゲームAIの歴史そのものと言ってもいいですね。【注】

――MITの研究成果が流用されたり、ノウハウの共有をどんどん行ったり、このアカデミズムとの結びつきの強さは北米の企業の強さですね。

【開発者向けの注】
特に、GDC 2001年で発表された、以下の2つの資料は現代のゲームAIの出発点として位置づけられます。ここで公開されたC4アーキテクチャは、これ以降のキャラクターの知能の内部構造の基礎となっていきます。(三宅氏)
(参考:R. Burke, D. Isla, M. Downie, Y. Ivanov, B. Blumberg: CreatureSmarts: The Art and Architecture of a VirtualBrain, GDC 2001Bruce Blumberg , Damian Isla, “Blackboard Architectures”, AI Game Programming Wisdom (Charles River Media) , 2002

ゲームAIの基本となる3つのAI

――ただ、お話を聞いていると、やはりこの「エージェント・アーキテクチャ」の設計思想が登場した辺りからAI開発の話が複雑になっていますね。ちょっと読者の皆さんも、だいぶヒイヒイ言い出した頃合いかなと思いますので……(笑)、少しAIの議論を整理していただいてもいいでしょうか。 

三宅氏:
 わかりました。基本的に、現代のゲームAIは3つあります。
 まず一つ目は「ナビゲーションAI」です。「パス検索」の技術なんかはこれに当たるものですね。それによって、レベルデザインとAIが分離して、キャラクターが場所から解き放たれて、自由に動けるようになるわけです。

三宅氏が作成した、3つのAIを示した図。
(出典:プレイヤーイラスト敵キャラクターイラスト

 そうすると、二つ目の「キャラクターAI」が登場してきます。初期はゲームデザイナーが「ここに岩があるから、こう移動しよう」と考えて指示を出していたのが、パス検索の登場で「キャラクターAI」自らが環境を認識できるようになり、『Halo』のような「エージェント・アーキテクチャ」に基づくAIがゲームに導入される。すると、あたかも知能を持っているかのような振る舞いが可能になってきます。 

 そこで今度は一通りじゃなくて、いろんなパターンを組み合わせようという話になるわけです。そこで台頭してくるのが、三つ目の「メタAI」ですね。これは、ゲームを俯瞰的に見て指示を出すAIで、プレイヤーが下手だなと思ったら敵を弱くしてあげたり、うまいなと思ったら敵の数を増やしたり、あるいは隠しボスを出したりするものです。先にも言ったように、欧米では 「AI Director」という名前で2008年に登場しますが、日本では「メタAI」という形で80年代から実装されていたアイデアです。

――まさに、最初の『Left 4 Dead』で登場したものですね。ただ、あれってTRPGのGMみたいなもので、結構複雑な判断が要りますよね。言うても「キャラクターAI」がそんなに高度な判断は下せない中で、「メタAI」の役割は結構大変なのではないかと思うんです。

三宅氏:
 というか、そこで出てきたのが「メタAI」なんです。
 メタAIそのものは、その起源は『パックマン』の作者である岩谷徹先生(当時 株式会社ナムコ、現・東京工芸大学教授、日本デジタルゲーム学会会長)が設計されて、文書にして社内で共有されていたのが最初と言われています。 

――また岩谷先生ですか! もはや未来には「ゲームAIの父」とでも呼ばれてそうですね(笑)。

『パックマン』の開発者・岩谷徹氏は、そもそもAI分野に限らず、ゲームの作り方について早い時期から体系化してきた人物。様々なゲームクリエイターに大きな影響を与えてきた。書影は、名著『パックマンのゲーム学入門』。『パックマンのゲーム学』( 2005・ KADOKAWA)
(画像は楽天市場より)

三宅氏:
 メタAIは『パックマン』にも導入されていると言われていて、実はあのゲームは「メタAI」の起源でもあります。ナムコは『ゼビウス』などのゲームで、プレイヤーの腕前に応じて難易度を調整するデータテーブルを入れていたという話もありますね。その意味で、昔からあったと言えばあるのですが、本格的な「メタAI」は、「キャラクターAI」の高度化に伴って台頭してきました。

岩谷徹氏「ファンと一般のユーザーを満足させる方法のひとつは人工知能AIのような考え方です。プレーヤースキルをプログラム側から判断して、難易度を調整していくというものです。これを私はセルフゲームコントロールシステムと呼んで10年以上前から開発に使っています」

 International Game Designers Panelrより引用

 キャラクターAIが各キャラクターの局所的な頭脳だとすれば、メタAIは上から彼らをコントロールします。要は戦闘シーンで、キャラクターAIがプレイヤーをボコボコにしすぎると、メタAIが「引け」と指令して、「あ、すいませんでした」みたいな感じで引きあげさせるんです(笑)。キャラクターAIは非常に短い時間軸で考えるのに対して、メタAIは大局的な視点から考えていくとも言えます。

――なるほど(笑)。でも、そう聞くとAIの歴史は、どんどん分化していく歴史ですね。まずはレベルデザインからAIが分離されて、その後はAIの中でもさらに「ナビゲーション→キャラクター→メタ」とレイヤーが分かれていく。大きくざっくりと言えば、そういう流れなわけですね。

キャラクターAIからメタAIへの分岐

――では、最後の分岐点として、「キャラクターAI」と「メタAI」の本格的な分化についてお聞きしたいです。

三宅氏:
 そうですね。まずは「キャラクターAI」の賢さが一線を越えたときの話をしましょう。
 『Halo』以降、「エージェント・アーキテクチャ」の発想の登場もあって、「AIの演者」を作っていく流れが大きくやってきました。同時に、3DCG技術の発展で、キャラクターの身体に関節も増えていきました。環境が複雑になるのも大変ですが、身体が複雑になるのはもっと大変です。この点は、今も苦しんでいるのですが……。
 そんな中で次に画期となったのは、2005年の『F.E.A.R.』【※】というゲームです。これはゲームAI業界では「10年に1度の革命」と言われるくらいの決定的な作品です。

※F.E.A.R.
正しくは『F.E.A.R. -First Encounter Assault Recon-』。Monolith Productionsによる、ホラーテイストのFPSシリーズ。1作目は2005年リリース。ミリタリーをベースにしているため、ホラーでありながら、人間どうしの戦いが描かれるのが特徴。最適の行動を取らせるために、敵AIにタスクプラニングの技術が導入され、いまもその優秀さはプレイヤーの語り草となっている。

 実はこのAIプログラマー(アドバイザー)のジェフ・オルキンという人物も、やはりMITメディアラボ出身者です。この『F.E.A.R.』が凄かったのは、自ら計画を立てて実行するAIを生み出したことですね。つまり、Aに対してB」という反応を返すだけでなく、そこから「Bの次はC、さらにD」と自分で連鎖的に計画を立てられるAIにしたのです。 

――それが出来るのなら、もはや相当に「人間の思考」に近づいているように思いますね……。

三宅氏:
 例えば、両端に糊がついた付せんを思い浮かべて下さい。そこには各々「タスク(=行動内容)」が真ん中に書かれていて、その両端に行動の「前提条件」と、そのタスクがもたらす「効果」が書かれています。まずこの3つのセットを一つの単位として考えて、仮にここでそれを「行動単位」と呼ぶことにします。そして、これがたくさんストックされている「行動プール」があるとします。

 まず「敵を倒す」のがゴールとします。「敵を倒す」を「効果」として持つ行動単位を行動プールから見つけ出します。その行動単位の前提が「武器を持っている」だとします。今度は「武器を持っている」という効果を持つ行動単位をプールから探して来ます。このようにこの「前提条件」「効果」をのり付けしていけば、どんどん行動単位を連鎖させられるわけです。これを「連鎖」(チェイニング)による「プランニング」と言います【注】

三宅氏が作成した『F.E.A.R.』のシンボルによる連鎖プランニングの図。
(参考資料はOrkin (2006), Three States and a Plan: The AI of F.E.A.R. Proceedings of the Game Developer’s Conference (GDC). 及びOrkin (2005), Agent Architecture Considerations for Real-Time Planning in Games. Proceedings of the Artificial Intelligence and Interactive Digital Entertainment Conference (AIIDE).

【開発者向けの注】
この方法はスタンフォード大学で70年代から開発されていたので、STRIPS(Stanford Research Institute Problem Solver)と呼ばれることもあります。通常、プランニングは工場の工程などゆっくりとした製作プランなどの作成に用いられますが、ゲームではそれらをリアルタイムの動作プランの作成に用いるのです。これは後述するHTNも同様で、アカデミックにゆっくりと動かしていたアルゴリズムを、ゲームではリアルタイムに用いるのです。(三宅氏)

――なるほど……理屈はわかったのですが、これで考えるように見えるのですか? 

三宅氏:
 違う例として、仮に初期状態が「喉が渇いた」で、ゴールが「喉が渇いていない状態」だったものを考えてみましょうか。これを行動単位に連鎖させることで、初期状態からゴールまで導けばいいわけです。そのために使用するのが検索技術です。

 まずは「のどが渇いていない状態」を検索すると、「水を飲む」が登場します。その逆側の端っこにあるのは、「水を手にしている」でした。さらに同様にすると、今度は「水のある場所に行く」という行動が出てくる。つまり、こんな感じです。

スタート:のどが渇いた

のどが渇いた 水のありかを知っている人に聞く 水の知識を入手

水の知識を入手 水のありかに向かう 水のありかに着く

水のありかに着く 水を手にする 水を手にしている

水を手にしている 水を飲む のどが渇いていない

ゴール:のどが渇いていない

  という連鎖が出来上がって、自動的に「水を飲む」というプランになります。要するに目的だけ設定して、鍋に付せんに書いた要素を入れてぐつぐつ煮込むと、その状況に応じて数珠つなぎになった一連の行動がポコっと自動的に出てくる感じですね。 

――おおおお、なるほど!

三宅氏:
 ただ、これでも本当は大ざっぱなんですけどね。「水のありかに行く」合間には、障害物を避けたり、モンスターと戦ったりする必要がある。それに、前提条件は同じだけど、違う効果になる行動も沢山あります。でも、そこも同じようにプランニングをやるだけです。検索技術を使えばいくらでも精緻に間を繋ぐプランは出せて、そこから最良のプランを評価して選べばいいだけのことです。

 このプランニング技術を最初にAIに入れたタイトルは『F.E.A.R.』でした。ちょっと動画を見てみましょうか。たとえば、この動画は「ドアへ近付く」「ドアを開ける」「プレイヤーを攻撃する」をAIにやらせています。

道中に障害がなければ、敵キャラクターはプレイヤーまで一直線に向かってくる 。
(Gifはジェフ・オルキン氏のサイトからDLできる動画より抜粋したもの)

――これが……その場でプランニングで生成されているんですね。

三宅氏:
 ちなみに、「リプラニング」という技術があります。これは考えたプランが中断せざるを得なくなったときに、もう一度新しく現在の条件からプランを作り出す技術です。こっちも動画で見て下さい。先ほどのが上手く行ったものなら、こっちは意地悪をしてドアを固く閉めたものです。

ドアが開かないと、自ら迂回してプレイヤーに迫ってくる敵キャラ
(Gifはジェフ・オルキン氏のサイトからDLできる動画より抜粋したもの)

 すると、下の方では、AIは別のプランを作ります。すなわち「ガラスを破って部屋へ入る」「プレイヤーをキックする」という行動を行うことになります。

――いや、この動画はヤバいですね。この挙動は、もちろんゲームデザイナーが考えたものではなくて、その場で自動生成された行動なわけですね。

三宅氏:
 この発想の先にあるのが、「タスクプランニング」【※1】という技術で、これは現代AIの最先端です。『KILLZONE』(2005〜・Guerrilla Games/オランダ)【※2】のシリーズで使用されているのですが、一言で言うと、分解の仕方そのものを「メソッド」として定義して、先ほどのタスクのネットワークそれ自体を自動生成してしまう技術です。

※1 タスクプランニング
AIの意思決定の方法のひとつ。目的達成に必要な行動を、細かなタスク(作業)の集合体として分解。この実行順の決定の過程がタスクプランニングとなる。

※2 KILLZONE
オランダのGuerrilla GamesによるFPSシリーズ。1作目が2004年、『2』が2009年の発売。Guerrilla Gamesは1作目の発売後、Sony Interractive Entertainmentの傘下となっている。ダイナミックなカメラワークと三宅氏の語るAIが印象深いタイトル。 

――メソッド……ちょっと技術的な用語で恐縮ですが、つまりはプログラミングにおける「オブジェクト指向」の考え方を導入したということですか?

三宅氏:
 プログラマ向けの説明としては、似ています。ここではタスク分解の仕方、という意味です。

各々のタスクは条件を満たした際に呼び出されて実行される。また、それぞれのタスクは「全順序」「局所的順序」「順序なし」の三つに分類されるように分解される。

 例えば、「戦闘行動」というメソッドを作ってしまって、その内部でタスクのネットワークを「近づく」「戦闘する」「遠ざかる」のように分解します。そして、さらに「近づく」なんかもメソッドにして、「敵の前にいたら走る」「敵の後ろにいたら歩く」と分解していく。
 これの良いところは、各々の具体的な戦闘の場面で、このメソッドを呼び出して対応できてしまうので、応用がどんどん効いていくことです。

 ――しかも、これならメソッドもどんどん増やせますし、タスクの順番の入れ替えも変な影響が出ずに行えますね。 

三宅氏:
 こうしてタスクを分解して出来る階層型のネットワーク構造を「階層型タスクネットワーク」(HTN)と呼んでいて、『KILLZONE 2』(2009〜・Guerrilla Games/オランダ)における各兵士のアタマの中はこれで構成されています。

三宅氏作成のHTNの出力の一例。
(参考:On the AI Strategy for KILLZONE 2′s Multiplayer Bots

 大体、これによって毎秒500個のプランが生成されています

――500個ですか!?

三宅氏:
 昔のスクリプトAIは、プランナーが1個1個テキストで書いていたのですが、今や1秒間に500個を自動生成しちゃう時代だから、もう隔世の感ですよね。しかも、その場に応じたプランを自動生成するので、昔のAIとの差は歴然です。ただ、このHTNという技術は、まだ『KILLZONE 2』【※】と『KILLZONE 3』にしか使われてないですね。

――うむむむ。これ、凄いですね。……というかプランを500個考えるというのは、人間よりある意味で賢いんじゃないかと(笑)。 

三宅氏:
 ただ、困ったことに、AIがプランを自動生成してくるという発想そのものにまだゲーム開発者の発想が追いついていないんです。これをゲームにいかに取り込んでいくかは、今後のゲームデザインのカギだと思います。

ゲームAI史――3.「メタAI」がついに分化した

三宅氏:
 話を再び戻すと、これほどまでにキャラクターAIが賢くなったとき、新しい形の「メタAI」が台頭してきたのです。逆に言えば、キャラクターが十分に賢くなったからこそ、監督となるメタAIがもはや一挙一同を制御していたところから、「これやって」とキャラクターに伝えさえすれば「はい、やっときますよ」とそのキャラクターが応じられるとも言えます。

 そして、それだけのメタAIを初めて本格的に導入したのが、まさに冒頭の『Left 4 Dead』なんです。この作品も大きなターニングポイントで、現代のメタAIがこんな風に使われるようになったアイディアは、彼らから出てきたようなものです。しかも、その情報はValve Corporationのサイトで全部オープンになっていて、やはり誰でも見られるわけです。その結果、今や色んな会社が真似しています。 

――ここでも知識をシェアしていくんですね。ちなみに、『Left 4 Dead』のメタAIを継承した作品で、最も重要なものは何でしょうか?

三宅氏:
 そもそも『Left 4 Dead』は2008年の作品ですから、もう10年近く前の作品です。実はここまでの話は2000年~2010年頃までの話でしかないんです。その後、海外のゲーム業界にはオープンワールドの波が来たので、AI技術の発展はその応用に追われていた感じです。例えば、キャラクター1体でプランニングするのは簡単でも、100体でどう動かすのかとなると、基礎部分は共通でも応用の仕方は変わってきます。 

 ただ、そういう中でも、作品はいくつも登場しています。

『Warframe』(2013・Digital Extremes)
(画像はAmazonより)

 まず『Warframe』(2013・Digital Extremes/カナダ)です。これは、正直なところ『Left 4 Dead』をパクってますね(笑)。出発点から敵の配置まで、基本的には同じように作ってますからね。緊張度の入れ方もそっくりです。まあ、要は「デファクトスタンダード」になった証でしょう。ただ、『Warframe』の凄いところは、もうメタAIにダンジョンの生成までやらせていることです。ゲームのローディング時にパーツから組み上げてしまい、生成したダンジョンを今度はその場で解析して、ナビゲーション・メッシュを入れて……という感じですね。これをすべてゲーム内でやってしまうというところがすごいところですね。

図 Warframe において自動生成されたダンジョン。
(画像はBrewer, AI Postmortems: Assassin’s Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)より)

 ちなみにキャラクターの配置には、緊張度曲線を使うところは一緒ですが、「ヒートマップ」という技術も使っています。読んでのとおり、「熱伝播モデル」を応用した方法です。たとえば「Warframe」であれば、キャラクターがいるポイントを熱源として周囲に熱を減衰させながら伝播して行きます。するとキャラクターが近づいて来る方のエリアにはどんどん温度が上がって行きますし、遠ざかって行く方向は冷えて行きます。そこで温度が上がって来る地点に敵を出現させます。

図 Warframeにおけるヒートマップ。
(画像はDaniel Brewer, AI Postmortems: Assassin’s Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015)より)

 あと、『Far Cry 4』(2014・Ubisoft/フランス)も『Left 4 Dead』のメタAIをさらに発展させていますが、こっちはイベントを自動生成しようとしています。今オープンワールドで問題になっているのは、「イベントをどこに埋め込むか」という問題なんです。ひたすら広くて「プレイヤーがどっちから来るんだよ?」というのさえわからない。しかもイベントを準備するにしても、広大なフィールドのいろんなポイントに仕込んでいかないとスカスカになってしまうし、そんな作業は果てがない。だったら「もう、その場で生成しちゃおうよ」というわけですね。

――イベントまで自動生成するのは、だいぶ人類の最先端を行く発想に思えますね(笑)。

三宅氏:
 メタAIが監督になって、「敵の野生動物さんと、仲間の人たちと役者さん、スタンバってください。オレが指示出したらみんな戦ってね」と指示を飛ばしていく感じですね。そんなふうに複数の組み合わせを作って、色々な場所でイベントを起こすんです。

(画像はFar Cry’s AI: A Manifesto for Systemic Gameplay Julien Varnierより)

 『Far Cry 4』の場合は、その場所の特性に応じたイベントを起こしています。土地は平地か水場か、今日の天気はどうか、以前にそのイベントはいつやったか――みたいな情報から、その場で起こすイベントを生成していくんです。そうして、例えば牢獄に近ければ、牢獄に連れていくイベントを起こしちゃうわけですよ。こうすると、開発費が劇的に安くなるんです。 

──でも、これってどの程度までストーリー性を持たせられるんですか?

三宅氏:
 まだまだ、そんなに複雑なことは出来ません。その場限りのイベントを作るのがせいぜいで、もちろんメインストーリーは人間が作り込んでいます。

メタAIがキャラクターを組み合わせて生み出すドラマ。
(画像はFar Cry’s AI: A Manifesto for Systemic Gameplay Julien Varnierより)

 でも、オープンワールドはメインストーリーだけでは不十分で、脇道にそれたときにもイベントが必要で、そこをコスト削減できるのは大きいです。北米の企業は『The Elder Scrolls V: Skyrim』(2011・Bethesda Game Studios/米国)や『Fallout』シリーズ(1997〜・Black Isle Studios/米国&Bethesda Softworks/米国)も、AIで展開をどんどん生成して行っています。 

 そして――ある意味では、ここに現代のAI開発の終着点があります。
 オープンワールドを自動生成して、作られたマップをAIが解析して、メタAIが敵を配置する。簡単に言うと、AIでゲームを全部作ってしまおうというわけです。ただ、カンファレンスに出向いている感触では、こういう応用の波は、まさに昨年になって一段落したように思います。ここからどう発展させていくのかが今、問われているのだと思います。

――それにしても、こう聞くと欧米みたいに1000名体制のマネージメントが出来ない日本が、こういう技術をどう学ぶかは重要になりそうですね。

三宅氏:
 そうですね。ちなみに、AIにはこういうゲーム内のAIと同時に、開発工程内のAI利用もあるんですよ。去年のGDCとCEDEC【※】のトレンドは自動デバッグでした。日本のタイトルでも、ベテランプレイヤーのログをニューラルネットワークでAIに学習させて、ひたすら24時間デバッグさせていたりします。日本のような国にとっては、こういう方向性は本当に重要だと思います。
 それに、そもそも最近では大型ゲームはオープンワールドであることが前提となるような風潮もあります。そういった開発では、レベルデザイン、キャラクターの人工知能、ゲーム調整、デバッグまでを含めて、人工知能とともに開発する態度と同時に、人工知能をゲームに入れて自動化する、という発想が必要ですね。

※CEDEC
Computer Entertainment Developers Conferenceの略。ゲーム会社からなる一般社団法人コンピュータエンターテインメント協会 (CESA))が主催する、日本国内最大のゲーム開発者向け技術交流会のこと。1999年に第一回が開催されて以降、毎年開催されている。

1

2

3

4

  • このエントリーをはてなブックマークに追加

関連記事

新着記事

新着記事

連載・特集一覧

カテゴリ

ゲームマガジン

関連サイト

脳ゲーマー ヒデヲ
若ゲのいたり

カテゴリーピックアップ