「デジタルゲームAIとプロシージャル技術」
柔軟なデジタルゲーム・コンテンツを目指して

三宅 陽一郎y.m.4160@gmail.com
twitter: @miyayou
http://www.facebook.com/youichiro.miyake

神奈川工科大学
2011.7.28#aikaitContact Information
Youichiro Miyake• Mail： y.m.4160@gmail.com• Twitter: @miyayou• Blog： http://blogai.igda.jp• LinkedIn: http://www.linkedin.com/in/miyayou• Facebook：http://www.facebook.com/youichiro.miyake

本日のコンテンツ(1) キャラクターＡＩ(2) メタＡＩ(3) プロシージャル

人工知能って何だろう？

知能ってなんだろう？

リアルワールド（現実世界）

リアルワールド（現実世界）

バーチャルワールド（仮想世界）
現実世界の知性

仮想世界の知性＝人工知能

イラスト: アンの小箱 http://www.anne-box.com/

環境と知性もし、この世界がたったひとつの白い部屋だったら、その世界にはどんな知性が存在するだろうか？

いいや、たいして高度な知性は存在しないだろうし、必要ない。

では、何が知性を必要とさせているんだろう？

進化の歴史＝身体と知能の歴史

進化の歴史＝環境への適応の歴史
http://apps.carleton.edu/campus/library/now/exhibits/wallcharts/evolution/

進化という長い歴史から見れば、環境が知性を育てる

環境の複雑さ ＝ 知性の複雑さ

知性の複雑さは環境の複雑さに比例する
知性の複雑さ

環境の複雑さ知性の複雑さは環境の複雑さに比例する
知性の複雑さ

環境の複雑さhttp://www.allposters.co.jp/-sp/Sunlight-Reflects-on-the-Sea-Floor-Through-Crystal-Clear-Blue-Water-Posters_i3620476_.htm
http://services.flikie.com/view/v3/android/wallpapers/16787703
http://www.flickr.com/photos/rotrauds-kleine-welt/346698184/
http://soulfealing.com/thumbnail.php?act=dirList&folder=winter2

環境の多様性と複雑性

生物の知性の多様性と高度性

http://www.allposters.co.jp/-sp/Sunlight-Reflects-on-the-Sea-Floor-Through-Crystal-Clear-Blue-Water-Posters_i3620476_.htm
http://services.flikie.com/view/v3/android/wallpapers/16787703
http://www.flickr.com/photos/rotrauds-kleine-welt/346698184/
http://soulfealing.com/thumbnail.php?act=dirList&folder=winter2

ゲームステージの多様性と複雑性

キャラクターの知能の多様性と高度性

リアルワールド（現実世界＝多様性）

バーチャルワールド（仮想世界＝多様性）
現実世界の知性

仮想世界の知性＝人工知能

イラスト: アンの小箱 http://www.anne-box.com/

キャラクターの知性の複雑さはゲームステージの複雑さに比例する
キャラクターの知性の高度さ

ゲームステージの複雑さ

リアルワールド（現実世界＝多様性）

現実世界の知性

イラスト: アンの小箱 http://www.anne-box.com/

リアルワールド（現実世界＝多様性）
感覚から得た情報から認識を形成する

意志
決定
コア

世界と自己のインターフェース（＝感覚）現実世界の知性

イラスト: アンの小箱 http://www.anne-box.com/

リアルワールド（現実世界＝多様性）
バーチャルワールド（仮想世界＝多様性）

仮想世界の知性＝人工知能

イラスト: アンの小箱 http://www.anne-box.com/

リアルワールド（現実世界＝多様性）
バーチャルワールド（仮想世界＝多様性）

感覚から得た情報から認識を形成する

意志
決定
コア

仮想世界の知性＝人工知能

世界と自己のインターフェース（＝感覚）レイヤー化して知性を考える
リアルワールド

感覚（＝センサー）

認識

意志決定コアバーチャルワールド
IN
感覚から得た情報から認識を形成する

意志
決定
コア

世界と自己のインターフェース（＝感覚）人工知能

イラスト: アンの小箱 http://www.anne-box.com/

IN

レイヤー化して知性を考える
バーチャルワールド

感覚（＝センサー）

認識

意志決定コアOUT?

バーチャルワールド
OUT
IN
感覚から得た情報から認識を形成する

意志決定コア

世界と自己のインターフェース（＝感覚）人工知能

イラスト: アンの小箱 http://www.anne-box.com/

IN

レイヤー化して知性を考える OUT?
バーチャルワールド

感覚（＝センサー）

認識

モーション生成アクション生成意志決定コアIN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）

認識

モーション生成アクション生成意志決定コアバーチャルワールド
身体感覚から得た情報から認識を形成する

意志決定
コア

世界と自己のインターフェース（＝感覚）人工知能

イラスト: アンの小箱 http://www.anne-box.com/

バーチャルワールド
OUT
IN
意志決定コア

人工知能

イラスト: アンの小箱 http://www.anne-box.com/

IN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）

認識

モーション生成アクション生成意志決定コアIN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）

認識

モーション生成アクション生成意志決定コアIN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）

モーション生成円環を為す情報の流れ
認識アクション生成意志決定コアIN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）

モーション生成インフォーメーション・フロー(Information Flow)
認識

アクション生成意志決定コアIN

レイヤー化して知性を考える OUT
バーチャルワールド
身体感覚（＝センサー）
モーション生成
実はキャラクターＡＩはインフォーメーション・フローさえ守ればどう組んでもよい。
認識アクション生成

意志決定コアIN

エージェント・アーキテクチャ OUT
バーチャルワールド
身体感覚（＝センサー）

エフェクター

自由に創意工夫するIN

エージェント・アーキテクチャ OUT
バーチャルワールド
身体意志決定コア

IN

エージェント・アーキテクチャ OUT
バーチャルワールド
身体どのような階層構造にするか？（何層？）
どんなレイヤー（モジュール）を入れるかで知性の特性が変わる意志決定コア

Halo


内容：宇宙船や地表を舞台にしたＳＦのＦＰＳ
開発元： BUNGIE Studio
出版: Microsoft
Hardware: Xbox, Windows, Mac
出版年： ２００２年

Xbox, 全米、世界を代表するＦＰＳの一つ( Halo 500万本 Halo2 700万 国内10万本）「愛嬌のあるＮＰＣ」とその演出で、プレイヤーからの定評を得る。

Halo NPC

グラント

ちょこまかと動き回る。
愛嬌がある。

ジャッカル

エリート

人間

手堅い。

大型。

普通の人間。

敵（コグナント）味方Halo AI のアーキテクチャー「敵発見」「味方死亡」「ダメージ受けた」「プレイヤー発砲」などイベントを抽出
イベント

状況解析

意志決定ロジック• 敵は アラートを発する– 固有のコンバット・サイクル• ビヘイビアは刺激によってアクティベートされる– チャージ, 前進, 探索– グレネードを投げる, 車に乗る,死体を確認する• 各種族はブラックボックスのアクション・セレクションを持つ– グラントは突進しやすい– エリートは傷つくと隠れる– ジャッカルはシールドを使うデモReference for Halo & Halo2
 Damian Isla (2005), “Dude, where’s my Warthog? From
Pathfinding to General Spatial Competence”,
http://www.aiide.org/aiide2005/talks/isla.ppt
http://nikon.bungie.org/misc/aiide_2005_pathfinding/index.html

 Damian Isla (2005), Handling Complexity in the Halo 2 AI,
Game Developer's Conference Proceedings.,
http://www.gamasutra.com/gdc2005/features/20050311/isla_01.shtml

 Jaime Griesemer(2002),The Illusion of Intelligence: TheIntegration of AI and Level Design in Halo,
http://halo.bungie.org/misc/gdc.2002.haloai/talk.html Robert Valdes(2004), “In the Mind of the Enemy
The Artificial Intelligence of Halo2”,
http://www.stuffo.com/halo2-ai.htm (現在はclosed)
Figures on following pages are from these references.

F.E.A.R. におけるエージェント・アーキテクチャ
WorldSensors
WorkingMemoryTargeting
Planner
Navigation

Blackboard

Animation /Movement

Weapons

World

Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005)
http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt

まとめ(1) 知性は環境を反映する。
(2) 知性の構造は階層化レイヤーとして捉えることができる。
（ サブサンプション・アーキテクチャ）(3) 環境と知性を明確に分けるアーキテクチャをエージェント・アーキテクチャという。
(4) エージェント・アーキテクチャでは、環境と知性の間でインフォーメーション・フローが形成される。
(5) インフォメーション・フロー上にどのようなモジュールを配置するかで、知性の質が変化する（＝個性化）(6) どのようなモジュールがあることを知っているか？（キャラク
ターＡＩの知識、人工知能の知識）、それをどう組み合わせればどのような効果が得られるか？（ノウハウ）を習得することが、キャラクターＡＩを作成方法をマスターするということ。

参考文献
エージェント（＝キャラクターＡＩ）を作成する知識が編纂されている書籍。

メタAI
ゲーム全体

ゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

通常のゲームは、キャラクター、プレイヤーの置かれる状況が、ゲーム進行制御によって決定されている（条件分岐など）。

メタAI
ゲーム全体

メタＡＩ

ゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ＡＩ化

ゲーム進行
制御

「メタＡＩ」のアイデアは、そういった決められたゲーム進行を「メタＡＩ」としてＡＩ化してゲームの外側に置き、そのメタＡＩがゲーム進行を外側から監視しながら、動的にゲーム内容を変えて行くところにある。

メタAI
ゲーム全体

メタＡＩ
影響を及ぼすゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩは、ゲームの進行を認識し、理解し、ゲームを面白くするために、ゲームに対して影響を及ぼす。基本的に、キャラクターＡＩの技術がよく援用される。

Left 4 Dead の例

 ４人で行う協力型オンラインゲーム
 街中でゾンビと戦う
 プラットフォーム： Windows/Xbox360
 開発会社： Valve リリース: 2008.11.18

資料： http://www.valvesoftware.com/publications.html

Left 4 Dead の例「Counter Strike」の世界的成功
自分たちはなぜ成功したかを徹底的に考察

それは緩急があったからだ。
Counter Strike の「緩急＝ペース」はある程度、偶然に作られたかもしれない。
では、そういったゲームが面白くなる最適なペースを、人工的に常に作り出すことはできないだろうか？

メタAI (=AI Director)によってペースを作る。

適応型動的ペーシング[基本的発想](1) ユーザーがリラックスいている時に、ユーザーの緊張度が一定の敷居を超えるまで敵をぶつけ続ける。
(2) ユーザーの緊張度が一定の緊張度を超えると敵を引き上げる。
(3) リラックスすると敵を出現し始める(（１）へ）。

メタAI(=AI Director)によるユーザーのリラックス度に応じた敵出現度
計算によって求められた理想的な敵出現数

ユーザーの緊張度

実際の敵出現数(1) リラックスを破るように敵を出現させる。
Build Up …プレイヤーの緊張度が目標値を超えるまで敵を出現させ続ける。
Sustain Peak … 緊張度のピークを3-5秒維持するために、敵の数を維持する。
Peak Fade … 敵の数を最小限へ減少して行く。
Relax … プレイヤーたちが安全な領域へ行くまで、30-45秒間、敵の出現を最小限に維持する。

メタＡＩがゲームを認識する方法＝ キャラクターAIが環境を認識する方法

キャラクター用に作成されたナビゲーションメッシュをメタＡＩがゲームの進行を認識するために使用する。

メタAIが作用を行う領域(AAS=Active Area Set)

メタAIが作用を行う領域(AAS=Active Area Set)

メタAIが作用を行う領域(AAS=Active Area Set)

安全な領域までの道のり(Flow Distance)
プレイヤー群の経路をトレース・予測- どこへ来るか- どこが背面になるかAAS に対して行うこと。
メタＡＩは AAS に移動に伴い、敵の群れを生成・消滅させたりする。

プレイヤーからの可視領域可視領域では、例えば、敵のスパウニング（発生）などはできない。

敵出現領域

背後前方

高頻度

低頻度

敵の種類、アイテムの種類ごとに出現頻度が違う。

ボス出現アルゴリズム(1) Ｎ体を予想される逃走経路上に配置(2) ３つのイベントパターン（何もいない、を含む）（例） Tank, Witch, 何もいない(3) 同じパターンのくり返しは禁止(例) Witch, 何もいない、Witch はＯＫ。
Witch, Witch はだめ。

何もいない

具体的なアルゴリズム(1) 各エリアに、出現数 N を決定する(2) 出現数Nは予想される逃走経路の長さと要求される密度によって計算される.
(3) あるエリアがAAS の中に入るとクリーチャーがN体生成される(4) そのエリアがAAS の外に出ると生成が中止され、クリーチャーは消滅される。
(5) Ｎはそのエリアがプレイヤーから見えている場合、或いは、プレイヤーがリラックスモードの場合には、強制的に０になる。

メタAI
ゲーム全体

メタＡＩ？

影響を及ぼすゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩを極限まで推し進めるとどうなるだろうか？

メタAI
ゲーム全体

メタＡＩ！

影響を及ぼすゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩの影響力を増して行くとどうなるだろうか？
ゲームステージそのものを変化させる力＝プロシージャルへ

メタAI
ゲーム全体

メタＡＩ？

影響を及ぼすゲームステージ
キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩは、ゲームの進行を認識し、理解し、ゲームを面白くするために、ゲームに対して影響を及ぼす。基本的に、キャラクターＡＩの技術がよく援用される。

プロシージャル技術って何ですか？
ぐぐってみよう！

• コンテンツを計算によって生成する技術。
• 或いは、ある程度のデータから、新しいコンテンツを生成する技術。(例) FarCry2

 オフライン/オンラインゲーム
 広大な大自然の中でFPS プラットフォーム： Xbox360/PS3
 開発会社： Ubisoft
リリース: 2008.12.25

FarCry2 (Dunia Engine ) デモ

http://www.farcry2-hq.com/downloads,18,dunia-engine-nr1.htm

草原自動生成時間システム

樹木自動生成動的天候システム

動的天候システム

(例) Battlefield 2

 オフライン/オンラインゲーム
 広大な大自然の中でFPS プラットフォーム： Xbox360/PS3/PC
 開発会社： EA/Dice
リリース: 2010.12.2

SIGGRAPH 2007

Semi-procedural Surface Shader

表面状態などに応じてシェーダーが形成される（グラフベースでアーティストも作成可能）

組み込み可能ノード- 基本演算（mul, add, div）
- 地形条件（Fresnel, refrection）- ロジカル（プラットフォームなど）- パラメータ（スカラ、ベクトル、ブール）- パラメータ（Z,Normal, eye-vector）- ライト二ング(phong, sub-surface)- ルート(general, offset, multi-output)- その他(script, curve)プロシージャルに生成するシェーダー用のマップ・マスク

高さマップ

ノーマルマップ

傾斜マップ

クレーター・マスク
マテリアル・マスク

デストラクション・マスク

Semi-procedural Surface Shader 実例

グラス（草）マテリアルのみ＋海面/川面マテリアル＋スロープにおける泥＋草原マテリアル

Semi-procedural Surface Shader 実例＋２つの別タイプ草原マテリアル＋道マテリアルにデカールを貼る＋スロープ検出→崖テクスチャ

やぶ自動分布&生成

Terrain Rendering in Frostbite Using Procedural Shader Splatting, Johan Andersson
http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=E186596C09CC8E696BD79A02DBA080CC?doi=10.1.1.161.8979&rep=rep1&type=pdf

16x16m Cells

やぶ自動分布&生成

黒＝やぶ生成なし

Mask 生成

Normal Map 生成

再グリッド化

やぶ生成

ユーザーの周囲の 16x16m Cells 群をアクティブにして、プロシージャルにやぶを生成する。
（このCell群自体はあらかじめプールされている）
各Cellは、もともと、やぶのタイプを持っている。
各Cellはその頂点のVertex Buffer をインスタンスに持つ。
（例えば、破壊された地形の頂点データは変化する）（グリッドの大きさはその場のマテリアルの密度に依存）

やぶシェーダー（各グリッドの値と乱数で、やぶを置くか決定。 Normal Map はやぶモデルの方向を決定する。乱数シードはネットワークで共有するためマルチでも同じやぶが見える）

地形自動生成＆自動雪シェーダー- シェーダーでマルチ分解能のDisplacement map で山脈生成- 乱数は fBM (fractal Brownian Motion)- 地形マップのノーマルマップ-バンプマップのノーマルマップ
から Snow Coverage を計算
The Importance of Being Noisy:Fast, High Quality Noise, Natalya Tatarchuk
http://developer.amd.com/assets/Tatarchuk-Noise(GDC07-D3D_Day).pdf

メタAI ×プロシージャル技術
ゲーム全体

メタＡＩ！

影響を及ぼす → プロシージャル

ゲームステージ

キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩの影響力を増して行くとどうなるだろうか？

ゲームステージそのものを変化させる力＝プロシージャルへ
世界そのものをリアルタイムで書き換えて行く力を手に入れるメタAI ×プロシージャル技術
ゲーム全体
メタＡＩ！

影響を及ぼす → プロシージャル

ゲームステージ

キャラクター
キャラクター
キャラクター

プレイヤー

ゲーム進行
制御

メタＡＩの影響力を増して行くとどうなるだろうか？
ゲームステージそのものを変化させる力＝プロシージャルへ
世界そのものをリアルタイムで書き換えて行く力を手に入れる
デジタルゲームデザイン、未踏の領域

ゲームの行方３者に共通するもの(1) キャラクターＡＩ(2) メタＡＩ(3) プロシージャル

その場の状況に応じて進行に合わせてゲームを変化その場でコンテンツを生成してゲームを展開「人力による巨大固定コンテンツ」 から「高い技術による柔軟なコンテンツ」へ[私的コメント]
海外は残虐な戦闘型ゲームが多いが、これらの技術を活かした日本型の優しいゲームもあるはずだ。

ゲームＡＩラウンドテーブル・オン・ツイッター• 毎月１回• テーマを一つ決めて議論• ツイッターアカウントがあれば誰でも参加できる。
• 司会： @miyayou or @hudepen• 議論は togetter にまとまっている
http://togetter.com/li/154135

書籍紹介

第２２章「プロシージャル技術」
第２３章「デジタルゲームＡＩ」

第５章「これからデジタルゲームのＡＩの進む道を知るために知っておきたいこと」第５章付録「デジタルゲームＡＩ入門」（教科書紹介）書籍紹介

まずこれを読もう。

ご清聴ありがとうございました！

ご質問： y.m.4160@gmail.com Twitter: miyayou まで

http://wannohana.com/brand/pastapapa/pb0910301.php