東京工芸大学「次世代ゲームと人工知能」
三宅 陽一郎2011.12.16

y.m.4160@gmail.com
twitter: @miyayou
http://www.facebook.com/youichiro.miyake

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

三宅陽一郎 講演資料・論文集
2006-2011年3月までの講演・論文資料を全公開
2006-2010 ゲームAI連続セミナー全７回の講演資料を含む

y_miyake のゲームAI千夜一夜「三宅陽一郎 講演資料・論文集」
http://blogai.igda.jp/article/46500782.html

自己紹介（著作）第２２章 プロシージャル技術
第２３章 デジタルゲームAI

ゲームAIについてのロングインタビュー

監訳

目次
第一部 次世代ゲームの進む道
第二部 アニメーション・物理・人工知能
第三部 人工知能の６つの表現型

第一部 次世代ゲームの進む道デジタルゲームの歴史「ゲーム空間を拡張する」ことが最優先とされて来た。

- CGを美しくする- エフェクトを美しくする。
- ゲームステージを多様にする。

プリンス・オブ・ペルシャ (1989)

Assassin’s Creed (2007)
Ubisoft

デジタルゲームの歴史「ゲーム空間を拡張する」ことが最優先とされて来た。

拡張された世界とプレイヤーの間の多様なインタラクションの実現…. とは、必ずしもならなかった。なぜか？

デジタルゲームの歴史「ゲーム空間を拡張する」ことが最優先とされて来た。

拡張された世界とプレイヤーの間の多様なインタラクションの実現…. とは、必ずしもならなかった。なぜか？
ＣＧによって用意された空間を十分に活用できなかった。

ゲーム空間を利用するとはどういうことか？
• 空間、そこにあるオブジェクトに仕掛けを入れてゲーム性を実現する
物理 （有機的な世界）• プレイヤーの活動の仕方を潤沢にするアニメーション （アフォーダンスの稠密）• プレイヤーの世界の認識を共有する
人工知能 （知的な世界の共有）

次世代ゲームの３つのキーファクター
アニメーション（アフォーダンスの稠密）物理 （有機的な世界）

人工知能 （知的な世界の共有）

ゲーム空間の拡張
知的共有空間物理
インタラクティブＣＧ知的共有空間
一人だけがその世界をそのレベルで認識していると、孤独感がある。

自分の認識レベルと同等に認識する存在が必要。

人工知能 （知的な世界の共有）

ゲーム空間を利用するとはどういうことか？
• 空間、そこにあるオブジェクトに仕掛けを入れてゲーム性を実現する
物理 （有機的な世界）

世界の
仕組み
（応答）

• プレイヤーの活動の仕方を潤沢にするアニメーション （アフォーダンスの稠密）

インタラク
ション

• プレイヤーの世界の認識を共有する
人工知能 （知的な世界の共有）

心理ゲーム空間を利用するとはどういうことか？
• 空間、そこにあるオブジェクトに仕掛けを入れてゲーム性を実現する
物理 （有機的な世界）

世界の
仕組み
（応答）

• プレイヤーの活動の仕方を潤沢にするアニメーション （アフォーダンスの稠密）

インタラク
ション

• プレイヤーの世界の認識を共有する
人工知能 （知的な世界の共有）

心理

プレイヤーのインタラクション・心理をより豊富にする。

ゲーム空間を利用するとはどういうことか？
アニメーション （アフォーダンスの稠密）
インタラク
ション

3者の関係性
物理 （有機的な世界）
世界の
仕組み
（応答）

人工知能 （知的な世界の共有）

心理

プレイヤーのインタラクション・心理をより豊富にする。

ゲーム空間を利用するとはどういうことか？
アニメーション （アフォーダンスの稠密）よりリッチなインタラクティブの世界

インタラク
ション

内側から生きられた世界

3者の関係性
物理 （有機的な世界）
世界の
仕組み
（応答）

人工知能 （知的な世界の共有）予測された世界（時間的広がりを持つ世界）

心理プレイヤーのインタラクション・心理をより豊富にする。

見えている世界以上のもの
プレイヤーが認識する世界（時間的、空間的広がり）

アニメーション・物理・人工知能

プレイヤーに見えている世界＝ＣＧ

見えていない世界を拡張するには、アニメーション・物理・人工知能が鍵を握る。

次世代ゲームの課題(1) ＣＧのハイエンドな進化(2) アニメーション・物理・人工知能の進化(3) アニメーション・物理・人工知能の関係性の確立(4) プレイヤーの心理学第二部 アニメーション・物理・人工知能

三者の関係性
アニメーション （アフォーダンスの稠密）よりリッチなインタラクティブの世界

インタラク
ション

内側から生きられた世界

3者の関係性
物理 （有機的な世界）
世界の
仕組み
（応答）

人工知能 （知的な世界の共有）予測された世界（時間的広がりを持つ世界）

心理プレイヤーのインタラクション・心理をより豊富にする。

思考実験
もし、どれか一つだけ強かったら、と考えてみる。
• 物理だけリッチ
キャラクターの操作やインタラクション、AIの行動に反映されない。

• アニメーションだけリッチ
キャラクターの操作やインタラクション、AIの行動に反映されない。

• AIだけリッチ
認識する対象がシンプルすぎると意味がない。
操作する対象の自由度が多くないと意味がない。

身体
アニメーション （アフォーダンスの稠密）

身体を操作

世界を操作

インタラクション

身体から知性へのフィードバック（生理的フィードバック
身体的フィードバック＝Ｐｒｏｐｒｉｏｃｅｔｉｏｎ：固有感覚）
認識

物理 （有機的な世界）

世界

人工知能 （知的な世界の共有）
認識の形式を与える（「認識の起源＝物理構造」:
その世界の物理法則に基づいた知性の形を設計する）

知能エージェント・アーキテクチャ

資料： http://www.square-enix.com/jp/info/library/dldata/AI/AI.pdf

知性とは何か≒世界とは何か？
知性

世界

知性の構造は世界の構造に対して相対的に決まる。

http://www.123rf.com/photo_8100542_underwater-photo-of-a-hard-coral-reef.html
http://www.gatag.net/04/12/2010/190000.html
http://www.123rf.com/photo_10039937_foggy-forest-at-the-morning-at-autumn.html
http://www.flickr.com/photos/rotrauds-kleine-welt/346698184/

環境の多様性と複雑性

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

http://www.123rf.com/photo_8100542_underwater-photo-of-a-hard-coral-reef.html
http://www.gatag.net/04/12/2010/190000.html
http://www.123rf.com/photo_10039937_foggy-forest-at-the-morning-at-autumn.html
http://www.flickr.com/photos/rotrauds-kleine-welt/346698184/

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

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

http://www.123rf.com/photo_8100542_underwater-photo-of-a-hard-coral-reef.html
http://www.gatag.net/04/12/2010/190000.html
http://www.123rf.com/photo_10039937_foggy-forest-at-the-morning-at-autumn.html
http://www.flickr.com/photos/rotrauds-kleine-welt/346698184/

知性とは何か≒世界とは何か？
知性

世界

知性の構造はゲーム世界の構造に対して相対的に決まる。

知性とは何か≒世界とは何か？
知能の性質＝知性

世界の性質＝物理

物理と知性は相対的な関係にある。
知性は物理の影響を受けて形成される。

環境と身体が変われば知性は変わる
生物は周囲の環境に応じて身体と知性を進化させる。

http://www.astroarts.co.jp/news/2008/11/14hubble_fomalhaut/index-j.shtml
http://www.astroarts.co.jp/news/2005/07/27hd188753ab/index-j.shtml

環境と身体が変われば知性は変わる
身体が違えば知性の形も違う。

http://free-photo.gatag.net/category/animals/reptile
http://munkarra.cocolog-nifty.com/blog/cat6640740/index.html

知性とは何か≒世界とは何か？
知性

世界

知性の構造はゲーム世界の構造に対して相対的に決まる。

知性とは何か≒世界とは何か？
知能の性質＝人工知能

ゲーム世界の性質＝物理＋ゲーム法則

知性の構造はゲーム世界の構造に対して相対的に決まる。

エージェント・アーキテクチャ
知性

センサー

エフェクター

世界

エージェントの定義 ① 知性と世界が明確に分離されている② センサー（感覚）で世界の情報を取得する。
③ エフェクター（効果器）で世界に影響を及ぼす能力を持つ。
（④ 総合的に世界で何らかの役割を満たす）

自律型エージェント
バーチャルワールド（仮想世界）
仮想世界の知性＝人工知能

エージェント・アーキテクチャは自律型AI（自分で意思決定を行い、自分で行動する）への基礎となる

エージェント・アーキテクチャはAIと世界を明確に分離する自律型エージェント・アーキテクチャ
知性
どんな知性？
センサー

エフェクター世界
どんな世界？

世界がどんなに多様で複雑でも、理想的にはあらゆるゲームに適用できる
汎用的な知性のアーキテクチャを探究したい（Luminous Studio の AI の要件）。

エージェント・アーキテクチャ
SENSORPERCEPTION

センサー１

知識表現１

センサー2

知識表現2

センサー3

知識表現3

センサー4

知識表現4
(世界表現1)

センサー5

知識表現5
(世界表現2)

意志決定

身体

思考モジュール

身体部位１

情報の流入が大きくなる＝世界をよく知覚する世界
Oct.8, 2011

© 2011 SQUARE ENIX CO., LTD. All rights
reserved

39

ブラックボード・アーキテクチャに基づくエージェントアーキテクチャ
SENSOR
センサー１
センサー2
センサー3

PERCEPTION

意志決定

身体

思考モジュール

身体
制御

知識表現１

知識表現2
知識表現3

知識表現4
(世界表現1)

外から取得して流れ込む情報身体表現

元から持っている
ブラックボード（＝記憶領域）
知識・習性

世界
Oct.8, 2011

© 2011 SQUARE ENIX CO., LTD. All rights
reserved40

世界、知能、身体のアーキテクチャ・モデル
C4 アーキテクチャ(MIT メディアラボ Synthetic Creature Group, 2000)

キャラクターAIの内部モデルとしてのブラックボード・アーキテクチャ
C4 アーキテクチャ(MIT メディアラボ Synthetic Creature Group, 2000)

身体
記憶領域

キャラクターAIの内部モデルとしてのブラックボード・アーキテクチャ
C4 アーキテクチャ(MIT メディアラボ Synthetic Creature Group, 2000)

＝

身体
記憶領域

その世界を解釈できるだけの能力を持っていなければならない。

世界を解釈するとはどういうことか？
• 了解するってどういうこと？
• 知っているってどういうこと？
• 認識しているってどういうこと？
非常に哲学的な問い

とりあえず、その問には直接答えない。

（意識）モデル人工知能のレベル
知能の機能だけを模した人工知能

本物に近い人工知能

本当の知能人工知能のレベル
知能の機能だけを模した人工知能

本物に近い人工知能

本当の知能人工知能のレベル
モデル化

弱い人工知能知能の機能だけを模した人工知能

本物に近い人工知能

本当の知能

強い人工知能人工知能のレベル
モデル化

弱い人工知能知能の機能だけを模した人工知能
アルゴリズム

意識モデル/思考モデル

本物に近い人工知能
ニューラルネット

本当の知能

強い人工知能人工知能のレベル
モデル化

弱い人工知能知能の機能だけを模した人工知能
アルゴリズム

意識モデル/思考モデル

ゲームはココ

本物に近い人工知能
ニューラルネット

本当の知能

強い人工知能知能＝世界をどう表現するか？
知能の性質＝人工知能＝世界の表現

ゲーム世界の性質＝物理＋ゲーム法則

知性の構造はゲーム世界の構造に対して相対的に決まる。

知能＝世界をどう表現するか？
C4 アーキテクチャ(MIT メディアラボ Synthetic Creature Group, 2000)

＝

身体
記憶領域

ここには世界の表現がなければならない知能＝世界をどう表現するか？
C4 アーキテクチャ(MIT メディアラボ Synthetic Creature Group, 2000)

＝

身体
記憶領域

ここには世界の表現が人工知能の６つの表現型なければならない

第三部 人工知能の６つの表現型

人工知能• 人工知能とはソフトウェア？
• 人工知能とはロボット？
• 人工知能とはアプリケーション？
• 人工知能とはキャラクター？
• 人工知能とはエージェント？

ソフトウェアをどう捉えるか？
抽象世界（数学）

ソフトウェア＝動的システム/モデル/構造物/プログラム ?
モデル

ソフトウェア＝モデル/構造物/プログラム ?

デジタル

ソフトウェア＝プログラム？＝１０１０１０１１１０１００１０１００ ?

ソフトウェアをどう捉えるか？＝どこで人工知能を考えるか？
抽象世界（数学）

ソフトウェア＝動的システム/モデル/構造物/プログラム ?
モデル

ソフトウェア＝モデル/構造物/プログラム ?

デジタル

ソフトウェア＝プログラム？＝１０１０１０１１１０１００１０１００ ?

実際の知能と人工知能

本物の知能

人工知能

本物の世界

デジタルワールド
モデル化のプロセス

知能のモデル化の方針（ポリシー）
知能というものは非常に高度で基本的には「よくわらない」。
知能全体を模倣することは現段階では難しい。

一つの方向性から知能をモデル化しよう。
ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI「○○-based AI」とは、○○をAIを構築する基本単位（アトミック）として採用したＡＩということ。

これらは背反ではない。デジタルゲームの高度なＡＩの場合は組み合わされるのが普通。

知能のモデル化の方針（ポリシー）
知能というものは非常に高度で基本的には「よくわらない」。
知能全体を模倣することは現段階では難しい。

一つの方向性から知能をモデル化しよう。
ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

一つの方向性から知能をモデル化しよう、とする試みは、当然、常に不完全なものだが、それぞれの知的特徴を持ち、その特徴を活かせるように使い分けるしかない。

知能のモデル化.１

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

ステートベースＡＩ (State-Based AI)
状態によって世界を記述、状態によって制御を行う。

状態
状態

知性

世界

状態

内面

ステートマシン (State Machine)
状態
状態

状態

知性

状態を遷移条件で結んで、環境の変化を遷移条件で表現し身体制御を行う。

(例) Quake HFSM

http://ai-depot.com/FiniteStateMachines/FSM-Practical.html

状態遷移図を用いる

知能のモデル化.2

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

ルールベースAI (Rule-Base AI)
ルールを単位として構築する方法
ID 0 : IF … THEN ….

ID 0 : IF … THEN ….

ID 1 : IF … THEN ….

ID 1 : IF … THEN ….

ID 2 : IF … THEN ….

ID 2 : IF … THEN ….

ID .. : ….

ID N : IF … THEN ….

(例) 推論エンジン
ルール内の Statement まで単位（atomic）とする
T: True F: False
ID 0 : IF A

THEN BID 1 : IF A && D THEN C
ID 3 : IF C

THEN EID 4 : IF B

THEN D

ID 4 : IF E

THEN ~A

ID .. :

A
B
C
D
T
F
F
F
T
T
F
F
T
T
F
T
T
T
T
T
T
T
T
T
F
T
T
T
F
F
F
T
……………………………
……………………………
…………………

E
F
F
F
F
T
T
T

True, False が変化し過ぎてゲームでは明示的にはあまり使われない。
しかしゲームの制御はループ構造なので暗黙にこのようなシステムになっていることが多い。

(例) ルール制御
ルールに固定、あるいは変動プライオリティ（優先度）をつけて制御を行う。
あるいはランダムにルールをピックアップする場合もある。
Priority: 3

ID 0 : IF ….

THEN …

Priority: 1

ID 1 : IF ….

THEN …

Priority: 4

ID 3 : IF ….

THEN ….

Priority: 5

ID 4 : IF ….

THEN …

Priority: 2

ID 4 : IF ….

THEN …

Priority: -ID .. :

戦略思考、キャラクターの挙動などでよく使われる。

制御

(例) ルール制御
或いは、状況判断思考によってルールを振り分ける。

Priority: 3

ID 0 : IF ….

THEN …

Priority: 1

ID 1 : IF ….

THEN …

思考4
Priority:

ID 3 : IF ….

THEN ….

Priority: 5

ID 4 : IF ….

THEN …

Priority: 2

ID 5 : IF ….

THEN …

Priority: -ID .. :

戦略思考、キャラクターの挙動などでよく使われる。

制御

応用可能性例
こうなっているというのではなくて、こういうふうに応用できる例
ID 0 : IF （敵確認）

THEN （逆方向）

ID 1 : IF （誰もいない） THEN （ランダムウォーク）
パックマンなど

ID 2 : IF （フルーツ発見） THEN （フルーツゲット）
ID 3 : IF （パワー発見）

ID 0 : IF （敵強い）RPGなど

THEN （サンダガ）

ID 1 : IF （自分弱い） THEN （弱い敵に攻撃）

ID 2 : IF （HP<20）

THEN （ケアル）ID 3 : IF （パワー発見）

http://gomibako.symphonic-net.com/vote.cgi?genre=act_b&rating=9

THEN （パワーゲット）

THEN （パワーゲット）

The Sims 3 における応用

街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。
たくさんのＡＩを「人間らしく」制御しなければならない。
特徴付けにプロダクションルールを採用。

Sims3 における応用
あらゆる相互作用を考慮注目するエージェントの行動範囲だけを考慮

Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The

Sims3 における応用
データドリブンなプロダクション・ルール

プロダクションルール

Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The

Sims3 における応用
データドリブンなプロダクション・ルール

プロダクションルール

プロダクションルールは種類によってランク付けされていて、最もランクの高いルールが発火する。
ルールが発火すると他のSimは、その特性を理解する。

知能のモデル化.3

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

タスクベースAI
タスク（＝仕事）を単位として構築する方法

タスク（＝仕事）の表現は様々なだが、具体的な仕事の内容を示したものでなければならない。

(単純な場合)

初期状態

Task2
Task3
Task１
Carry A to Ground Carry B to Ground Carry C on B

Task3
Carry A on C
B

A
B
C

ゴール

B
C

A

C

A

B

A

C

C

B

A

単純なタスクベースのシステムは機能するし、使われることも多い。しかし、近年の複雑なゲームのＡＩではよりマルチな時間・空間スケールに対応する必要があり、階層型タスクネットワーク（HTN, Hierarchical Task Network）が使用される。

Killzone 2 のAI
Based on: Alex Champandard, Tim Verweij, Remco Straatman, "Killzone 2 Multiplayer Bots",
http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf

Killzone 2 AI (マルチプレイヤーモード)
On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/(1) Killzone 2 のAI思考(2) Killzone 2 のマップ自動解析

Killzone 2 Screen

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 AI (マルチプレイヤーモード)(1) Killzone 2 のAI思考(2) Killzone 2 のマップ自動解析

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone2 AI
集団のＡＩのコントロールの仕方を考える

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone2 AI

防衛、前進など戦術を指示

戦術の成功・失敗を報告（フィードバック）

ターゲット指示
指示の再発行要求

移動地点を指示
戦況を報告（フィードバック）

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

各ＡＩのアーキテクチャ

HTN Planner

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/HTN (Hierarchical Task Network)

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/HTN (Hierarchical Task Network)
Domain

MethodMethodMethodBranchBranchBranchBranchPrecondition

Precondition

Precondition

Precondition

Precondition

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task

Task を実行する順序などは決められている

Task

BranchTask
Task

HTN (Hierarchical Task Network)

Dana Nau et al., “SHOP2: An HTN Planning System”,
Journal of Artificial Intelligence Research 20 (2003) 379-404

HTN (Hierarchical Task Network)

Task はプラナーの規則によって整列される

Dana Nau et al., “SHOP2: An HTN Planning System”,
Journal of Artificial Intelligence Research 20 (2003) 379-404

HTN (Hierarchical Task Network)

Dana S. Nau,"Hierarchical Task Network Planning", Lecture slides for Automated Planning:
Theory and Practice http://www.cs.umd.edu/~nau/cmsc722/notes/chapter11.pdf

HTN (Hierarchical Task Network)

Task はプラナーの規則によって整列される

Dana S. Nau,"Hierarchical Task Network Planning", Lecture slides for Automated Planning:
Theory and Practice http://www.cs.umd.edu/~nau/cmsc722/notes/chapter11.pdf

HTN (Hierarchical Task Network)

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/HTN (Hierarchical Task Network)

Precondition
Task

Precondition
Task

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/HTN (Hierarchical Task Network)
各AIの思考On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/分岐(Branch)
分岐(Branch)
分岐リスト

TaskList

分岐リスト

TaskList

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Squad AI アーキテクチャ
On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone2におけるHTN統計
On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

各ＡＩのアーキテクチャ
On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/HTN Planner

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

兵士へ命令スカッドを目的に応じて動的に構成

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone2

スカッドを目的に応じて動的に構成

http://www.bungie.net/Inside/publications.aspx

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone2

スカッドを目的に応じて動的に構成

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

スカッドを目的に応じて動的に構成
攻撃対象、護衛対象はゲーム内で動的に決定対象が決まれば対象からの距離など
からスカッドを形成。
或いは、既にあるスカッドに対象を割り当てる。

最初から決まっている
最初から決まっているOn the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 AI (マルチプレイヤーモード)(1) Killzone 2 の AI思考
(2) Killzone 2 のマップ自動解析

マップ
ＡＩの基本原則：異なる目的に、異なるデータ表現を作成する
たとえ、同じ対象物であっても、ＡＩの行動用途に応じてデータ表現を作れ。

戦術思考

戦略思考

ウェイポイント

特に、マップに関してはを「データ階層化」しておくこと（世界表現）

Killzoneにおけるマップ
ＡＩの基本原則：異なる目的に、異なるデータ表現を作成する
たとえ、同じ対象物であっても、ＡＩの行動用途に応じてデータ表現を作れ。

戦術思考

戦略思考

ウェイポイント

特に、マップに関してはを「データ階層化」しておくこと（世界表現）戦略グラフを作りたい
On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 のウェイポイント

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/ウェイポイントをクラスター化
サイズと含むウェイポイント数を決めてなるべく正方形になるように形成

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

戦略グラフOn the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

戦略グラフ
各エリア間で接するポイントをピックアップして結ぶ

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

戦略グラフOn the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

何に使うのか？ グローバルな戦況判断

影響マップの方法 <解説>

Influence Map(影響マップ)
セル分割されたマップに、問題とする性質の評価値を記録して行く方法（例）①占有度

0,2

0,4

0,6

0,4

0,2

0,0

0,4

0,6

0,8

0,6

0,4

0,2

0,6

0,8

1,0

0,8

0,6

0,4

0,4

0,6

0,8

0,6

0,4

0,2

0,2

0,4

0,6

0,4

0,2

0,0

0,0

0,2

0,4

0,2

0,0

0,0

http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt

Influence Map(影響マップ)
セル分割されたマップに、問題とする性質の評価値を記録して行く方法（例）①占有度② 通過可能確率

0,2

0,4

0,6

0,4

0,2

0,0

0,4

0,6

0,8

0,6

0,4

0,2

0,6

0,8

1,0

0,8

0,6

0,4

0,4

0,6

0,8

0,6

0,4

0,2

0,2

0,4

0,6

0,4

0,2

0,0

0,0

0,2

0,4

0,2

0,0

0,0

http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt

Influence Map(影響マップ)（例）様々なIMから計算して戦略的な位置取りを計算する

4

6

8

4

6

8

4

6

4

6

2

8

8

6

4

2

0

-1

-2

-4

8

8

8

4

2

1

0

-2

-4

8

8

8

6

3

1

0

-2

-4

8

8

8

6

6

4

1

0

-2

4

6

8

6

6

4

1

2

4

6

6

4

2

2

3

3

3

3

4

2

2

0

3

2

2

2

3

8

-4

-4

-2

-4

-2

-4

-2

-4

-4

-2

4
0
-1
-2
0,50
0,75
0,2 0,75
0,4
0,6
-4
-5
-3
-3

-4
1,00
0,4
-4

-4
-4 -2
0,75
0,50
0,2
0,0
-4
-2 -1

0

-4
-5
-5 1,00-8
0,75
0,4 1,00
0,6
0,8
-2 -4
-8
-10

-8
1,00
0,6
-10

-6
-4 0,50-2
0,75
0,4
0,2
-8
-4 -2

-10 0,75-8
1,00
0,8-10 0,75
1,0
0,8

-80,6 -4 0,25
0,50
0,4-2

-4

3

3

3

2

2

1

0

-4 0,75
-80,6

2

2

2

2

1

1

0

-3

-10

-8

1

1

1

1

0

0

-2

0,6 -8 0,75
0,8
-4 0,75-80,4 -81,00
-8

0,50
0,6
-8

0,25
0,2-8
-80,4 -8 0,00

0

0

0

0

0

-1

-1

-2

0

0

0

0

-1

-2

-2

-5
-6
-6
-6
0,75
1,00
0,75
-2 -40,2 -4 0,4 -4 0,6
-6

-8
0,50
0,4
-8

-8 -8
0,25
0,00
-80,2 -8 0,0-8

0

0

0

0

-1

-2

-2

0

0

0

0

-1

-2

-2

-2
-2
-2
-2
0,0 1,00
0,2
0,4
0,75
0,75
-2 -2
-2
-2
-2

-2
0,2
0,50
-2

-2
-2 -2
0,0
0,0
0,25
0,00
-2
-2 -2

0

0

0

0

-1

-1

-1

-1

-8

-1

-10

-1

-1

-1

-1

-8

-1

-4

-1

-2

-1

http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt

Age of Empire(AOE)における利用例
AOEはタイルベースのＲＴＳ（リアルタイムストラテジー）

マップは毎回、自動生成

Dave C. Pottinger，“Terrain Analysis in Realtime Strategy Games”，
http://zeniroy.springnote.com/pages/481669/attachments/212469“Terrain Analysis in Realtime Strategy Games(PPT)”，http://vr.kaist.ac.kr/courses/cs682/data/ssw.ppt

Age of Empire(AOE)における利用例①
金鉱発掘小屋の最適位置自動検出

Figure 3: Influence map around gold mines.

0.8 0.8 0.8-0.6 -0.6 -0.6

0.8 1.0 0.8-0.6 -1.0 -0.6

0.8 0.8 0.8-0.6 -0.6 -0.6

金鉱＝アトラクター(吸引源)

防壁＝デトラクター（排斥源）

ＡＩに金鉱の発掘小屋を適切な位置に置かせるには？
＝ 金鉱に近いが、近すぎてはいけないところに置く

金鉱の回りのタイル（仮想的）防壁を置いて、近すぎも遠すぎもしない点に最高点のタイルが来るようにする＝ 自動位置検出
Dave C. Pottinger，“Terrain Analysis in Realtime Strategy Games”，
http://zeniroy.springnote.com/pages/481669/attachments/212469

Age of Empire(AOE)における利用例②兵隊の配置の最適位置自動検出

0.8 0.8 0.8-0.6 -0.6 -0.6

0.8 1.0 0.8-0.6 -1.0 -0.6

0.8 0.8 0.8-0.6 -0.6 -0.6

高い場所＝アトラクター(吸引源)

家がある場所＝デトラクター（排斥源）

兵士を街からなるべく遠く、高台の場所に置かせたい＝ 高い場所(アトラクター)、家がある（デトラクター）とする
Dave C. Pottinger，“Terrain Analysis in Realtime Strategy Games”，
http://zeniroy.springnote.com/pages/481669/attachments/212469“Terrain Analysis in Realtime Strategy Games(PPT)”，http://vr.kaist.ac.kr/courses/cs682/data/ssw.ppt

Age of Empire(AOE)における利用例③
兵隊の配置の最適位置自動検出-0.6 -0.6 -0.6
-0.6 -1.0 -0.6
-0.6 -0.6 -0.6

既知の敵のビル、以前通ったルート ＝ デトラクタ（排斥源）
この排斥源が与えるコストをパス検索のコストとすると、「なるべく遠ったことにない敵の基地からみつかりにくいパス」
を見つけることが出来る。
Dave C. Pottinger，“Terrain Analysis in Realtime Strategy Games”，
http://zeniroy.springnote.com/pages/481669/attachments/212469“Terrain Analysis in Realtime Strategy Games(PPT)”，http://vr.kaist.ac.kr/courses/cs682/data/ssw.ppt

SimCity における影響マップの利用
第一層
道路や鉄道、 要素の大きさ要
素間の関係をシミュレーション
第二層「人口密度」「交通渋滞」「環境汚染度」「 ランドバリュ ー」「犯罪発生率」 をシミュ レーション

第三層
地形の影響をシミュレーション

第四層「人口増加率」「消防署」「警察署」「 消防署の影響」「警察署の影響」 をシミュレーション

Crime = Pop. Density^2 - Land Value - Police EffectLand Value = Distance[Zonetype] + Terrain + Transport“AI: A Desing Perspective” AIIDE 2005
http://www.aiide.org/aiide2005/talks/index.html
http://thesims.ea.com/us/will/

多摩 豊,角川書店, 1990
「ウィル・ライトが明かすシムシティーのすべて」,

影響マップの方法 <解説>終わり

Killzone 2 における影響マップ
ボット、砲塔、死亡ポイントの情報を反映させる
さまざまな意思決定に用いるOn the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出すKillzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出すKillzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す

危険

安全Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す

On the AI Strategy for KILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/

Killzone 2 AIのまとめ(1) 各ＡＩ、スカッドＡＩに階層型タスクネットワークプラナー（HTN Planner） を導入した。
(2) 戦略マップを自動生成した（マップを階層化した）。
(3) 戦略マップ上に影響マップの方法を導入して、スカッドの戦略思考、戦略的パス検索を導入した。

References(1) AI Summit '10: Slides, Notes, Highlights and Photos
http://aigamedev.com/open/coverage/gdc10-slides-highlights/#session1(2) On the AI Strategy for KILLZONE 2's Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/(3) Killzone 2 Multiplayer Bots
http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf(4)Maria Cutumisu, Duane Szafron, "An Architecture for Game Behavior AI: Behavior Multi-Queues",
http://webdocs.cs.ualberta.ca/~duane/publications/pdf/2009aiideMC.pdf(5)
Kutluhan Erol. James Hendler. Dana S. Nau., "HTN Planning: Complexity and Expressivity.",
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.57.6003&rep=rep1&type=ps(6)Dana S. Nau,"Hierarchical Task Network Planning", Lecture slides for Automated Planning:
Theory and Practice
http://www.cs.umd.edu/~nau/cmsc722/notes/chapter11.pdf

知能のモデル化.4

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

ゴールベースAI (Goal-Based AI)
ゴール（目標）を単位として構築する方法
ゴール・ファースト＝まずゴールを決める。
しかるのちにゴールを達成するための行動をデザインする。

ゴール

ゴールを達成するために必要なことを考える思考

行動クロムハウンズにおけるプランニング
戦略、戦術から、局所的戦闘までの幅広い戦いができる必要がある

階層型ゴール指向型プランニング132

階層型ゴール指向型プランニングとは？

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎）
http://cedil.cesa.or.jp/session/detail/50

133

一つのゴールはより小さなゴールから組み立てられる
Goal

Goal

Goal

Goal

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎）
http://cedil.cesa.or.jp/session/detail/50

134ゴールはより小さなゴールから組み立てられる
Goal

Goal

Goal

Goal

Goal

Goal

Goal

Goal

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎）
http://cedil.cesa.or.jp/session/detail/50

Goal

135

ゴール指向型プランニングの考え方
映画を見たい映画館に行く映画館は新宿だ

新宿駅に行く晴れなら新宿駅へ歩く雤なら電車で新宿へ
駅まで歩く

電車に乗る

映画館まで歩く
映画を見る
136

クロムハウンズにおけるゴール指向型プランニング
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

通信塔を
見つける
通信塔
へ行く

パスを見つける

撃つ

パスに沿って
移動する

通信塔を
占領する
通信塔
を占拠

通信塔の
周囲に
１0秒間いる

戦術、振る舞い

歩く
止まる

操作

ハウンズ
137

クロムハウンズにおける
リアルタイムゴール指向型プランニング
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

敵が
来
た！
通信塔を
占領する

通信塔を
見つける
敵と戦う
パスを見つける
通信塔
へ行く
通信塔
を占拠

戦略

Seek

撃つ

パスに沿って
Shot
移動する

歩く

Walk

通信塔の
Stop
周囲に
１0秒間いる

戦術、振る舞い

止まる

操作

ハウンズ
138

クロムハウンズにおける
リアルタイムゴール指向型プランニング
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

敵を倒し
た！

Clear!

通信塔を
見つける
通信塔
へ行く

パスを見つける

撃つ

パスに沿って
移動する

通信塔を
占領する
通信塔
を占拠

通信塔の
周囲に
１0秒間いる

戦術、振る舞い

歩く
止まる

操作

ハウンズ
139

ゴール指向型プランニングによって敵本拠地へ進行しつつ敵の攻撃に対処する様子をご覧下さい。

思考がその場で状況に応じて生成（インスタンス）される

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

140Conquer_Combas_TeamAI.avi

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

141リアルタイムゴール指向型プランニングによって状況に即応しつつ長期的戦略を実行するデモ

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

142

Interuption2.avi

CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

143リアルタイムゴール指向型プランニングによって状況に即応しつつ長期的戦略を実行するデモ

このようにして、一つ一つの戦略を実装して行く。

では、実際に、誰が、どのようにして作って行くのか？
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

144ゴール指向型AIの開発工程（パターンランゲージによる漸近的成長）
Program

戦略層
敵を叩く

通信塔
占拠

味方を
守る

パスをたどる

攻撃する

周囲を監視
しつつ待機

UML

仕様

戦術層

振る舞い層
２点間を移動

前進しながら戦う

その場で静止

ゲーム
テスト
（８０回）

問題点を
パターンと
して抽出

操作層
歩く

撃つ

止まる
145

プログラマーのための実装工程

ゴール指向型プログラム構造（入れ子構造）インスタンスClass GoalClass Goal

クリア条件＋
Activate()
Process()
Terminate()

クリア条件＋
Activate()
Process()
Terminate()

Activate … 初期セッティング

Process …
了処理

アクティブな間の行動Terminate … 終（関数の内容を全てスクリプトで記述）
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

Class Goal
クリア条件＋
Activate()
Process()
Terminate()

Class Goal
クリア条件＋
Activate()
Process()
Terminate()

インスタンス146

最終的なゴール総合図
CEDEC2006「クロムハウンズにおける人工知能開発から見るゲームAIの展望」（三宅陽一郎） http://cedil.cesa.or.jp/session/detail/50

戦略層
敵を叩く

通信塔
占拠

味方を 本拠地 敵本拠地
守る
防衛
破壊

近付く

攻撃
する

味方を
助ける

巡回 敵基地
する
偵察

戦術層
パスを
たどる

ある地点へ
行く

合流
する

巡回
する

逃げる

振る舞い層
２点間を
移動

歩く、一度
止まる、歩く

静止
する

後退
する

前進
する

敵側面
へ移動

操作層
歩く

撃つ

止まる
147

知能のモデル化.5

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

ビヘイビアベイスAI (Behavior-Based AI)
ビヘイビア（振る舞い）によって知能を記述する方法ビヘイビアは具体的な身体運動の仕方を定義するものでなくてはならない。
ビヘイビア

何らかの意思決定

ビヘイビア

ビヘイビア

ビヘイビアビヘイビア＝
AIに何かをさせるために、一時的にアクターをコントロールするプログラムのこと。
ビヘイビア＝時間をまたぐアクション:• ポイントへ移動• 向く• 撃つ• しゃがむ• 会話する• アクションをトリガーする

e.g.,• Fight• Vehicle entry• Throw grenade• Find cover• Cover friend• Check body
• Wake up a sleeping grunt• Etc.
Halo2: ~130 in total

ビヘイビアは行動妥当性と行動時間を持つ。
Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

ビヘイビアビヘイビア＝
AIに何かをさせるために、一時的にアクターをコントロールするプログラムのこと。
ビヘイビア＝時間をまたぐアクション:• ポイントへ移動• 向く• 撃つ• しゃがむ• 会話する• アクションをトリガーする

World

e.g.,
• Perception
Fight & Knowledge Model• Vehicle entry• Throw
grenadeTargetSelection• Find cover• Cover friend• Check body
• Wake up a sleeping grunt• Etc. Behavior
Halo2: ~130 in total

ビヘイビアは行動妥当性と行動時間を持つ。
Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

LookingAiming /Shooting

MovingTalking

Animation, Physics, Sound

The Combat Cycle

SearchIdle

CombatSelfpreservation

Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

Flight意志決定
ビヘイビアツリー

Retreat(or DAG =方向性を持った非循環グラフ)

Flee

Cover
Self-preservation
Guard

Grenade

良い点
•
•
•

直感的
モジュール型
スケーラブル

Vehicle strafe
ChargeRoot

Melee
Vehicle fightEngage

悪い点•••

あまりシンプルではない
デバッグが困難
メモリを取る
Idle

Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

Fight

Presearch

Search

Uncover

Guard

Investigate

Guard意志決定ルーチン• 親が決めるChild 1Child 2
Parent• 子が競合する

Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html?

Child 3

Child 4

決定ルーチンDamian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

子ノード競合戦略• アナログな決定法• バイナリーな決定法– 優先度リスト (root , Engage)– シーケンシャル– シーケンシャル・ルーピング(search)– ランダム– ワン・オフ・ランダム (postcombat)

Child 1Child 2
Parent?

デザイン原則 #1 :A,B,Cが与えられたら,常にDを選ぶ (全体の中で)Child 3

Child 4

ノード選択の原理

親ノードが子ノードを選ぶ

Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005
http://naimadgames.com/publications.html

子ノード層がノードを選ぶ(子ノード同士が争う子ノード競合モデル
child-competitive decision model )Halo2

子ノード競合モデル

実数による評価値システム

バイナリーテスト & 選択アルゴリズム

Chrome Hounds

長所：状況を評価できる。欠点：評価式が複雑

Halo2

評価関数によって、行動がその状況で実行できるかだけを判断し、実行可能な行動の実行順序をアルゴリズムが決定

バイナリーテスト…車に乗っている、いないか、
敵をみつけているか、いないか複数の条件判定からなる。

ノードの実行スキーム（アルゴリズム）
Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html

どのスキームを選ぶかは、親ノードの種類によって決定されている。
① 優先度リスト法
root② シークエンス法

engage

あらかじめノードの優先度（プライオリティ）を決めて、実行可能(active)なノードのうち最も優先度の高いノードを実行する。実行中のノードより高い優持つノードがactiveになったときには、
インタラプトすることができる。

③ シークエンシャル・ルーピング法

あらかじめノードの実行順序を決めておいて、実行可能なノードをその順番に従って実行する④ 確率的方法

search
基本は②と同じだが、終端まで行くと、
もう一度実行する。

ランダムに選ぶ

ノードの実行スキーム（アルゴリズム）⑤ オン-オフ法

postcombat
ランダム、或いは優先リスト法によって選ぶが、一度選んだものを選び直さない

実行順序を定義 ＝振る舞いの順序を規定できる。
振る舞いの順序（常識）を規定できる。

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

知能のモデル化.６

ルール（規則）ベースAI
Rule-based AI

ステート（状態）ベースAI
State-based AI

知能

ビヘイビア（振る舞い）ベースAI
Behavior-based AI

ゴール（目標）ベースAI
Goal-based AI

タスク（仕事）ベース AI
Task-based AI

ユーティリティ（効用）ベース AI
Utility-based AI… based AI

効用ベースの意志決定
Utility-based AI
このように効用によって意思決定を行うAI のことを、 効用を基本とするAI （Utility-based AI）という。

Sims3 における応用

街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。
たくさんのＡＩを「人間らしく」制御しなければならない。
特徴付けにプロダクションルールを採用。

The Sims の最初の目標
エージェントが社会生活を営みながら、
インタラクションする社会を作りたい。
どうすればよいか？

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込みThe Sims の最初の目標
エージェントが社会生活を営みながら、
インタラクションする社会を作りたい。
どうすればよいか？

(1) 自律的に生活を営む(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込み(1) 自律的に生活を営むＡＩを作る

自律型ＡＩの作り方

三宅陽一郎、「これからのゲームＡＩの作り方」 （GDC2009報告会）
http://www.digrajapan.org/modules/mydownloads/images/study/20090411.pdf

自律型ＡＩの作り方

知性
（心）

身体

ハングリー度（Ｈ）

If (H(t) > 0.5)
goto GetFood

時間（ｔ）

ハングリー度が０．５を超えたら餌を取りに行く。

Ｈ(t)＝sin(1/24*t)

自律型ＡＩの作り方
知性
（心）

身体
ハングリー度（Ｈ）

If (H(t) > 0.5)
goto GetFood
Else
Sleep

Ｈ(t)＝sin(1/24*t)
時間（ｔ）

１日

食べ物

自律型ＡＩの作り方（個性付け）
お腹の減りにくいＡＩとなる。

知性
（心）

身体
ハングリー度（Ｈ）

If (0.8*H(t) > 0.5)
goto GetFood
Else
Sleep

Ｈ(t)＝sin(1/24*t)
時間（ｔ）

１日

食べ物

自律型ＡＩの作り方
知性
（心）

身体
眠りたい度（Ｈ）

ハングリー度（Ｈ）

If (H(t) > 0.8 && S(t) < 0.1)
goto GetFood
Else If (H(t) < 0.3 && S(t) > 0.7)
goto Sleep
Else
Free_Walk

Ｓ(t)＝sin(1/48*t)

Ｈ(t)＝sin(1/24*t)
時間（ｔ）

１日

＋
１日

食べ物
寝床

自律型ＡＩの作り方(個性づけ)
知性
（心）

身体
眠りたい度（Ｈ）

ハングリー度（Ｈ）

If (0.5*H(t) > 0.8 && S(t) < 0.1)
goto GetFood
Else If (H(t) < 0.3 && 1.5*S(t) > 0.7)
goto Sleep
Else
Free_Walk
お腹の減りにくく、あまり眠らないＡＩとなる。

Ｓ(t)＝sin(1/48*t)

Ｈ(t)＝sin(1/24*t)
時間（ｔ）

１日

＋
１日

食べ物
寝床

自律型ＡＩの作り方（＋環境）

知性
（心）

身体

環境

自律型ＡＩの作り方
知性（心）

ハングリー度（Ｈ）
If (H(t) > 0.8 && S(t) < 0.1)
goto GetFood
Else If (H(t) < 0.3 && S(t) > 0.7)
goto Sleep
Else If( (1-H(t))*D(t) < 0.9)
Goto Fight
Else
Free_Walk

敵

環境

身体
眠りたい度（Ｈ）

Ｈ(t)＝sin(1/24*t)

危険度（Ｄ）

Ｓ(t)＝sin(1/48*t)

＋
１日

＋
１日

寝床

D(t)＝ 1/敵との距離

１日

食べ物

Mat Bucklandの自律型エージェントのデモ目標を持ち、目標ごとに内部状態に応じて変動する関数を持つ① 攻撃する② 移動する③ 回復アイテムを取る④ 武器を取る…
意思決定：全てのゴールのうち、最大値を持つゴールを選択して行動する。

デモ

（例）③
H(t) = 0.8 * ((1– 現在のＨＰ）/回復アイテムまでの距離)

オライリー・ジャパン「実例で学ぶゲームＡＩプログラミング」（Mat Buckland著、松田晃一訳）
http://www.oreilly.co.jp/books/9784873113395/

こういったデモに３Ｄモデルを被せると…
① Chromehounds (Fromsoftware, Xbox360,2006)

ゲームＡＩ連続セミナー第３回「Chrome HoundsにおけるチームＡＩ」
http://www.geocities.jp/mnagaku2000/igda/gate.html?gameai3.zipBreaking
the Cookie-Cutter:
Modeling Individual
Personality,
Mood, and Emotion
in Characters

こういったデモに３Ｄモデルを被せると…
② The Sims 3 (Maxis, EA)

ムービー
Trait … 特性。性格パラメーター
Wish … 将来の目標
Sims Getting Smarter: AI in The Sims 3(IGN)
http://pc.ign.com/articles/961/961065p1.html

GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter自律型ＡＩのコアの作り方① ＡＩの内部変数として、時間的に自律変化する変数（＝関数）をセットする。
② その変数値（と外部環境の変数を結び付けながら）、異なる行動を取るようにプログラムを書く。
③

そういった変数を複数増やして、組み合わせることで、複雑な 内部構造を持つＡＩを作ることが出来る。

[参考] ゴール指向ＡＩ， ＢＤＩアーキテクチャ

The Sims のＡＩの原理
Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
三宅陽一郎、「Spore におけるゲームＡＩ技術とプロシージャル」 （DiGRA Japan 第１４回 月例研究
http://www.digrajapan.org/modules/mydownloads/images/study/20080704.pdf

The Sims シリーズのＡＩの作り方
Meta

Peer
Sub

Meta
Peer
Sub

[原則] 周囲の対象に対する、あらゆる可能な行動から、
ムード（幸せ） 係数を最大化する行動を選択する。
Sims (not under direct player control) choose what to do by selecting, from all of thepossible behaviors in all of the objects, the behavior that maximizes their current
happiness.

人をダイナミクス（力学系、動的な数値の仕組み ）として動かす。
世界を動かす PeerAI(=キャラクターＡＩ) を構築。

オブジェクトに仕込むデータ構造
Data (Class, Sate)

パラメーターGraphics (sprites, zbuffers)
Animations (skeletal)

グラフィックス
アニメーション

Sound Effects
Code (Edith)-Main (object thread)-External 1-External 2-External 3

サウンド
メインスレッド
いろいろなインタラクションの仕方

Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

ＮＰＣに仕込むデータ構造

Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm

最適な行動を選択する
ToiletMood +26-Urinate (+40 Bladder)-Clean (+30 Room)-Unclog (+40 Room)
Hunger +20
Comfort -12
Hygiene -30
Bladder -75
Energy +80
Fun+40
Social +10
Room -60

Bathtub

Mood +20-Take Bath(+40 Hygiene)(+30 Comfort)-Clean(+20 Room)

Mood +18[原則] 周囲の対象に対する、あらゆる可能な行動から、
Happiness （ここではMood） 係数を最大化する行動を選択する。

Moodの計算のためのウエイト(ウエイト＝Moodへどれぐらい貢献するか)

w_

w_

w_

w_

w_

w_

w_

=

Mood (-100..+100)w_

Mood = W_Hunger(X_Hunger) * X_Hunger + W_Engergy(X_Energy) * X_Energy + …

効用(Utility)の計算の仕方

W_Hunger(-80)

X_Hunger

W_Hunger(60)60-80
W_Hunger関数

効用(Utility)の計算の仕方

W_Hunger(-80)

X_Hunger

W_Hunger(60)60-80
W_Hunger関数-80の時の食事欲求 ＝ W_Hunger(-80)*(-80)
60の時の食事欲求 ＝ W_Hunger(60)*(60)Δ（変化分）＝W_Hunger(60)*(60) - W_Hunger(-80)*(-80)

効用(Utility)の計算の仕方
効用
W_Hunger(-80)

X_Hunger

W_Hunger(60)60-80
W_Hunger関数

効用-80の時の食事欲求 ＝ W_Hunger(-80)*(-80)
60の時の食事欲求 ＝ W_Hunger(60)*(60)Δ（変化分）＝W_Hunger(60)*(60) - W_Hunger(-80)*(-80)

限界効用逓減の法則
ビールは一杯目が一番おいしい
効用
W_Hunger(-80)
W_Hunger(60)
W_Hunger(90)

X_Hunger

60 90-80
Δ（-80 → 60）＝W_Hunger(60)*(60) - W_Hunger(-80)*(-80)Δ(60→90） ＝W_Hunger(90)*(80) - W_Hunger(90)*(60)Δ（-80 → 60） の方が Δ(60→90） より圧倒的に大きい

ある程度満たされたものを満たすより、
満たされないものをある程度満たす方が大きな満足をもたらす

The Sims 3 では、多くのムードや欲求が準備される。

行動

対象

GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter

物と欲求の相互作用マップ
Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The

動機
パラメーター

インタラク
ション

マップから満たしたい動機パラメーターに関係した

インラクションだけをピックアップできる特定の欲求は自動的に充足

Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The

特定の動機パラメーターからの影響を軽減

Mood を最大化

冷蔵庫が最も総合的にMoodを上昇させるから

Mood を最大化

冷蔵庫へ行きます。

Mood を最大化

お腹が膨れたので、ちょっと退屈だから、女の子と話します。

第４部 まとめ：考察知性とは何か≒世界とは何か？
知能の性質＝知性

世界の性質＝物理

物理と知性は相対的な関係にある。
知性は物理の影響を受けて形成される。

知性とは何か≒世界とは何か？
知能の性質＝人工知能

ゲーム世界の性質＝物理＋ゲーム法則

知性の構造はゲーム世界の構造に対して相対的に決まる。

人工知能は世界を映す鏡
人工知能は世界を映す鏡

ただし、ただの鏡ではない。

世界を主観的に写し取る鏡。

自分の生存戦略に応じて積極的に情報を奪い取る鏡。

知性とは何か≒世界とは何か？

ゲーム世界の性質＝物理＋ゲーム法則

感覚は決して受動的なものではなくて、むしろ、積極的に、世界を自分のために切り取って「認識」する。

まとめ(1) 人工知能は現実を映す鏡。
(2) 人工知能は現実を解釈する手段を持つ。
それは世界の表現である。

(3) 人工知能は受動的ではなく、積極的に現実のモデルを獲得しようとする。