この連載が書籍になりました!『エンジニアのためのAI入門

AI最前線の現場から【スクウェア・エニックス】 ゲームそのものを認識するメタAI

2016年9月6日(火)
Prasertvithyakarn Prasert (パサートウィットヤーカーン パサート)上段 達弘Fabien Gravot (ファビアン グラヴォ)南野 真太郎Matthew Johnson(マシュー ジョンソン)Ingimar Gudmundsson(インギマル グードムンソン )三宅 陽一郎

はじめに

前回までを通して、キャラクターの身体と頭脳を統べる「キャラクターAI」について解説しました。今回は、キャラクターAI以外の人工知能である「メタAI」と「ナビゲーションAI」について解説します。

メタAIとは

ゲームの内と外の境界にあり、この2つを繋ぐ役割を持つ「ゲームシステム」というものがあります。ゲームシステムは、例えばコントローラーの入力をゲームに反映し、ゲーム自身をスクリーンに展開します。このゲームシステムを知能化したものがメタAIです。

メタAIは身体を持たないAIで、ゲームの進行を監視しながら、より面白くなるようにゲーム全体をディレクションする役割を持っています。「LEFT 4 DEAD」(Valve, 2009)、「Warframe」(Digital Extremes, 2013)などのゲームでは「AI Director」 という名前で呼ばれ、緊張度の緩急をコントロールするAIとして実装されています。ユーザーのプレイログから現在の緊張度を計算(監視)して、緊張度が低いと考えれば敵をたくさん出現させ、緊張度が高いと考えれば敵の出現を中止します。つまり、敵の出現と消滅によって人工的に緊張度をアップダウンさせています。

「FINAL FANTASY XV」では、メタAIを戦闘の調整に使用しています。例えば、プレイヤーと各仲間の状態を監視して、プレイヤーがピンチの時は一番近くて都合が良い(攻撃などの行動をしていないなど)仲間を選んで、最優先で駆けつけるように指令を出します。戦闘中にメタAIが仲間に与える指示としては、以下のようなものがあります。

  1. プレイヤーや仲間のピンチを助けよ
  2. プレイヤーが敵に拘束されているから助けよ
  3. プレイヤーが逃げているから追従せよ
  4. 作戦が発動したのでそれに合わせた行動をせよ

このような指令によって戦闘を引き締め、戦闘全体に緩急を与える役割を持っています(図1)。

図1:メタAIの機能。メタAIが仲間(右)に主人公(左下)のピンチを知らせ、助けるように命令する

2.ナビゲーションAI

ナビゲーションAIは、ゲームの地形を認識する人工知能です。どんなに複雑な地形でも、行きたい場所への経路や自分がこれから行くべき場所を発見する人工知能でもあります。経路を検索する人工知能を「パス検索」、自分が今の状況で行くべき場所を見つける人工知能を「戦術位置検索」と呼びます。つまり、ナビゲーションAIには2種類があります。

  • 戦術位置検索システム:行くべき場所を発見する
  • パス検索システム:行くべき場所へ経路を発見する

パス検索システム

人間であれば、新しい場所に来たときでも一瞬で「どこが歩けて」「どこが歩けないか」を判断できます。新しい部屋、新しい平野、判断の難しい沼地でも、必死に「どこが歩けるか」を本能的に探そうとします。人間は本来的に、このような高い環境把握能力を持っています。

一方、人工知能がゲーム世界でキャラクターを動かそうとすれば、人間と同様に「どこが歩けるか」を認識しなくてはいけません。その仕掛けが「ナビゲーション・データ」で、キャラクターがゲーム内で歩ける場所を「ポイント・データ」や「メッシュ・データ」として表現したものです。特にそれぞれのメッシュが隣のメッシュのリンクデータを持っているデータを「連結メッシュ・データ(networked mesh data)」と呼びます。通称は「ナビゲーション・メッシュ」と呼ばれています。

「FINAL FANTASY XV」のキャラクターは、このナビゲーション・メッシュ上で「A*アルゴリズム」を利用して目的地までのパス検索を行います(図2)。目的地までの最短経路(正確には最少コスト経路)を計算してくれるので、その経路を辿れば目的地までたどり着くことができます。

図2:目的地までの最短経路を計算するための「ナビゲーション・メッシュ」

ナビゲーション・メッシュは大局的な移動に大きな力を発揮しますが、ナビゲーション・メッシュのサイズ以下になると、とたんに小回りが利かなくなります。そこで、局所的な領域のためにポイントを指定してキャラクターを辿らせるようにしています。これを「スマート・ウェイポイント」と呼び、ゲームデザイナーがポイントを置いて局所的な領域でも細かくキャラクターの経路を制御できるようにしています(図3)。

図3:詳細な経路をキャラクターに指定する「スマート・ウェイポイント」

またナビゲーション・メッシュは、作成後の本質保証(QA:Quality Assurance)が重要です。作成したナビゲーション・メッシュは、下記のような観点でチェックする確認する必要があります。

  • きちんと全体が作れている。(当たりモデルがなくて作れていない場所がないか)
  • 全体が繋がっているか(狭い道などで途切れていないか)
  • 必要のない場所に作られていないか(間違って繋がっている箇所に広がっている)

これらのチェックを、例えば50マップあれば50マップ分をチェックする必要があるわけです。そこで、ナビゲーション・メッシュの全体像(図4)を開発内のWebで誰もがチェックできるようにしておくことが重要になります。

図4:あるマップにおける「ナビゲーション・メッシュ」の全体像

戦術位置検索システム

3次元のアクションゲームやストラテジーゲームなどでは、キャラクターが戦況に応じて「適切に位置取りをする」必要があります。例えば、プレイヤーを囲むモンスターであれば「プレイヤーの視線が通らない背後から攻撃できる距離に位置取りしたい」、仲間であれば「プレイヤーの背中を守るように位置取りをしたい」「飛び道具で攻撃するために敵から距離を空けたい」、などです。

これが何もない野原で起こる戦闘であれば特に問題なく決定できます。しかし、実際には起伏や岩や木々やダンジョンの中で戦闘が起こります。従来は「そのマップがどんな形状か」をゲームデザイナーが把握して、事前にキャラクターごとのに立ち位置を指定したデータを作成していました。しかし、その手法が可能だった理由は比較的マップが狭かったこと、一方向の回廊などでキャラクターの立ち位置が限定されていたことです。現在のゲームで主流のオープンマップ、つまり移動の自由度が高い「FINAL FANTASY XV」のようなゲームでは役立ちません。そこで、ゲーム内でキャラクターが動的に戦術的位置を見つけられる「戦術位置検索システム」を導入しています。

戦術位置検索システムは、次のようなシステムです(図5)。

  1. ポイントを生成するプロセス
    探索したい領域にポイントを均等に生成する
  2. フィルタリング・プロセス
    必要のないポイントをフィルタリングする(振い落す)
  3. 残ったポイントに評価値をつけて最も最適な(最高点をつけた)ポイントを選ぶ

図5:戦術位置検索システムの原理。AIは自動的に地形を把握して戦術的に最適な位置を割り出し移動する。弓兵(AI)が次の目的地を発見するプロセスは以下のようなステップになる。(i) ゲーム現状 (ii) AIを中心に点をグリッド状に生成し配置する (iii) 足場の悪い点を除く (iv) 敵の近くのポイント、弓が届かないポイントを除く (v) 味方の近くを除く (vi) 最も高い位置にあるポイントを選択。このようにして自分の最適な戦術位置を自分自身で発見する

もちろん、このような方法がこれまでにもなかったわけではありません。例えば「Killzone」(Guerrilla Games, 2005)では、すでに同様のシステムが実装されていました。しかし、ゲームエンジンの中でツールまで完備された形で実現したのは「CRYENGINE(CRYTEK)」 (2010, Tactical Point System)が初めてで、現在では「Unreal Engine 4」 (Epic Games)の「EQS(Environment Query System)」でも実装されています。スクウェア・エニックスでは「PQS(Point Query System)」として実装しています(図6)。

図6:PQS(戦術位置検索システム)のツールの説明

図7はキャラクターの周りの位置検索システムの評価値を示したものです。危険なところは赤く、安全なところは青くなっています(図7)。全体が四角いのは最初のポイント生成がグリッド型であるため、中心が空いているのはプレイヤーからの距離を取るようにフィルタリングしているからです。

図7:戦術位置検索システムの各ポイントの評価値を色分けしたグラフ

PQSでは、ゲームデザイナーがツールから「生成」「フィルタリング」「評価」それぞれのプロセスをカスタマイズできます。このようなツールを導入することで、従来はプログラマの領域だった位置解析技術をゲームデザイナーが行えるスキルの1つになりつつあるのです。

おわりに

本連載では、現代における最新デジタルゲームの人工知能技術を紹介しました。本連載を数行でまとめれば、次のようになるでしょう。

大局的には「メタAI」がゲームをメーキングし、「キャラクターAI」が最小単位であるキャラクターの頭脳としてユーザーの体験を作って行きます。
ゲームステージの多様性は「ナビゲーションAI」によって吸収され、各ステージの固有性をうまく使えるようにメタAIとキャラクターAIをサポートします。
キャラクターAIにはそれぞれ役割が与えられ、その役割を果たせるように「エージェント・アーキテクチャ」のフレームの中で、それぞれのモジュールをカスタマイズして行きます。
特に、意思決定モジュールはその要であり、精緻に作りこまれるようなツールが提供されます。

「FINAL FANTASY XV」では、現時点における主要な人工知能技術が実装されています。その人工知能技術とゲームコンテンツを深く結びつけることで、高いレベルのコンテンツをユーザーに提供しています。

また、本連載で紹介した人工知能の技術と機能をまとめると図8のようになります。ゲームAIには大きな分野概念の箱があり、その箱にはそれぞれの問題を解決する人工知能技術が入っています。「メタAI」「キャラクターAI」「ナビゲーションAI」「身体」「学習」は長いゲーム開発の歴史の中で形成されて来た大きな分野であり、そこに属する個々の人工知能技術は、元々アカデミックな人工知能技術をさまざまなゲームの要請に合わせてカスタマイズされた技術です。

図8:デジタルゲームにおける人工知能の技術テーブル

デジタルゲームのAI技術は「仮想空間」という特性を通して高いレベルの知的活動をその世界に再現し、また早いサイクルで進化をくり返し鍛えられて来た技術です。その技術的立場、学問的立場はユニークなものであり、他の人工知能技術と連携しながらも、ある程度独立した大きな分野を形成します。今後、デジタルゲームの外側にもこれらの技術がさまざまな形で応用されることで、社会的にも大きな影響力を持つようになるでしょう。

【第4回参考文献】
FINAL FANTASY XV 公式サイト
http://www.jp.square-enix.com/ff15/

エリック・ジョンソン
「スクウェア・エニックスにおける UNREAL ENGINE 4 を用いた人工知能技術の開発事例」
https://www.youtube.com/watch?v=BV2GTGbSjq8

Arjen Beij, Remco Straatman, William van der Sterren
Killzone’s AI : Dynamic Procedural Combat Tactics
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

著者
Prasertvithyakarn Prasert (パサートウィットヤーカーン パサート)
株式会社スクウェア・エニックス
FINAL FANTASY XV 仲間システムとAIのリードゲームデザイン及びAI専門のテクニカルゲームデザイナー。日本文部科学省推薦で東京工業大学情報理工研究科に入学、2008年卒業。学生時代は自動作曲AIや歌声音声自動解析AIなどを作り、2010から現在は株式会社スクウェア・エニックスに所属。エモーショナルAIによる新しいゲーム体験を目指しゲーム開発実務を通して現在も研究している。
株式会社スクウェア・エニックス
2011年に株式会社スクウェア・エニックスに入社。ゲームエンジンLuminous Studioの開発に携わり、主にツール周りの実装を担当。現在はFINAL FANTASY XVチームにて、仲間キャラクターのAIを制作するチームに所属し、仲間全体をコントロールするメタAIなどの開発を担当。
著者
Fabien Gravot (ファビアン グラヴォ)
株式会社スクウェア・エニックス
2011年よりテクノロジー推進部AIリサーチャーとして入社。FINAL FANTASY XIVとFINAL FANTASY XVでナビゲーション・メッシュを担当する。前職ではロボットの人工知能や自動走行の業務に携わる。「実際の重たい制御よりもリスクの少ないゲームのほうがより自由にプログラミングできる」と考えゲーム産業へ。 2004年にフランスのPaul Sabatier大学からコンピュータ・サイエンスの博士号を取得。
株式会社スクウェア・エニックス
第2ビジネスディビジョン プログラマ。Luminous Studioの開発に携わった後、FINAL FANTASY XVの開発において、Backendエンジニアとしてアセットビルドパイプライン、アナリティクスシステムを担当。2012年からCEDECのエンジニアリング部門の主担当として参画。
著者
Matthew Johnson(マシュー ジョンソン)
株式会社スクウェア・エニックス
2013年にデータ解析とデータマイニングの博士号を取得した後に入社。FINAL FANTASY XVのためのAI技術とAIツールを開発に従事する。以前、大学においては「Intelligent tutoring systems」(知的チュートリアルシステム)と呼ばれる教育のためのデータマイニングと個人に適応する学習システムの研究に従事していた。
著者
Ingimar Gudmundsson(インギマル グードムンソン )
株式会社スクウェア・エニックス
2013年よりテクノロジー推進部AIエンジニアとして入社。キャラクターモーション、シミュレ―ション、ワークフローツールを専門としてきた。現在はFINAL FANTASY XVの開発に従事。ゲーム産業における経験も長く、バトルAIプログラマとして参加したリアルタイム・バトルストラテジーゲーム「Total War: Shogun 2」(2011、Creative Assembly)はBAFTA賞を受賞した。「Empire: Total War」 (2009) でゲーム産業でデビューし、「Napoleon: Total War」 (2010)の開発にも参加している。アイスランド大学から物理学士号、Exeter大学から応用人工知能の修士号を取得。
株式会社スクウェア・エニックス

テクノロジー推進部 リードAIリサーチャー。京都大学卒。「FINAL FANTASY XV」リードAIアーキテクト。2004年よりデジタルゲームにおける人工知能の開発・研究に従事。国際ゲーム開発者協会日本ゲームAI専門部会チェア、日本デジタルゲーム学会理事、芸術科学会理事、人工知能学会編集委員、CEDEC委員会委員。

連載バックナンバー

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています