「次世代デジタルゲームにおける人工知能の研究課題について 」
三宅 陽一郎y.m.4160@gmail.com
http://www.facebook.com/youichiro.miyake
全講演資料・論文集：
http://blogai.igda.jp/article/57135465.html
Twitter: @miyayou#gpw2012
2012.11.10 @箱根セミナーハウス

感謝と自己紹介
Thanks to all attendees and special thanks to,
Kazuki Yosizoe, Takeshi Ito and Hitoshi Matsubara.
•

１９７５年生まれ•

自己紹介
2007-Present
2008-Present
2011-Present•

国際ゲーム開発者協会 日本支部 SIG-AI チェア（ IGDA JAPAN SIG-AI)
日本デジタルゲーム学会（DiGRA JAPAN）研究委員
CEDEC （日本ゲームカンファレンス）委員

所属学会

人工知能学会、AAAI, IEEE CIS, ACM, 日本デジタルゲーム学会（DiGRA JAPAN）- 情報処理学会 EC研究会 委員→アドバイザー（何もしなかった）- ACM マルティメディア国際学会 委員（何もしなかった）- 情報処理学会 AIコンテスト SamurAI Coding 委員 （これから頑張ります）- IEEE WCCI 2014 (Computational Intelligence 国際会議) 委員 （これから頑張ります）- DCEXPO 委員（ちょっと頑張った）学歴？

京都大学（数学）

大阪大学（原子核実験物理）

東京大学（エネルギー工学/人工知能）

高エネルギー加速器研究所（半年ぐらい。修士論文）
http://www.facebook.com/youichiro.miyake

Works (2004-2012)
Chrome Hounds
Demon’s Souls
PokaPoka Airu Village
ARMORED CORE V…
AI for Game Titles
Booksゲーム開発者（＝三宅）は何を考えてゲームを作っているか？
• ゲームを作って人のために役立つことが僕たちの使命だ。
• 電気やガスやエスカレーターみたいに、直接役立つって難しいけど、ゲームが美しいビジョンを伝えたり、嫌なことを吸収してあげたりして、人の心の状態を綺麗に保つことで、社会をよくしているのだと信じている。

ゲーム開発者（＝三宅）は何を考えてゲームを作っているか？
• ゲームに命を吹き込みたい。
• エンジニアとしてはゲームに命を吹き込む方法
をクリエーターに提供したい。
• AIエンジニアとしては、キャラクターに命を吹き込みたい。
ということで、今回は、キャラクターAIに命を吹き込む技術、ゲームに命を吹き込む技術を解説して行きます。

将棋（テーブルゲーム）AIとアクションゲームAIの違い（お互いの立場を理解しましょう）
将棋

アクションゲーム

ゲーム

既にある。
（AIはゲームの外にある。
将棋の中にAIは含まれない）

開発当初はゲームがない（ゲームと一緒にAIを作る＝AIはゲームの一部）

ステージ（空間）

盤の目・離散的

三次元地形・連続時間

ターン

連続時間（リアルタイム）

登場人物

駒

キャラクター/モンスターAI

将棋の差し手としてのAI

キャラクターのブレイン/
ゲーム全体の操作するAI（メタAI）

ゲーム表現

ゲームツリー

？

状況

離散的変化

連続的変化

目的

勝利

楽しませる。ステージを成立させる。

ゲームのつながり

厳密にすべての手がつながって 一定時間、一定区間で区切れる。ラ
いない（ツリー検索が有効）
ンダムな要素も。（１～５秒間の判断）

何を作るか？

賢いAI, 面白いAI

ユーザーの主観的体験（UX） AIそのものが目的ではない。

ゲーム開発者（＝三宅）は何を考えてゲームを作っているか？
• キャラクターに命を吹き込むことは、ゲームに命を吹き込むことでもある。
ということで、今回は、キャラクターAIに命を吹き込む技術、ゲームに命を吹き込む技術を解説して行きます。

キャラクター自身が、世界の中で認識し、判断し、行動する。
自律型AI

「次世代デジタルゲームにおける人工知能の２３個の研究課題について 」※詳細はプロシーディングスをご覧ください。
http://igda.sakura.ne.jp/sblo_files/ai-igdajp/academic/YMiyake_GPW_Proceeding_2012_11.pdf

① キャラクター・ナビゲーションのための世界表現② 知識表現の問題③ アフォーダンス④ 物理を理解する⑤ エージェント・アーキテクチャの設計⑥ インフォメーション・フロー⑦ 意思決定アルゴリズム⑧ プランニング⑨ 記憶の動的構造・静的構造
⑩ 感情
⑪ 学習

⑫ アニメーションと人工知能（意思決定）部分の接合⑬ コミュニケーション⑭ 協調の仕組み⑮ マルチエージェント～群知能⑯ エージェントによる創作⑰ ソーシャルAI⑱ 意識モデル⑲ チューリングテスト(20) ストーリー・ジェネレーション(21) プロシージャル・コンテンツ・ジェネレーション(22) メタAI(23) ソーシャルゲームにおけるAI

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第一部
キャラクターに世界を理解させたい① キャラクター・ナビゲーションのための世界表現② 知識表現の問題③ アフォーダンス④ 物理を理解するキャラクターに世界を理解させたい。

デモ（Halo2）







Genre：SciFi-FPS
Developer： BUNGIE Studio
Publisher : Microsoft
Hardware: Xbox, Windows, Mac
Year： 2004
Halo AI Retrospective: 8 Years of Work on 30 Seconds of Fun
Author: Damian Isla (AI Engineering Lead)
http://www.bungie.net/Inside/publications.aspx

知性を豊かにするには？
知識表現・世界表現の技術

世界の情報をより深くマルチな時間・空間スケールで集める。
＝根本的にインフォメーション・フローを太く大きな流れにする。

それも必要だけど、思考＝推論は情報を抽出する機能。

思考を複雑にする？

知性を豊かにするには、どうすればいいだろう？

知識表現・世界表現
WORLD
仮想世界の知性＝人工知能

人工知能は生物のように世界をそのまま認識・解釈できるだろうか？

知識表現
（KR）

WORLD

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

AIが世界(物・事・空間など)を解釈できるように、世界をうまく情報表現する＝ 知識表現 (KR、Knowledge Representation)

知識表現 (F.E.A.R.(2004年)における例)
統一事実表現（WMF, Working Memory Fact）

In F.E.A.R.

値
情報の信頼度

Jeff Orkin, "Three States and a Plan: The A.I. Of F.E.A.R(GDC2006)(Document,PPT,Movie)", 2006 http://www.jorkin.com/gdc2006_orkin_jeff_fear.zip知識表現 (F.E.A.R.(2004年)における例)
統一事実表現（WMF, Working Memory Fact）

In F.E.A.R.

知識表現
知識表現の多様さは知性（AI）に柔軟性を与え、その豊富さは高い知性を作る足場を与える。

すべてを表現して持っておく必要はない。
AIが必要とする知識表現を持っておけばおくほどよい。

同じ物、同じマップに対しても複数の表現を持てば持つほどよい。

「物（オブジェクト）」の数ではない。AIが解釈するべき事実の数だけある。

知識表現はいくつあるのだろう？

いろいろな知識表現
依存グラフ

意味ネットワーク

ルールベース表現

世界表現

敵表現リスト

事実表現（信頼度表現）

Griesemer,J, "The Illusion of Intelligence: The Integration of AI and Level Design in Halo", 2002
http://www.bungie.net/images/Inside/publications/presentations/publicationsdes/design/gdc02_jaime_griesemer.pdf

世界表現（知識表現の一つ）
マップ全体に関わる知識表現（ウェイポイント、ナビメッシュを基本とする表現）
World Representation （WR）
Location-based Information System ともいう。

（例） ８方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone)
Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005
http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf

Character Navigation
Moving Character in the Environment







Genre：FPS
Developer： TURTLEROCK STUDIO
Publisher :Hardware: PC
Year：知識表現・世界表現
知識表現
世界表現

いろいろな世界表現
敵配位マップ
LOS マップ

Left 4 Dead

Damian Isla,"Building a Better Battle: HALO 3 AI Objectives",
http://www.bungie.net/inside/publications.aspx

テリトリー表現

Killzone

Halo2

Tactical Point System

戦術マップクラスタリング

ナビメッシュ-ウェイポイント
階層表現

Halo

Killzone2

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment
Oct.8, 2011
Conference , http://www.valvesoftware.com/publications.html

Assassin’s Creed
Alex J. Champandard, Remco Straatman, Tim Verweij, "On the AI Strategy for KILLZONE 2's Bots”
25
http://aigamedev.com/open/coverage/killzone2/③ アフォーダンス

[CEDEC2011]
Namiki Kosuke, "Afforfance-oriented AI for PokaPoka Airu Village"
http://cedil.cesa.or.jp/session/detail/697［CEDEC 2011］AIに命を。「ぽかぽかアイルー村」のアフォーダンス指向によるAI事例と「ARMORED CORE V」の三次元的な移動経路検索（4gamers）
http://www.4gamer.net/games/100/G010022/20110906085/

④ 物理を理解する

世界をシミュレーションすることで、計算高い行動を創造する。
http://www.cgf-ai.com/docs/grenadehandling.pdf

① キャラクター・ナビゲーションのための世界表現② 知識表現の問題③ アフォーダンス④ 物理を理解するキャラクターに世界を理解させたい。
[課題]① 複雑な３次元地形形状からの世界表現データ自動生成。
② デジタルゲームのキャラクターのための知識表現には
どのような種類があり、どのように役に立つか、体系的なアプローチ。
③ 環境からのアフォーダンスの自動抽出。
④ キャラクターの予測能力の向上。

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第二部
世界とキャラクターの内面をつなぐ⑤ エージェント・アーキテクチャの設計⑥ インフォメーション・フロー
世界とキャラクターの内面をつなぐ。

エージェント・アーキテクチャー 時間
ＮＰＣの知能部分

ＮＰＣから見た認識

認識
過程

意思決定
機構

行動生成
過程

知識モデル化 記憶と思考の相互作用

記憶
センサー

エフェクター

内部状態

知覚する

行動する

知識表現・世界表現(ゲーム世界の特徴を抽出したデータのこと)

ゲーム世界

身体
相互作用

時間

C4 Architecture

MIT Media Lab.
Synthetic Characters Group
Researching Virtual Pet in Digital World.

D. Isla, R. Burke, M. Downie, B. Blumberg (2001).,“A Layered Brain Architecture for Synthetic Creatures”, http://characters.media.mit.edu/Papers/ijcai01.pdf

Halo Agent Architecture







Genre：SciFi-FPS
Developer： BUNGIE Studio
Publisher : Microsoft
Hardware: Xbox, Windows, Mac
Year： 2002
Jaime Griesemer(GDC 2002),The Illusion of Intelligence: The Integration of AI and Level Design in Halo
http://www.bungie.net/Inside/publications.aspx

F.E.A.R Agent ArchitectureWorld
Sensors
WorkingMemoryTargeting
Planner
Navigation







Genre：Horror FPS
Developer： Monolith Production
Publisher : SIERRA
Hardware: Windows
Year： 2004

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

Blackboard

エージェント・アーキテクチャー 時間
ＮＰＣの知能部分

ＮＰＣから見た認識

認識
過程

意思決定
機構

行動生成
過程

知識モデル化 記憶と思考の相互作用

記憶
センサー

エフェクター

内部状態

知覚する

行動する

知識表現・世界表現(ゲーム世界の特徴を抽出したデータのこと)

ゲーム世界

身体

インフォメーション・フロー
相互作用

時間

⑤ エージェント・アーキテクチャの設計⑥ インフォメーション・フロー
世界とキャラクターの内面をつなぐ。
[課題]④ エージェント・アーキテクチャの内部構造研究⑤ インフォメーション・フローから、世界と知能のさまざまな関係の仕方を導く。

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしい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

シミュレーションベースAI
Simulation-based AI「○○-based AI」とは、○○をAIを構築する基本単位（アトミック）として採用したＡＩということ。
これらは背反ではない。デジタルゲームの高度なＡＩの場合は組み合わされるのが普通。

※こちらにまとめてありますので、よろしければご覧ください。

特集3
はじめてのゲームAI ……三宅 陽一郎～意思を持つかのように行動するしくみ～
第1章：ゲームAIの基本原理
意思決定を行うための6つの型
第2章：ルールベースAI
複数の規則を組み合わせる
第3章：ステートベースAI
状態のネットワークで柔軟に思考を拡張する

第4章：ビヘイビアベースAI
迅速な行動のスイッチングを実現する
第5章：タスクベースAI
仕事を分解して効率的に振り分ける
第6章：ゴール指向AI
目標を達成するために突き進む
第7章：ユーティリティベースAI
現在の状況を把握して一番得する行動を選択する
http://gihyo.jp/magazine/wdpress/archive/2012/vol68
技術評論社 WEB+DB Vol.68 特集3「はじめてのゲームAI」 （三宅陽一郎） （P.87-120)

参考文献【タイトル】人工知能からゲームの未来を視る【内容】デジタルゲームの人工知能の６つの基本型を解説す
ると同時に、この学問が持つ最も基本的な部分を掘り起こす。
【日時】2011.10.28 東京大学
【ファイル名】YMiyake_TokyoUniv_2011_10_28.pdf【URL】http://igda.sakura.ne.jp/sblo_files/aiigdajp/academic/YMiyake_TokyoUniv_2011_10_28.pdf

⑦ プランニング

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

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

44

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

Goal

Goal

Goal

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

45

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

Goal

Goal

Goal

Goal

Goal

Goal

Goal

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

Goal

46

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

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

パスを見つける

撃つ

パスに沿って
移動する

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

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

戦術、振る舞い

歩く
止まる

操作

ハウンズ
47

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

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

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

戦略

Seek

撃つ

パスに沿って
Shot
移動する

歩く

Walk

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

戦術、振る舞い

止まる

操作

ハウンズ
48

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

敵を倒し
た！

Clear!

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

パスを見つける

撃つ

パスに沿って
移動する

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

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

戦術、振る舞い

歩く
止まる

操作

ハウンズ
49

Conquer_Combas_TeamAI.avi

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

50Interuption2.avi

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

51

⑧ 記憶の動的構造・静的構造







Genre：Horror FPS
Developer： Monolith Production
Publisher : SIERRA
Hardware: Windows
Year： 2004
Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005)
http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt

F.E.A.R のＣＯＭの感覚（センサー）
センサー ＝ 五感からの情報、及び、五感から得られるはずの情報を模擬する機能

センサー
世界

知識表現

SensorNodeCombat

SensorSeeEnemy

事実形式

PassTarget

CoverNode

レイキャスト（視線チェック）、パス検索など重たい処理からなる関数
SensorNodeCombat 隠れる、或いは、隠れながら攻撃できる場所を探す。
SensorSeeEnemy
敵が見えるかチェック
PassTarget
戦術ポイントまでのパスを見つけ、かつそのパスが敵から安全であることをチェックする。
CoverNode
隠れることができるノード
Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005)
http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt

53

統一事実記述形式
キャラクター

オブジェクト

任務

事件

パス

欲求

ノード

全て以下の形式（フォーマット）で記述する。
統一事実記述形式
場所方向
感覚
オブジェクト
情報取得時刻場所 (位置、信頼度)
方向（方向、信頼度）
感覚のレベル（感覚の種類、信頼度）
オブジェクト（ハンドル、信頼度）
情報取得時刻未公開

全部で本当は１６個の属性がある

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

54

自分の記憶領域に認識した事実を蓄積する
Worlking Memory

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

55

F.E.A.R AI 全体設計図
時間の流れ
思考の流れ

人工知能
知識表現

意思決定

世界 sensor

ゴール

プラナー
act
ion

統一事実
記述形式

act
ion

effecter 世界

act
ion

プラン
ターゲット

シンボル

武器選択

パス検索

動作選択

Blackboard
統一事実
記述形式履歴シンボル
エージェントたちの行動履歴

エージェントたちの行動予定

Working Memory
エージェントごとに別
記憶の流れ

全てのエージェントで共通

F.E.A.R AI 設計図
56プランニングのための知識
エージェントの認識する世界をもっとシンプルに表現したい
２０個のシンボルで世界を集約して表現する

シンボル
kSymbol_AtNode
どのノードにいるか

kSymbol_
WeaponArmed
武装しているか

kSymbol_TargetIs
AimingAtMe
どのノードにいるか

どんなタイプのノードにいるか

kSymbol_
WeaponLoaded
装填されているかkSymbol_
RidingVehicle
乗り物に乗っているか

kSymbol_Target
IsSuppressed
威嚇されているかkSymbol_AtNodeTypekSymbol_
UsingObject
オブジェクトを使っているか？

kSymbol_
TargetIsDead
死んでいるか

各エージェントについて（Agent-centric）
上記のシンボルは、対象とするエージェントについての情報。
Jeff Orkin, “3 States and a Plan: The AI of F.E.A.R.",
http://web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.zip

57

kTargetIsDead = ture
この兵士Ａは死んだ

シンボル

kTargetAtme = ture
この兵士Ｂは自分を狙っている

kWeaponIsLoaded = false
私Ｃの武器は装填済みでない

Jeff Orkin, “3 States and a Plan: The AI of F.E.A.R.",
http://web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.zip

58

F.E.A.R.のプランニング②
シンボルによる連鎖プランニング
プランニング
条件なし

武器を拾う
武器を
持っている

武器を
持っている

装填する
武器が装填
されている

武器が装填
されている

攻撃

プラナー

ターゲットＡが死んでいるターゲットＡが死んでいるプランニング

Jeff Orkin, “3 States and a Plan: The AI of F.E.A.R.",
http://web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.zip

⑨ 感情

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

状況解析

Jaime Griesemer(GDC 2002),The Illusion of Intelligence: The Integration of AI and Level Design in Halo
http://www.bungie.net/Inside/publications.aspx

Halo AI の意志決定部分
モーション
コントロール

位置取り
ＦＳＭ

イベント

単純なロジックで１ページ未満の簡単なコードからなる。傾向としては、「グラントはすぐ逃げる。」「エリートは傷つくと隠れ「ジャッカルはシールドを持つ。」

レベルデザイナーの仕事①
敵の情報

意思決定
ロジック
ＦＳＭ
各振る舞いはトリガーを持つ
トリガーによって、振る舞いはお互い競合する
チャージ, 退却, 隠れる場所探す
グレネードを投げる、車に入る、死体を確認

Jaime Griesemer(GDC 2002),The Illusion of Intelligence: The Integration of AI and Level Design in Halo
http://www.bungie.net/Inside/publications.aspx

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

状況解析

演出（セリフ）⑩ 学習

Off the Beaten Path: Non-Traditional Uses of AI
Ben Sunshine-Hill (Havok), Michael Robbins (Gas Powered Games)
http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non
http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non遺伝的アルゴリズム
集団を一定の方向に進化させる方法
最初の世代

新世代（１００～世代後）

世代を経て進化させる…
一つの世代が次の世代を交配によって産み出す遺伝的アルゴリズムの仕組み
親①
遺伝子
遺伝子

遺伝子

遺伝子

現世代

次世代
親②

母集団から優秀な親を２体ピックアップ

遺伝子を掛け合わせる(selection)(crossover)

次世代の子供を産み出す(production)

このサイクルをくり返すことで世代を進めて望ましい集団を産み出す

（例）① GA Racer

遺伝的アルゴリズムによって、遠くまで到達できるレーサーを作成する。
最初の世代

最初はここまでしかたどり着けないけど…

新世代（１００～世代後）

だんだんと遠くまで、たどりつけるようにする。

Mat Buckland, "Building Better Genetic Algorithm", 11.4., AI Game Programming Wisdom 2（CD-ROMにソースコードと実行ファイルがあります）

②シミュレーションとNPCの評価
NPCが生きるゲーム世界の中で、実際に一定時間動作させるなどして、製作者がＮＰＣに望む目標に対する評価値（達成値）をつける。

ゲーム製作者の意図を反映する評価関数を作る（例） 強いＮＰＣを作りたければ、評価値＝0.7*撃破数＋0.3* 残りＨＰ
取り合えず生き延びることできるＮＰＣなら、 評価値＝生存時間

敵

敵

敵
ゲーム世界
君はこの世界でどれだけ僕が求めるにふさわしいのだ？

順位 評価値
1位
８６.３
2位
７８.４
3位
７５.３
..…
…
１００位 ３８．２

遺伝子を評価するのではなく、その遺伝子を持つ個体が、世界でどれだけ優秀であるかを測る。

評価値から適応度を計算する
評価値から、その個体の環境に対する適応度を計算する。
評価値が大きいほど、適応度は大きくなるようにしておく。
順位 評価値
1位
８６.３
2位
７８.４
3位
７５.３
..…
…
１００位 ３８．２

順位 適応度
1位
９.３２
2位
８.８３
3位
７.８１
..…
…
１００位 ０.０２

評価値とは、その環境で達成した行為の点数のこと。
適応度とは、環境にどれぐらい対応しているかを表す。

両者の対応関係は、比例関係にあるならどう作ってもよい。
（例） 同じでいいや。 適応度 ＝ 評価値
上位の点数は、差に意味がないから 適応度＝ log (評価値/100 ) など。

世界最高峰の遺伝的アルゴリズムを使ったゲーム（ＡＩをどうゲームに使うか、という手本のようなゲーム）（例）④アストロノーカ
最初の世代

野菜
食べた
い

最初はすぐに罠にかかるけど新世代（５～世代後）

だんだんと罠にかからないようになる

MuuMuu, プレイステーション用ソフト「アストロノーカ」（Enix, 1998）
http://www.muumuu.com/games/astro/

CEDEC2008 AI day ③講演 ２日目（３コマ目）

どういうゲーム？
珍しい野菜を育てる

しかしバブーが野菜を食べに来るトラップを仕掛けて野菜を守れ！

高値で取引、そして野菜コンテストで優勝！
MuuMuu, プレイステーション用ソフト「アストロノーカ」（Enix, 1998）
http://www.muumuu.com/games/astro/以下の解説は
森川幸人,「テレビゲームへの人工知能技術の利用」,
人工知能学会誌vol.14 No.2 1999-3
http://www.ai-gakkai.or.jp/jsai/whatsai/PDF/article-iapp-7.pdf
http://www.1101.com/morikawa/1999-04-10.htmlに準拠します。
詳細は以下の資料へ

全体の流れ森川幸人, 赤尾容子, 「アリの知恵はゲームを救えるか？」,CEDEC2003
http://www.muumuu.com/CEDEC2003_ants/CEDEC2003_ants.htm

全体の流れ

１日の始まりトラップを配置する
トラップバトル開始
トラップバトル終了
トラップ成績算出
各個体の成績算出

順位を決定
下位２体を削除
適応度に応じて親を選択

子供２体を生成突然変異率を修正

新しい世代を生成

規定世代に達した？
一日の終了

世代交代数を修正

４－① 初期の個体集合を生成
個体を多数（GAにはある程度の母数が必要）用意し、各NPCに遺伝子コードを設定し、初期値を設定する。
[バブーの属性（総計５６）]
体重
身長遺伝子腕力 脚力

耐性_かかし耐性_快光線[各ビットの重み]1.87 6.85 16.25 25.03 25.03 16.25 6.85 1.87
0

1

2

3

4

5

6

7
５６ｘ８＝４４８ビット

４－②シミュレーションとNPCの評価
トラップを奥へと通り抜けることができるほど、評価点が高くなる。

適応度 ＝成績＋ＴＢ時間*0.3＋エンジョイ*0.5＋トラップ点＋安全点＋ＨＰ*0.5
要した時間

トラップに対する耐性

ゲームシステムとしての工夫
工夫その① 遺伝的アルゴリズムは集団に対するアルゴリズム
一体のトラップバトルの裏で他の２０体も同じトラップバトルをして、全体として世代交代をさせている。

工夫その②
遺伝的アルゴリズムは進化のスピードがプレイヤーに体感させるには遅いプレイヤーには「１世代の変化」と言っているが、実はだいたい１日５世代分進化させている。
全体の適応度の平均値

工夫その③
プレイヤーから見て毎日、同じ適応度の上昇になるように、
世代交代数を調整している

一日の適応度の伸び

世代交代数

⑦ 意思決定アルゴリズム⑧ プランニング⑨ 記憶の動的構造・静的構造
キャラクターの内面を豊かにする。
[課題]⑦ ゲーム産業では比較的シンプルな意思決定アルゴリズムが用いられて来た。次世代ではどこまで学術的な知識を取り入れつつ高度化できるか？
⑧ プランニングは、次世代ゲームAIのキーテクノロジー。ゲー
ムに応じた様々なプラナーの導入が必要とされる。
⑨ 短期記憶・長期記憶・ワーキングメモリなどのモデルを、キャラクターの内部記憶構造に持ち込む。

⑩ 感情

⑪ 学習
キャラクターの内面を豊かにする。
課題⑩ 感情に対しては演出以上のものができていない。どこまでAIから感情に切り込めるか？糸口が見えない。
⑪ 学習はこれまで年に１～２個のタイトルで使われるとよい方だった。それは学習の不安定さ、カスタマイズのしにくさ、ゲームの進行と学習のスピードの調整の難しさによる。
しかし、次世代では必ずある時点でブレイクし、一斉に使われるようになる。そのために、柔らかい学習アルゴリズ
ムを支える強固なアーキテクチャが必要である。

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第四部
キャラクターに深く世界にコミットさせる

知能の身体の階層構造図

無意識
抽象・知的
意識 抽象・知的
意志決定
情報
情報

身体・感覚
情報

感覚・身体
情報
知性
身体
物理情報

物理情報
世界

⑫ アニメーションと人工知能（意思決定）部分の接合

AI

身体

二つの独立したシステムの相互作用系であるべき。
AIはAIとして秩序をもつ。
- [構造] 知識表現、身体表現、記憶、思考、身体への制御器官（エフェクター）- [動的秩序] インフォメーション・フロー、意思決定、記憶の変化
身体は身体としての秩序を持つ。
- [構造] ボーン、リグ、アニメーションデータ
- [動的秩序] FSM、プロシージャル、IK

AI システムと身体システム
AI（離散システム）身体（連続システム）

二つの独立したシステムの相互作用系であるべき。
では実際に、どのように相互作用させるべきなのか？
次世代への足がかりの今こそ、明確にコンセプトを打ち出すべき。

知能と身体の階層型表現（１）
身体～知性の階層表現

意識:
身体の
記号
表現

意志決定

無意識の反射レベル

無意識：
身体の
簡易
表現

身体の
具体的
表現

脳の原始的な部分の反射レベル

身体の反射レベル時間進行（流れ）の方向

知能と身体の階層型表現（２）
身体～知性の階層表現

意識:
身体の
記号
表現

無意識：
身体の
簡易
表現

身体の
具体的
表現

身体意識の構成身体意識/
身体動作意識ワーキングメモリ＝意識

記号表現

記号表現

簡易表現

簡易表現

知性の中の身体表現層

ボーン・リグ・アニメーションデータ

アニメーション制御システム

身体作用の構成参考文献(1) ［CEDEC 2012］「クララが立った！」的なバイナリードメインのボスの二足立ちに，キミはAIとアニメーションの相互連携の可能性を見るか(4gamers)
http://www.4gamer.net/games/125/G012513/20120908012/(2) NaturalMotionが提案する「知性あるプロシージャルアニメーション」
最新ゲームのアニメーション表現を支える先端ミドルウェア機能とは？
http://game.watch.impress.co.jp/docs/news/20110907_475674.html(3) ［CEDEC 2011］効率的にバランスを取ってはいけない。クリーチャーの動きを
プロシージャルアニメーションで作るにはhttp://www.4gamer.net/games/000/G000000/20110912077/(4) 【CEDEC 2012】「アニメーションTA」とは!? AIとアニメの融合が生み出すキャラ
クターの次なるリアリティ
http://www.inside-games.jp/article/2012/08/24/59175.html

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第五部
キャラクターの社会的生活

⑬ コミュニケーション⑭ 協調の仕組み⑮ マルチエージェント～群知能⑯ エージェントによる創作⑰ ソーシャルAI
AIに社会性を与える。

⑪ コミュニケーション

Gunslinger「うわさ」（評判）システム
Gunslinger, Surreal(2000)
舞台は昔の西部で、ガンマンたちが、名誉をかけて戦う。
開発： Surreal
出版： Activision / Sony→ マーケット的な理由でCanceled
プラットフォーム： PS2
開発期間： 2001/2002

Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom評判システムイベント登録Event Announcer

Master Event List

参照回数

1. Bandit Killed Farmer

4

2. Player Aided Lawmen

1

3. Player Killed Bandit

3

4.

NPC

３をアナウンス

5.

B1
NPC

Player

B2
NPC

３人のNPCに参照されている
B3

NPC

事件発生ポイント
Player Killed Bandit.
Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom評判システム（イベントの形式）
Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom

Master Event List

参照回数

1. Bandit Killed Farmer

4

2. Player Aided Lawmen

1

3. Player Killed Bandit

11

4.

5.

Subject Group

PlayerVerb

DidViolenceTo

Object Group

BanditObject Individual

Joe

Magnitude

75(Killed)

Where

50,20,128(In front of saloon)

When

High noon

Template

KilledBanditTemplate

ReferenceCount

Known by 11 NPCs

Reputation Effects

Bandits hate player more
Lawmen like player more
Farmers like player more

評判システムイベント登録Event Announcer

Master Event List

参照回数

1. Bandit Killed Farmer

4

2. Player Aided Lawmen

1

3. Player Killed Bandit

4

4.

NPC

一定半径内のNPCに３をアナウンス

B1
NPC

5.

（参照回数が０になればリストから消去）

Player

参照回数を＋１

B2
NPC

他の場所でNPC同士がばったり出会う

B3
NPC

B3

事件発生ポイント
Player Killed Bandit.

味方同士の場合
伝言する
B4

NPC

Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom

NPC

評判システムイベント登録Event Announcer
NPC

Master Event List

参照回数

1. Bandit Killed Farmer

4

2. Player Aided Lawmen

1

3. Player Killed Bandit

44.

一定半径内のNPCに３をアナウンス

B1

NPC

5.

Player

B2
NPC

他の場所でNPC同士がばったり出会う

B3
NPC

B3

NPC

敵同士の場合伝言しない B4

事件発生ポイント
Player Killed Bandit.
Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom

NPC

評判システム（情報交換）
NPCごとの記憶

NPCごとの記憶
Memory Element

信頼度

取得時刻

Memory Element

信頼度

取得時刻

1

43

0:13:432

43

0:15:13

3

76

1:4:53

487

0:46:3

763

1:7:457

12

2:17:56

11

12

1:24:54

15

53

2:14:45

1252

2:6:5571

84

3:56:15

メモリーマッチング
NPC

NPC

同じイベントに対する情報がある場合は、信頼度の高い方の情報に上書き。
同じ対象(例えばJoe)に対する情報がある場合は、新しい情報に上書き上書きするイベント → Master Event List の参照回数＋１
消去されるイベント → Master Event List の参照回数－１(Master Event List で参照回数が０になればリストから消去)
Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom評判システム（情報補完システム）
NPC（NPC Aが Joe に出会ったときには、Joe は既に死んでいた）
Joe was Killed by unknown group
NPC（Joe が Lawmen に撃たれているのを目撃）
Joe was shot by lawmen group

NPC

不完全な情報から情報を再構築NPC

Joe was killed by lawmen group
思い込みかも…でも、それでいい。
人間とはそういうものじゃないか…（という開発方針）

Greg lt, Kristin King, “A Dynamic Repuitation System Based on Event Knowledge”, 8.6, AI Game Programming Wisdom

⑫ 協調の仕組み

三宅陽一郎、横山貴規、北崎雄之: エージェント・アーキテクチャに基づくキャラクター
AIの実装、第4回デジタルコンテンツシンポジウム(2008)
http://igda.sakura.ne.jp/sblo_files/aiigdajp/dcs2008/YMiyake_DCS_2008_6_11paper.pdf

クロムハウンズにおけるマルチエージェント技術⑤ 勝利のための統制された行動
複数のエージェントがゴールを共有する

！
！
チームAI

敵基地

！

勝利のために目的を共有する

チームAIの構造
４つの戦略を持ち、ゲーム全体の状況を反映する
評価関数によって、一つの戦略を決定する。
(評価関数による意思決定 = 個体の意志決定と同じ方法)

チームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

チームとしての戦略（＝勝利条件と同じ）

敵本拠
地破壊

チームAIの構造
４つの戦略を持ち、評価関数によって、一つの戦略を決定する。
思決定 = 個体の意志決定と同じ方法)

チームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

(評価関数による意

本拠地
破壊

敵本拠
地破壊

本拠地
破壊

本拠地
破壊

一つのチーム戦略は、各機体への命令からなる

チームAIの構造 ＝ ゴール指向型の拡張
COMのゴール指向プランニングの上に、チームAIを積み上げるチームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

本拠地
破壊

敵本拠
地破壊

本拠地
破壊

本拠地
破壊
本拠地
破壊

COM 1

本拠地
破壊

COM 2
プランニング

本拠地
破壊

COM 3

一つのチーム戦略は、各機体への命令からなる

チームAI の意思決定と COMの判断を比較して、最終的に決定するチームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

敵本拠
地破壊

組織としての合理性

本拠地
破壊

COM 2

通信塔
占拠

個としての合理性

チームAI の意思決定と COMの判断を比較して、最終的に決定するチームAIとCOMのゴールの評価値を比較して高い方を選択する。

チームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

敵本拠
地破壊

×
本拠地
破壊

COM 2

実行評価値 :７６

通信塔
占拠

実行評価値 ：８８

チームAI の意思決定と COMの判断を比較して、最終的に決定する
COMが二つの評価値を比較して高い方を選択する。

チームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

敵本拠
地破壊

本拠地
破壊

COM 2

実行評価値 : ６４

×
通信塔
占拠

実行評価値 : ５３

チームAI の意思決定と COMの判断を比較して、最終的に決定する
COMが二つの評価値を比較して高い方を選択する。

チームAI 意志決定機構

敵殲滅

本拠地
防衛

通信塔
占拠数
で勝つ

敵本拠
地破壊

×
本拠地
破壊

COM 2

チームの判断、個としての判断を競合させて知的な柔軟性を
保持する

７６

通信塔
占拠

８８

チームＡＩの介入の仕方
前半はチームＡＩより個としてのＡＩの判断を優先、後半はチームＡＩの判断を優勢にしたい。
比較のためのチームＡＩゴール評価値 ＝ ゴール評価値 ｘ comp_team
比較のためのCOM ＡＩゴール評価値 ＝ ゴール評価値 ｘ comp_idv
COM優勢

COM、チーム競合

チーム優勢

1.2
1.0

comp_idv
チームＡＩを用いてゲームメーキングを行う
0.0

comp_team前半（５分、或いは、
戦場で一機が撃墜されるまで）中盤（前半終了から５分）

後半（中盤終了から５分）

⑬ マルチエージェント～群知能

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

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

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

Killzone2 AI

防衛、前進など戦術を指示
戦術の成功・失敗を報告（フィードバック）

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

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

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

Killzone 2 のウェイポイント

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

ウェイポイントをクラスター化
サイズと含むウェイポイント数を決めてなるべく正方形になるように形成

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

戦略グラフBased on: Alex Champandard, Tim Verweij, Remco Straatman, "Killzone 2 Multiplayer Bots",
http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf

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

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

戦略グラフ

何に使うのか？ グローバルな戦況判断
Based on: Alex Champandard, Tim Verweij, Remco Straatman, "Killzone 2 Multiplayer Bots",
http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf

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

危険

安全

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

HTN (Hierarchical Task Network)

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

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

集団の協調
Ｂ

3

1

Ａ

2

Ｃ

4

5

AI
Players

集団の協調（黒板による協調）
Ｂ

KS
Ａ

Enemy A
Slot 2

Enemy B
Slot 1

Enemy C
Slot 2
Ｃ

2

3

1

4

5

集団の協調（黒板による協調）
Ｂ

KS
Ａ
Accept!

Enemy A
Slot 2

Enemy B
Slot 1

Enemy A
Slot 2
Ｃ

Entry
2

3

1

4

5

集団の協調（黒板による協調）
Ｂ

KS
Ａ
Reject!

Enemy A
Slot 2

Enemy B
Slot 1

Enemy A
Slot 2
Ｃ

Entry

2

3

1

4

5

集団の協調（黒板による協調）
Ｂ

KS
Ａ

Enemy A
Slot 2

Enemy B
Slot 1

Enemy A
Slot 2
Ｃ

2

3

1

4

5

集団の協調（黒板による協調）
Ｂ

KS
Ａ

Enemy A
Slot 2

Enemy B
Slot 1

Enemy C
Slot 2HP>10LeaderHP>5 かつ
MP >5

MP>10

Ｃ

HP>5 orMP >10

2

3

1

4

5

参考文献
• 石田亨 片桐恭弘 桑原和宏 「分散人工知能」（コロナ社）
http://www.coronasha.co.jp/np/isbn/978433
9025910/

⑭ エージェントによる創作
コンストラクション（建築）はこれまでユーザーが行って来たが、自律的AIが様々な建造物を作るようになれば面白い。

蟻塚

http://ameblo.jp/oldworld/entry-10033452312.html

⑮ ソーシャルAI

Sims3 における応用

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

自律型ＡＩの作り方

三宅陽一郎、「これからのゲームＡＩの作り方」 （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/敵との距離

１日

食べ物

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)

X_Hunger

W_Hunger(90)

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

動機
パラメーター

インタラク
ション

マップから満たしたい動機パラメーターに関係した
インラクションだけをピックアップできるMood を最大化

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

Mood を最大化

冷蔵庫へ行きます。

Mood を最大化

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

⑬ コミュニケーション⑭ 協調の仕組み⑮ マルチエージェント～群知能⑯ エージェントによる創作⑰ ソーシャルAI
AIに社会性を与える。
[課題]
デジタルゲームでは、ユーザーに向けてゲームを主観的に構成する。AI同士の社会性と、ユーザーの主観的体験が排他的なゲームデザインが多い。
エージェントを協調させつつ、ユーザーに対して新しい体験を作るにはどうすればよいか？

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第六部
より人間らしいAIへ⑱ 意識モデル⑲ チューリングテスト
より人間らしいAIへ。

⑱ 意識モデル

MC = Machine Consiouness• マシンの持つ意識（MC）についてはゲーム分野
ではあまり研究されてこなかった。
• 最近は、MCの研究が盛り上がりつつある。
• ゲーム分野のAIについてもMCを考えたい。
• ここでは、あまり哲学的な議論に立ち入らない
ために、意識⇒注意 と置き換えて考えます。

２つの意識の種類
P - Consciousness(Phenomenal consciousness)
現象的意識（主観的体験、クオリア）

A - Consciousness( Access consciousness)
精神活動に対する意識（Ned Block, 1942）

２つの意識の種類
P - Consciousness(Phenomenal consciousness)
現象的意識（主観的体験、クオリア）

A - Consciousness( Access consciousness)
精神活動に対する意識（Ned Block, 1942）

A-Consciousness に関する３つのアイデア(1) 黒板モデル =ブラックボード・アーキテクチャ(Blackboard Architecture)(2) GWT = Global Workspace Theory(Baar, 1988)(3) MDM = Multiple Draft Model(Dennett, 1991)

(1) ブラックボード・アーキテクチャ(Blackboard Architecture)
Motivations
Emotions
Attention
Etc.

ArbiterKS

特徴：

KSBlackboard

KS

KS

KS

KS
Bruce Blumberg , Damian Isla, "Blackboard Architectures",
AI Game Programming Wisdom (Charles River Media) , 2002

- 中央の黒板に情報が蓄積される（されて行く）。
- モジュールはKS(=Knowledge Source)と呼ばれ、特定の専門的な知識や技術に基づいた操作を
黒板の情報に対して行う。
- Arbiter(=調停者)がKSをどのように（順序、タイミングなど）動作させるかを行う。

(2) Baar’s Global Workspace Theory(GWT)
Working Space
フォーカス
している対象の情報

Processor

劇場と観衆のモデル。スポットライトがあたっている部分（注意＝フォーカスが向いている対象）に観衆（プロセッサー）が注意して処理を行う。

GWT (Global Workspace Theory)
Working Space
フォーカス
している対象の情報

Processor

(3) Dennett’s Multiple Draft Model
仮想マシン
意識
無意識

協調

http://www.conscious-robots.com/en/conscious-machines/theories-of-consciousness/multiple-draft.html

新聞社の編集モデル。新聞社にはたくさんの新しい情報が来て、何度も記事が書きなおされる。最終版だけがリリースされる。編集者＝協調するプロセッサー、
新聞＝意識の登る情報。

Dennett’s Multiple Draft Model
仮想マシン

意識
無意識

協調

http://www.conscious-robots.com/en/conscious-machines/theories-of-consciousness/multiple-draft.html

A-Consciousness に関する３つのアイデア(1) 黒板モデル =ブラックボード・アーキテクチャ(Blackboard Architecture)(2) GWT = Global Workspace Theory(Baar, 1988)(3) MDM = Multiple Draft Model(Dennett, 1991)
３つのアイデアをかけあわせる
Arrabales, R. Ledezma, A. and Sanchis, A. "Towards the Generation of Visual Qualia
in Artificial Cognitive Architectures". (2010)
http://www.conscious-robots.com/raul/papers/Arrabales_BICS2010.pdf

【まとめ】観客（＝プロセッサー）はステージ（＝ワーキングメモリ）上にスポットライト（＝注意、アテンション）が注がれた役者の演技（＝オブジェクトの振る舞い）について考えて（＝情報処理、思考）意見を役者に伝えます（＝ワーキングメモリに書き込みます）。

Global Workspace Theory (GWT)
コンテキストの生成とコントロール(舞台裏)
舞台裏の人々＝ディレクター、シーンデザイナー、など。

ブロードキャスト

ワーキングメモリ（Scene,Stage）

注意の焦点
Focus of Attention（スポットライト）ブロードキャスト
いろいろな意見や反響が返されることで舞台上の演技がまた変化していく。

専門プロセッサー(観客)

テンポラリーな連携

Arrabales, R. Ledezma, A. and Sanchis, A. “Towards the Generation of Visual Qualia in Artificial Cognitive Architectures”. (2010) http://www.conscious-robots.com/raul/papers/Arrabales_BICS2010.pdf

CERA認識モデル

単純な認識Single Percept が得た情報からさらにProcessor が解釈した情報を、同じ Workspaceに書き込む

CORE Layer の役割

CORE Layer は、Physical Laryer 、Mission Layer のうちで、どの認識を生成するかを決定するコマンドを投げる。

⑲ チューリングテスト

2K Bot Prize
複数のキャラクターが対戦するオンラインゲームの中で、AIとプレイヤーが操作するプレイヤーを混在させて戦わせる。
ただし、どのキャラクターがNPCで、どれがPCかが完全に秘密にされている。
各キャラクターには、これはAIだと思うAIに、AIだとアイデンティファイする銃を持っていて、これがAIだと思うキャラクターを撃つ。

http://www.botprize.org
https://www.youtube.com/watch?feature=player_detailpage&v=9pmYPROqoxM

2K Bot Prize 2010年 優勝者

http://www.conscious-robots.com/en/conscious-machines/conscious-robots/conscious-robots-team-wins-the-2k-botprize-2010-competi.html

Movie:

http://aigamedev.com/open/article/conscious-bot/

http://www.botprize.org/2010.html

http://www.botprize.org/2010.html

⑱ 意識モデル⑲ チューリングテスト
より人間らしいAIへ。
[課題]⑱意識モデルは「AIが自分自身を認識している」（自意識）の感覚をユーザーに与える。この感覚に関する研究が必要。

⑲「人間らしさ」の基準を、さまざまな種類のゲームで定義して行くことが必要。

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第七部
ゲームをコントロールするAI

(20) ストーリー・ジェネレーション(21) プロシージャル・コンテンツ・ジェネレーション(22) メタAI（23） ソーシャルゲームにおけるAI
デジタルゲーム自身を人工知能としたい。

(20)プロシージャル・コンテンツ・ジェネレーション

GDC 2008

FarCry2 (2008)におけるプロシージャル技術
50km四方のマップを作る
オブジェクト（草木）＆アニメーションデータを自動生成

植物に関してプロシージャルのアルゴリズムの助けを借りてデザイナーが生成（まとまった単位土地内の分布、成長率などを指定して生成）
アニメーションや破壊のされ方は、簡単な設定をしておけば、ゲーム内で環境に応じてシミュレートされる。
（例）草原で炎が燃え広がる

FarCry2 (Dunia Engine ) デモ

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

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

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

動的天候システム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

(21) ストーリー・ジェネレーション[CEDEC 2010 ]安藤毅 「サカつく」のサッカー試合AIシステム
http://cedil.cesa.or.jp/session/detail/379

(22) メタAI
ゲームAIの二つの種類キャラクターＡＩ
キャラクターの頭脳（意志決定機構）

ゲームＡＩ

メタＡＩ
ゲーム全体を俯瞰する頭脳メタＡＩの歴史
1980

1990

2000

古典的メタAI

キャラクターＡＩ技術の発展
現代のメタＡＩ（例）「ゼビウス」 敵出現テーブル巻き戻し
敵0
敵１
敵2
敵3

敵4
敵5

遠藤雅伸氏 あと面白い機能なんですけれど、 ゼビウスには非常に簡単なAIが組み込まれています。「プレイヤーがどれくらいの腕か」というのを判断して、 出てくる敵が強くなるんです。
強いと思った相手には強い敵が出てきて、 弱いと思った相手には弱い敵が出てきます。 そういっ
たプログラムが組み込まれています。 ゲームの難易度というのは「初心者には難しくて、上級者には簡単だ」ということが、 ひとつの難易度で(調整を)やっていくと起きてしまうので、 その辺を何とか改善したいな、ということでそういったことを始めてみたのですけれど、 お陰で割合にあまり上手くない人でも比較的長くプレイできる、 うまい人でも最後のほうに行くまで結構ドラマチックに楽しめる、 そういった感じになっています。 － ゼビウスセミナー －http://spitfire.client.jp/shooting/xevious2.html

現代のメタAI
より積極的にゲームに干渉する。

メタAI

敵配位

敵スパウニング

ユーザー

ストーリー

レベル
動的生成

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence andInteractive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence andInteractive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

ユーザーの緊張度

実際の敵出現数(1) リラックスを破るように敵を出現させる。
Build Up …プレイヤーの緊張度が目標値を超えるまで敵を出現させ続ける。
Sustain Peak … 緊張度のピークを3-5秒維持するために、敵の数を維持する。
Peak Fade … 敵の数を最小限へ減尐して行く。
Relax … プレイヤーたちが安全な領域へ行くまで、30-45秒間、敵の出現を最小限に維持する。
Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

安全な領域までの道のり(Flow Distance)
プレイヤー群の経路をトレース・予測- どこへ来るか- どこが背面になるか

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

AAS に対して行うこと。
メタＡＩは AAS に移動に伴い、敵の群れを生成・消滅させたりする。

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

敵出現領域

背後

前方

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

高頻度

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

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

何もいない

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

Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html

まとめ

メタAIを入れ替えるだけで、ゲームコンテンツが入れ替わる。メタAIという軽い部分だけを配信することでコンテンツを入れ替えることができる。

参考文献(1) Michael Booth, "Replayable Cooperative Game Design: Left
4 Dead," Game Developer's Conference, March 2009.
(2) Michael Booth, "The AI Systems of Left 4 Dead," Artificial
Intelligence and Interactive Digital Entertainment Conferenceat Stanford.
http://www.valvesoftware.com/publications.html(3) 三宅 陽一郎, “メタAI”, 「デジタルゲームの技術」
P.186-190, ソフトバンク クリエイティブ

（23） ソーシャルゲームにおけるAI[CEDEC 2012]
井澤正志 データマイニングによって変わった「大熱狂!!プロ野球カード」の
Key Performance Indicatorの事例研究
http://cedil.cesa.or.jp/session/detail/890。

(20) ストーリー・ジェネレーション(21) プロシージャル・コンテンツ・ジェネレーション(22) メタAI（23） ソーシャルゲームにおけるAI
デジタルゲーム自身を人工知能としたい。
課題(20)(21)ストーリージェネレーション、PCGも、アルゴリズムがまだ弱い。また、ゲームにフィッティングさせるためのカスタマイズの方法が未成熟。ゲーム開発に手堅く導入できるだけの成熟＝研究が必要。
(22) メタAIはゲームコンテンツを動的に変化させる革命を起こす可能性がある。

(23) ゲームとユーザーの関係をリアルタイムにデータマイニングすることが可能なソーシャルゲーム。そこから新しくゲームデザインを科学することができる。

コンテンツ
第一部 キャラクターに世界を理解させたい
第二部 世界とキャラクターの内面をつなぐ
第三部 キャラクターの内面を豊かにする
第四部 キャラクターに深く世界にコミットさせる
第五部 キャラクターの社会生活
第六部 より人間らしいAIへ
第七部 ゲームをコントロールするAI
第八部 まとめ第八部
まとめ一緒に研究しましょう。
• 次世代はゲーム産業だけで、ゲームAI技術を支えられない規模に。
• 学術との大きな協力関係が必要。
• 準備中- アカデミック向けカンファレンス- インターンップ受け入れ制度- 共同研究Making your dreaming AI !
ご静聴ありがとうございました！
感想・ご質問は @miyayou または y.m.4160@gmail.com まで！
http://www.facebook.com/youichiro.miyake