ゲームＡＩ連続セミナー

第7回「社会シミュレーションとデジタルゲーム」
ＩＧＤＡ ゲームＡＩ
ゲームＡＩ専門部会
ＡＩ専門部会
Twitter
Twitter Hashtag
Hashtag :: #gameai_rt7#gameai_rt7

主催 : 国際ゲーム
国際ゲーム開発者協会日本支部
ゲーム開発者協会日本支部(IGDA
開発者協会日本支部(IGDA日本(IGDA日本)
日本)
共催 : コンテンツ文化史学会
コンテンツ文化史学会

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

ゲームＡＩ連続セミナー
第7回「社会シミュレーションとデジタルゲーム」
三宅 陽一郎y.m.4160@gmail.com
2010.6.12 芝浦工業大学

本セミナーの構成
第一部 講演 （13:30-14:20）「これまでのゲームAI連続セミナーのレビュー」（三宅）第二部 講演（14:30-15:10）「社会シミュレーションの現状とこれから」（小山）

第三部 講演（15:20-16:40）「The Sims のAI と社会シミュレーション」（三宅 ）第四部 ワークショップ （16:50-18:10）「デジタルゲームにおける社会シミュレーションの設計」

本セミナーの構成
第一部 講演 （13:30-14:20）「これまでのゲームAI連続セミナーのレビュー」（三宅）第二部 講演 （14:30-15:10）「社会シミュレーションの現状とこれから」（小山）
第三部 講演 （15:20-16:40）「The Sims のAI と社会シミュレーション」（三宅 ）第四部 ワークショップ （16:50-18:10）「デジタルゲームにおける社会シミュレーションの設計」

本講演の構成第一部「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

第三部 「総論」
本資料では、イラストを アンの小箱 http://www.anne-box.com/
さんから利用させていただきました。

本講演の構成第一部「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

第三部 「総論」

シミュレーション手法
多数のエージェントを準備する
エージェントの仕様（（内部構造
内部構造、役割））を決める
各エージェントの仕様、役割

エージェントが活動する空間（フィールド）を用意する
エージェントと環境とのとの相互作用相互作用を
エージェント
と環境
との
相互作用
を決める
研究では
ではセル
セルを
用意する
する場合
場合が
研究
では
セル
を用意
する
場合
が多い

エージェント同士のインタラクションの仕方を決める

シミュレーション
社会現象の再現（研究）、新しいゲーム的体験の創出（ゲーム）エージェントとは？
① 環境に対して情報を集める感覚（センサー）を持つ② 自ら判断する能力を持つ。
③ 環境に対して働きかけることができる能力を持つ。

！

感覚を持ち

自ら判断して世界に働きかける能力を持つ

ゲーム体験 (AI vs プレイヤー)

それなりに賢それなりに賢くする（くする（通常の通常のゲーム）ゲーム）
一体（
一体（巨大）巨大）に特化して特化して賢して賢くする
ボス戦
ボス戦などで特別などで特別な
特別なアルゴリズム例） ワンダと巨像

イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/ゲーム体験（AIたち vs プレイヤー）

複数の複数の敵が出るが連携
るが連携しない
連携しない例） ＪＲＰＧの敵たち
イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/ゲーム体験
（マルチエージェント vs プレイヤー）

相互に相互に連携する
連携する（する（マルチエージェント）
マルチエージェント）例） クロムハウンズ(第３回資料、CEDEC2007資料参照)

イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/ゲーム体験（ＡＩチーム vs プレイヤー）

組織的構造を
組織的構造を入れてチーム
れてチームとしてチームとして行動
として行動する行動する例） Killzone2 (GDC10 報告会資料参考)など FPS

イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/ゲーム体験（プレイヤー in AI社会）

ＡＩたちの
ＡＩたちの作たちの作る社会の社会の中で社会的な
社会的な活動する活動する
例） The Sims (GDC10 報告会資料参考)など
イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/FPS(戦闘) ⇔ 社会系のＡＩの比較
FPS

社会系

内面

シンプル

複雑

思考

複雑

シンプル

周囲の環境の見え方

視線・射線に対する
障壁

多様な行為のアフォーダンス

産み出したいもの戦場

人間ドラマ
社会シミュレーション
社会
シミュレーション

組織・人間関係

階層的・厳密平坦的・緩い繋がり

スコープ時間

短期～長期

短期～長期

重要なもの

敵味方の生死自分の幸福度インタラクション

暴力. 治癒多様学術との関係

アルゴリズム

哲学、認知科学、心理学など

キャラクターＡＩの技術はこの両極の間にある

FPS(戦闘) ⇔ 日常系のＡＩの比較
社会シミュレーション
社会
シミュレーションFPSのAI

さまざまな
ゲームＡＩの
可能性

日常系
のAI

ゲームＡＩは広大にして多様FPS⇔日常系はそれを捉える一つの軸ゲーム体験（プレイヤー in AI社会）

ＡＩたちの
ＡＩたちの作たちの作る社会の社会の中で社会的な
社会的な活動する活動する
例） The Sims (GDC10 報告会資料参考)など
イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/ゲーム体験（プレイヤー to AI社会）

干渉

ＡＩたちの
ＡＩたちの作たちの作る社会に社会に対して干渉
して干渉する
干渉する例） くりきん、牧場系ゲーム、The Sims (所謂ＧＯＤゲーム)
イラスト:
イラスト: アンのアンの小箱 http://www.annehttp://www.anne-box.com/
box.com/社会的デジタル空間
世界を俯瞰的に観察する（シミュレーション）

社会
シミュレーション
プレイヤーが（プレイヤー
が
干渉しない
しない。
干渉
しない
。
プレイヤーというプレイヤーという
概念はない
はない））
概念
はない

世界を内側から体験する
（ゲーム）

俯瞰型
シミュレーション
ゲーム

体験型
ゲーム

プレイヤーが（プレイヤー
が
神的な
立場から
から干渉
神的
な立場
から
干渉
する））
する

プレイヤーが（プレイヤーがエージェントのエージェント
の
一人として
として活動
活動する
する））
一人
として
活動
する

社会的なゲームに必要なこと
技術

システム全体を設計してシミュレーションできる能力

攻撃型ゲーム⇔社会系ゲームの面白さ
攻撃型ゲーム敵を攻撃して殺す（FPSなど）
敵の弱点を探して急所を打つ
力で押す
相手の見えないところから攻撃
装備を充実させる
煙幕などで敵を混乱させる
修行して力を付ける（レベル上げ）
チームを組んで圧倒する
作戦を立てる戦力を集中する敵の背後を取る
銃を撃ちまくる敵の行動を読むトラップを仕掛ける
味方を犠牲にして自分が勝つ
相手を偽情報でだます
崖から突き落とす遠くから狙撃する
…

社会系ゲーム？
課題：
課題：社会系ゲーム
社会系ゲームのゲームの面白さを面白さを考えて列挙
えて列挙してみよう
列挙してみよう！
してみよう！

攻撃型ゲーム⇔社会系ゲームの面白さ
攻撃型ゲーム敵を攻撃して殺す（FPSなど）
敵の弱点を探して急所を打つ
力で押す
相手の見えないところから攻撃
装備を充実させる
煙幕などで敵を混乱させる
修行して力を付ける（レベル上げ）
チームを組んで圧倒する
作戦を立てる戦力を集中する敵の背後を取る
銃を撃ちまくる敵の行動を読むトラップを仕掛ける
味方を犠牲にして自分が勝つ
相手を偽情報でだます
崖から突き落とす遠くから狙撃する
…

社会系ゲーム喋る経済活動をする
社会的活動をする日常生活を行う
衣食住を充実させる
物を交換する
知識や技術を見に付けるコミュニティーを作る
計画を立てる一つのことに取り組むこっそり人の役に経つ
演説する
社会の情勢、経済の動向を読む
街を整備する
人のために何かする正確な情報を伝える／偽情報を流す
崖から落ちそうな人を助ける近くでお年寄りをサポートする
…

攻撃型ゲーム⇔社会系ゲームの面白さ
攻撃型ゲーム敵を攻撃して殺す（FPSなど）
敵の弱点を探して急所を打つ
力で押す
相手の見えないところから攻撃
装備を充実させる
煙幕などで敵を混乱させる
修行して力を付ける（レベル上げ）
チームを組んで圧倒する
作戦を立てる戦力を集中する敵の背後を取る
銃を撃ちまくる敵の行動を読むトラップを仕掛ける
味方を犠牲にして自分が勝つ
相手を偽情報でだます
崖から突き落とす遠くから狙撃する
…

社会系ゲーム喋る経済活動をする
社会的活動をする日常生活を行う
衣食住を充実させる
人の役に立つ知識や技術を見に付けるコミュニティーを作る…
計画を立てる一つのことに取り組むこっそり人の役に経つ
演説する
社会の情勢、経済の動向を読む
街を整備する
人のために何かする正確な情報を伝える／偽情報を流す
崖から落ちそうな人を助ける近くでお年寄りをサポートする
…

しかし
こういった楽こういった
楽しみがデジタルゲームででデジタルゲーム
可能なのだろうかなのだろうか？
可能なのだろうか？

社会的なゲームに必要なこと
技術

システム全体を設計してシミュレーションできる能力
企画

社会的な喜びをゲーム内で再現する能力

本講演の主旨
デジタルゲームの中で「社会的な面白さ」を発想してみよう！
（そのためにいろいろなゲームを知ろう！）「社会的な面白さ」をゲーム内で実現する技術をマスターしよう！
（注）いわゆるソーシャルゲームは扱いません。
本講演はＡＩを使った社会性を持ったゲームを扱います。

本講演の構成第一部「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

第三部 「総論」

社会的デジタル空間
世界を俯瞰的に観察する（シミュレーション）

社会
シミュレーション
プレイヤーが（プレイヤー
が
干渉しない
しない。
干渉
しない
。
プレイヤーというプレイヤーという
概念はない
はない））
概念
はない

世界を内側から体験する
（ゲーム）

俯瞰型
シミュレーション
ゲーム

体験型
ゲーム

プレイヤーが（プレイヤー
が
神的な
立場から
から干渉
神的
な立場
から
干渉
する））
する

プレイヤーが（プレイヤーがエージェントのエージェント
の
一人として
として活動
活動する
する））
一人
として
活動
する

社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

社会体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

社会体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

社会シミュレーション
完全なシミュレーション

地域社会の住み分け
シェリング「分居」モデル
２種類のエージェントが周囲に自分と同じ種類のエージェントが住まう環境を求めて行動する。
シミュレーション開始
シミュレーション開始
２種のエージェントを
エージェントをランダムにランダムに配置

MOVE

自分の自分の周囲にいる
周囲にいる
エージェントのエージェントの数を数える

No
幸福度の幸福度の計算DEMO!

幸福度は
幸福度は閾値以上か
閾値以上か？

Yes
幸福度＝幸福度＝近傍にいる
近傍にいる同類にいる同類エージェント
同類エージェント数
エージェント数/近傍にいる近傍にいる総にいる総エージェント数
エージェント数

STOP

田村誠、
田村誠、板山真弓、
板山真弓、山影進、
山影進、第７章「地域社会の
地域社会の住み分け」、コンピューター」、コンピューターのコンピューターの中の社会」（
社会」（共立出版」（共立出版）
共立出版）

テーマパーク・シミュレーション
DEMO!
入場

行動決定

ゲートへ
ゲートへ移動アトラクションへ
アトラクションへ移動

退場

アトラクションへ
アトラクションへ到着（
到着（拘束）
拘束）

アトラクション解放アトラクション解放アトラクション効用
アトラクションをを選ぶ評価式評価式））
アトラクション効用（アトラクション＝アトラクションのアトラクションの選好度－αｘアトラクションまでの
アトラクションまでの直線距離までの直線距離－βｘアトラクションのアトラクションの混雑状況（α、βはシミュレーション定数
シミュレーション定数）
定数）

エージェントが持つパラメーター(1)各アトラクションへの選好度(2) すでに訪問したアトラクション(3) 満足度（(1)(2)より計算）(4) 帰宅満足度（満足度がこの値より大きければ帰宅）

辺見和晃、
辺見和晃、第８章「来場者に来場者に優しいテーマパーク
しいテーマパーク」、
テーマパーク」、コンピューター」、コンピューターのコンピューターの中の社会」（
社会」（共立出版」（共立出版）
共立出版）

マルチエージェント型シミュレーション FreeWalk

仮想空間シミュレーション
仮想空間シミュレーション
インタラクション

拡張現実シミュレーション
拡張現実シミュレーション

自分の自分の位置は
位置はセンサでセンサで仮想空間に
仮想空間に取り込まれる。
まれる。
仮想空間を
仮想空間を携帯端末で携帯端末でモニターしながらモニターしながら動しながら動く中西 英之、大規模実環境実験のための
http://www.ai.soc.i.kyoto-u.ac.jp/publications/07/nakanishi-vrsj_vol12no4.pdf
英之、石田 亨、小泉 智史、智史、“大規模実環境実験
大規模実環境実験のためのマルチエージェントシミュレーションのためのマルチエージェントシミュレーション”,
マルチエージェントシミュレーションReferences
山影進、服部正太(編)「コンピューターの中の社会」（共立出版）
中西 英之、石田 亨、小泉 智史、"大規模実環境実験のためのマルチエージェントシミュレーション",
http://www.ai.soc.i.kyoto-u.ac.jp/publications/07/nakanishi-vrsj_vol12no4.pdf

社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

社会体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

第三部 「総論」

俯瞰型シミュレーションゲーム
プレイヤーがプレイヤーが神的な神的な立場から立場から干渉から干渉する
干渉する群知能乱戦シミュレータ「Genocide Automation」
Sense of Wonder Night 入賞作品、佐々木直哉、http://www11.plala.or.jp/normal/
DEMO!
(1) ユニットに分かれている(2) ユニットは「資源」を消費。
資源が不足するとダメージ(3) エリアは敵、味方の数から占有率を計算。
(4) ユニット毎に味方、敵戦力を計算。
優勢と判断すれば戦う、でなければ逃げる。
(5) ユニットは合流閾値によって合流する。

[左クリック]:・視界内に敵がいなければカーソル位置へ向かう．
・表示される矩形内にいて，敵が視界内にいる場合には，味方の戦力を5倍に見積もる(好戦的になる)[右クリック]:・視界内に敵がいなければカーソル位置から遠ざかる．
・表示される矩形内にいて，敵が視界内にいる場合には，敵の戦力を5倍に見積もる(消極的になる)

微生物の群れを指揮する全方位シューティング「ナノスマイルズ」
Sense of Wonder Night 入賞作品、岩井悠、http://www.freem.ne.jp/game/win/g01665.html
DEMO!

自分では攻撃しない。群れを誘導して攻撃してもらう。

Black & White
いわゆるゴッドゲーム
プレイヤーはエージェントたちが住む島に「神の手」を操作して、資源や巨大オブジェクトを移動してやったり、巨大モンスターを育成したりする。

プレイヤー
巨大モンスターは学習型ＡＩ
Richard Evans, “Varieties of Learning”, 11.2, AI Game Programming Wisdom

イベントはオリジナルスクリプト
Jonty Barnes, “Scripting for Undefined Circumstances”,１
１0.5, AI Game Programming Wisdomであるので、あまりシミュレーション型とは言えないイベント集積型のＡＩ

社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

社会体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ

SimCity シリーズのＡＩの作り方

SimCity シリーズのＡＩの作り方

犯罪発生率＝（乗）－（ランドバリュー
犯罪発生率＝（人口密度＝（人口密度の人口密度の2乗）－（ランドバリュー）－（ランドバリュー）－（警察）－（警察の警察の影響力）影響力）
ランドバリュー＝（
ランドバリュー＝（距離＝（距離パラメータ
距離パラメータ）＋（
パラメータ）＋（列車）＋（列車パラメータ
列車パラメータ）＋（
パラメータ）＋（輸送）＋（輸送パラメータ
輸送パラメータ）
パラメータ）

世界をダイナミクス（力学系、動的な数値の仕組み ）として動かす。
世界を動かすシミュレーション) を構築。

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

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

-4

8

8

8

4

6

8

1

2

4

6

3

3

3

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

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

-4 -2
0,75
0,50
-4
-4 -2
0,2
0,0
-4
-2 -1
0,75
0,50
-6
-4 -2
0,4
0,2
-8
-4 -2
0,50
0,25
-80,6 -4 0,4-2

3

8

6

6

6

6

4

6

4

2

2

3

4

2

2

0

3

2

2

2

0

-2

-4

-4

-2

-4

-2

-4

-2

3

3

3

2

2

1

0

-4

2

2

2

2

1

1

0

-3

1

1

1

1

0

0

-2

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

-8
0,50
0,6
-8

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

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
0,2 -4 0,4 -4 0,6
-2 -4
-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,25 0,0
0,00
-2
-2 -2

0

0

0

0

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

-1

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

Age of Empire(AOE)における利用
例
AOEはタイルベースのＲＴＳ（リアルタイムストラテジー）
マップは毎回、自動生成Age of Empire(AOE)における利用例①
金鉱発掘小屋の最適位置自動検出

Figure 3: Influence map around gold mines.

0.8 0.8 0.8
0.8 1.0 0.8
0.8 0.8 0.8-0.6-0.6-0.6-0.6-1.0-0.6-0.6-0.6-0.6

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

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

ＡＩに金鉱の発掘小屋を適切な位置に置かせるには？
＝ 金鉱に近いが、近すぎてはいけないところに置く
金鉱の回りのタイル（仮想的）防壁を置いて、近すぎも遠すぎもしない点に最高点のタイルが来るようにする＝ 自動位置検出Age of Empire(AOE)における利用例②兵隊の配置の最適位置自動検出

0.8 0.8 0.8
0.8 1.0 0.8
0.8 0.8 0.8
高い場所＝アトラクター(吸引源)-0.6-0.6-0.6-0.6-1.0-0.6-0.6-0.6-0.6
家がある場所＝デトラクター（排斥源）

兵士を街からなるべく遠く、高台の場所に置かせたい＝ 高い場所(アトラクター)、家がある（デトラクター）とする

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

既知の敵のビル、以前通ったルート ＝ デトラクタ（排斥源）

この排斥源が与えるコストをパス検索のコストとすると、「なるべく遠ったことにない敵の基地からみつかりにくいパス」
を見つけることが出来る。

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

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

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

犯罪発生率＝（乗）－（ランドバリュー
犯罪発生率＝（人口密度＝（人口密度の人口密度の2乗）－（ランドバリュー）－（ランドバリュー）－（警察）－（警察の警察の影響力）影響力）
ランドバリュー＝（
ランドバリュー＝（距離＝（距離パラメータ
距離パラメータ）＋（
パラメータ）＋（列車）＋（列車パラメータ
列車パラメータ）＋（
パラメータ）＋（輸送）＋（輸送パラメータ
輸送パラメータ）
パラメータ）“AI: A Desing Perspective” AIIDE 2005
http://www.aiide.org/aiide2005/talks/index.html
http://thesims.ea.com/us/will/

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

エージェントベースの街生成
マルチエージェントが街を作る Netlogo CityBuilder
地形が与えられる
海抜に沿って建築場所が確定される
２種類のエージェントによって道路が構築される
ExtenderConncetor

Extender

建築可能な土地同士をなるべく起伏がないように区画に沿って道路でつなぐエージェント

Conncetor

構築された道路から２点をピックアップして、その到達距離があまりにも長ければ、その間を道路でつなぐエージェント

George Kelly, Hugh McCabe, "A Survey of Procedural Techniques for City Generation",
3.3., Agent Based Simulation, http://www.gamesitb.com/SurveyProcedural.pdf

エージェントベースの街生成
マルチエージェントが街を作る Netlogo CityBuilder

Developer Agent

土地を探索し、建築計画を立て、許可申請し、建築し、売却する

Residential Agent

道路の喧騒から遠い居住区を探すエージェント

Commercial Agent

道路の喧騒に近い商業区を探すエージェント

Industrial Agent

郊外の工業区を探すエージェント

Building Agent

各パッチを区画に分けて、建築する

各エージェントはそれぞれが持つルールにそって行動する。
George Kelly, Hugh McCabe, "A Survey of Procedural Techniques for City Generation", 3.3., Agent Based Simulation, http://www.gamesitb.com/SurveyProcedural.pdf

エージェントベースの街生成
マルチエージェントが街を作る Netlogo CityBuilder

Ｃｉｔｙ：
その建築
建築がその
がその土地
土地の
価値を
げるか？
その
建築
がその
土地
の価値
を上げるか
？
市民に
恩恵を
えるか？
市民
に恩恵
を与えるか
？

Reject or Accepted
建築申請

Residential Agent

Industrial Agent

Commercial Agent

建築エージェント
エージェント「「City Regulation (街の規制)に則った
った」」
３種の建築
エージェントクライアントの要求にった」」建築計画
建築計画を
作成し
して申請
申請する
する。
「クライアント
の要求
に合った
を作成
し、市に対して
申請
する
。
はそれが、
市民に
があるかを判断
判断して
して、
受諾か
拒否を
市はそれが
、街と市民
に益があるかを
判断
して
、受諾
か拒否
を行う。
George Kelly, Hugh McCabe, "A Survey of Procedural Techniques for City Generation",
3.3., Agent Based Simulation, http://www.gamesitb.com/SurveyProcedural.pdf

References(1) George Kelly, Hugh McCabe, "A Survey of Procedural Techniques
for City Generation", 3.3., Agent Based Simulation,
http://www.gamesitb.com/SurveyProcedural.pdf

社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

社会体験型ゲーム
アバターとなってエージェントの社会を体験する

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

代表的な「評判システム」の系譜
1997

1999

2000

Ultima Online

2002

2004

2005

Never WinterNight

Gunslinger

World of
Warcraft

Ever Quest

Master of
Epic「Ultima Online」 におけるパラメーターベースによる「うわさ」（評判）システム

Ultima Online における「うわさ」（評判）システム
http://update.uo.com/repfaq/
カルマ

プレイヤーの善悪の評価するパラメーター

カルマによってＮＰＣの接し方が変化する。あまりに下がるとNPC からの評価が下がり、最悪の場合、店でアイテムを売ってくれない。

カルマを
げるには？
カルマ
を上げるには？
NPC によいカルマのゴールド・食料を施す
邪悪なクリ‐チャーを倒す

カルマが
がるのは？
カルマ
が下がるのは？
NPC を殺す。PC を殺したと報告される。
動物を殺す。盗む。悪いカルマのものを NPC に与える。

Ultima Online における「うわさ」（評判）システム
http://update.uo.com/repfaq/
フェーム（有名さ）プレイヤーの有名さを評価するパラメーター（善悪によらない）

フェームが高くなればなるほど自分の行動の情報が開示されることになる。
また、特権（馬、家…）を得るためには、高いフェームが必要となる。

フェームを
げるには？
フェーム
を上げるには？
NPCによいゴールド・食料を施す。
自分より有名なNPCやクリーチャーを倒す

フェームが
がるのは？
フェーム
が下がるのは？
一度死ぬたびに１０％下がる。或いは、４時間ごとに１％下がる。

『Gunslinger』における事象知識ベースによる「うわさ」（評判）システム

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評判システム
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
2. Player Aided Lawmen
3. Player Killed Bandit
4. Player TradedWith Townsperson
5. […]

NPCごとの記憶
Group
Farmers
LawmenBandits
PlayerTownspeople

Memory Element
1235Banditこの盗賊(Bandit)は、Player が味方（Bandit）を殺し、敵である保安官（Lawmen）を助けたことを聞いて、Player を嫌っている。

Reputation
Neural
Hate
Like
Hate
Neural評判システムイベント登録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評判システムイベント登録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

B3
NPC

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

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

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

NPC

NPC

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

4

4.

NPC

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

B1
NPC

5.

Player

B2
NPC

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

B3
NPC

B3

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

NPC

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

評判システム（情報交換）
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

References(1) Greg lt, Kristin King, “A Dynamic Repuitation System
Based on Event Knowledge”, 8.6, AI Game Programming
Wisdom(2) Richard Rouse III,"Postmortem: The Game Design ofSurreal's The Suffering", Gamasutra,
http://www.gamasutra.com/view/feature/2110/postmortem_the_game_design_of_.php(3) "Gunslinger: First Impressions",IGN,
http://ps2.ign.com/articles/134/134549p1.html(4) Gunslinger [PS2 - Cancelled]
http://www.unseen64.net/2009/09/15/gunslinger-ps2-cancelled/Never Winter Night における評判システム

Ultima Online の評判システム
Ever Quest の評判システム
Gunslinger の評判システム

独自の評判システム

Never Winter Night における評判システム
各NCPの種族間友好度 初期値 (主体)が（対象）をどれぐらいよく思っているか主体

対象 モンスター

山賊

ガード

一般人

モンスター

100

0

0

0

山賊

50

50

0

0

ガード

0

0

100

100

一般人

0

0

100

80

敵対行動に対する友好度変化表
目撃者

誰もいない

友好種族
を攻撃。

攻撃した
種族の友
好種族か
ら目撃

中立種族
を攻撃

攻撃した種族に対する中立種族からの目
撃

敵対す
る種族
に対し
て

敵族から目
撃

攻撃

-2

-12

-6

-4

-2

-2

0

殺人

-5

-45

-25

-15

-5

-5

0

盗む

-1

-5

-3

-2

0

-1

0

誰もいない場所で殺人を犯すことと、周囲に目撃者がいる場合では、そのイベントがもたらす友好度の変化は違うはずだ。

Never Winter Night における評判システム
敵対行動に対する友好度変化表
目撃者

誰もいない

友好種族
を攻撃。

攻撃した
種族の友
好種族か
ら目撃

中立種族
を攻撃

攻撃した種族に対する中立種族からの目
撃

敵対す
る種族
に対し
て

敵族から
目撃

攻撃

-2

-12

-6

-4

-2

-2

0

殺人

-5

-45

-25

-15

-5

-5

0

盗む

-1

-5

-3

-2

0

-1

0

犯人の殺した種族からの友好度-45下がる）
犯人の目撃者の種族からの友好度-25下がる

目撃Never Winter Night における評判システム
種族間友好度 初期値 (主体)が（対象）をどれぐらいよく思っているか

主体

対象 PC

モンスター

山賊

ガード

一般人

モンスター

0

100

0

0

0

山賊

0

50

50

0

0

ガード

95

0

0

100

100

一般人

75

0

0

100

80

(注) PC のある種族に対する好感度 は、その種族のPCに対する好感度と同値とする。

Personal Reputation の導入
ガードは攻撃されたキャラクターに対する情報を保持する
評判
ガード

ガード

ガード
ガード

時間
40
ガード

220

ガードが持つ攻撃したＰＣに対する評判の補正
ガード

PCが全てのガードから袋叩きにならない
かつ それなりに評判を落としておく

References
Mark Brokington, “Building a reputation system: Hatred,
Forgivveness, and Surrender in Never Winter Nights”, 6.5,
Massive Multiplayer Game Development

World of Warcraft における評判システム
WoWWiki http://www.wowwiki.com/Reputation

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

「Assassin’s Creed 」における群集制御
GDC08報告会
報告会(3/3)
三宅陽一郎氏「に見る最新AIと報告会
三宅陽一郎氏「GDCに最新 とプロシージャル技術
プロシージャル技術」
技術」
http://igda.sakura.ne.jp/sblo_files/ai-igdajp/AI/IDGA_GDC08_Miyake_public.pdf

「Assassin’s Creed 」における群集制御「ASSASSIN’S CREED」における群集制御:リアルな群集を作る
Taming the Mob: Creating believable crowds in ASSASSIN’S CREED
https://www.cmpevents.com/GD08/a.asp?option=C&V=11&SessID=6996
講演者：Sylvain Bernard (Animation Director, Ubisoft Montreal),
James Therien (Technical Lead for crowd gameplay, Ubisoft Montreal)
日時：2月22日（金）10時30分～11時30分
場所：North Hall, 132号室

群集の作り方(1) アニメーション(2) パス検索(3) スポウンニング（発生）(4) 反応システム(5) 思考（意思決定）(6) イベント

(1) アニメーション(I) スタイルド・キーフレーム・アニメーション- モーション・キュプチャーデータをアレンジ
(II)
(III)
(IV)
(V)

スケルトンデータはどのキャラクターでも同じ
ボーンの数は膨大- メイン５５、頭３５、プロシージャル４０～８０
物理的に運動する Hinge Bones
移動アニメーション- １２２個キャラクターによる割付けアニメーション表
その他
市民
（女性）

地上移動

緊急

市民
（男性）

地上移動

緊急

兵士

地上移動

兵士
（通常）

地上移動

緊急

アサシン

地上移動

緊急

殺傷

戦闘

昇降

フリーラン

基本

地上移動

緊急

殺傷

戦闘

昇降

フリーラン

フリー
ラン

戦闘

キャラクター・アニメーションの内わけ
待機＆何もしない

アニメーション
遷移用データ移動

反復アニメーション
の終わり

１０

１０８

１４

１２

その他

２４

昇る
何もしな いゆっくり歩く待機（高）Ｌ

振り向き
出発

普通に歩く

待機（高）Ｒ

まっすぐ
出発

横に歩く

待機（低）Ｌ

とまる

早歩き＆
走る

歩きおわる

振り返る

待機（低）Ｒ

逆方向に
走る

スプリント

歩くのを
急にやめる

方向を
変える

(2-II)パス検索システム(1)パス検索の必要のない群集- ナビゲーション・ハイウェイ（デフォルトの進行ルートを巡行するだけ）

(2-I)パス検索システムの作り方(2) パス検索
Step1: 衝突モデルからナビゲーション・メッシュとウエイポイントを自動生成（ウエイポイントを置くときは周囲の障害物とコリジョンをしないチェックもしているはずだ（三宅））Step2: ナビゲーション・メッシュとウエイポイントを対応づける
Step3: 複雑なトポロジー（地形情報）上のウエイポイントには
メタリンク情報を埋め込む

データ構造： 各メッシュはその上にあるウエイポイントをリストとして持つ

Step1: 衝突モデルからナビゲーション・メッシュとウエイポイントを自動生成

Step2: ナビゲーション・メッシュとウエイポイントを対応づける

Step3: 複雑なトポロジー（地形情報）上のウエイポイントには
メタリンク情報を埋め込む

(2-II)パス検索システムの使い方

まずナビゲーション・メッシュでグローバルに検索する
１つのメッシュの中ではウエイポイントで検索する（Ａ＊検索の計算量を軽減することができる。特にＡＣのようなモブ制御には必須）

(2-II)パス検索システムの使い方

まずナビゲーション・メッシュでグローバルに検索する
パス検索データはスケールによって１つのメッシュの中ではウエイポイントで検索する
階層化するといろいろ便利！
（Ａ＊検索の計算量を軽減することができる。特にＡＣのようなモブ制御には必須）

(3) 群集の発生のさせ方（方針）
密度をコントロールする

何処にいつ発生させればよいか？
（方針①）ユーザーからは常に群集が見えてないといけない（方針②）見えてなければいつ消えても構わない(3) 群集の発生のさせ方（解法）
密度をコントロールする

(3) 群集の発生のさせ方（解法）
密度をコントロールする
体の部位、声、振る舞いなどバリエーションを持たせて生成できる

(4) 群集反応システム
壁
イベントがイベント が起 こったポイント
こった ポイント音 に 気付いた
気付 いた振いた 振り向きながら
歩 いて そのまま 去っていく

一旦立ち
一旦立 ち止まるが、まるが、去 っていく

(4) 群集反応システム① イベント（ユーザー）に反応
円状に領域を指定して反応を区別する

同心円状に反応を区別する
中心の白い円は立ち止まり、周囲の円はちょっと立ち止まって立ち去る音に気付いて振り返りながら去っていくというパターンもある(4) 群集反応システム
イベント（ユーザー）に反応①円状に領域を指定して反応を区別する②音に反応

同心円状に反応を区別する
中心の白い円は立ち止まり、周囲の円はちょっと立ち止まって立ち去る音に気付いて振り返りながら去っていくというパターンもあるポストモーテム（反省）(1) モブは街の雰囲気を出しているが、ゲーム性そのものに関わっていない
ユーザーに突き飛ばされる、傍観する、歩いている、後ろの方で話している。

(2) その場で何かをしている人がいない。
店の売り子や噴水で水を飲んでいる人を作りたかった。

もっとゲームにモブを絡ませたかった！

伝染病

Plague Outbreak – World of Warcraft – September 2005
http://www.mmocrunch.com/2007/12/04/top-5-most-memorable-events-in-mmorpg-history/

本講演の構成
第一部 「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

The Sims の社会シミュレーション

The Sims

The Sims のAI
Based on: Richard Evans, “Modeling Individual Personalities in The Sims 3”,
http://cmpmedia.vo.llnwd.net/o1/vault/gdc10/slides/Evans_Richard_ModelingIndividualP
ersonalitiesInTheSims3.pdf

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://cmpmedia.vo.llnwd.net/o1/vault/gdc09/slides/Combined.ppt

自律型ＡＩのコアの作り方① ＡＩの内部変数として、時間的に自律変化する変数（＝関数）をセットする。
② その変数値（と外部環境の変数を結び付けながら）、異なる行
動を取るようにプログラムを書く。
③ そういった変数を複数増やして、組み合わせることで、複雑な 内部構造を持つＡＩを作ることが出来る。
[参考] ゴール指向ＡＩ， ＢＤＩアーキテクチャ

The Sims のＡＩの原理

三宅陽一郎、「におけるゲーム
三宅陽一郎、「Spore、「
におけるゲームＡＩ
ゲームＡＩ技術
ＡＩ技術と技術とプロシージャル」
プロシージャル」 （DiGRA Japan 第１４回
１４回 月例研究会）
研究会）http://www.igda.jp/modules/mydownloads/visit.php?cid=2&lid=77

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 + …

計算の仕方

W_Hunger(-80)

X_Hunger

W_Hunger(60)60-80
W_Hunger関数

計算の仕方

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） より圧倒的に大きい

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

Mood を最大化

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

Mood を最大化

冷蔵庫へ行きます。

Mood を最大化

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

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

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

Social -30

Mary

Flirt (social +25)
Talk (social +15)
Compliment (social +20)

NPC 同士も、相手が自分のパラメーターをどう変化させるかを計算して決定する。上記では、Bob は、社交パラメータが低下しており、Flirt （いちゃつく）ことで、それが回復するので、Flirt を選択する。

NPC-NPC インタラクション

Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

NPC-NPC インタラクション(いちゃつく)Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

NPC-NPC インタラクション(いちゃつく)Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

The Sims のＡＩの原理
三宅陽一郎、「におけるゲーム
三宅陽一郎、「Spore、「
におけるゲームＡＩ
ゲームＡＩ技術
ＡＩ技術と技術とプロシージャル」
プロシージャル」 （DiGRA Japan 第１４回
１４回 月例研究会）
研究会）http://www.igda.jp/modules/mydownloads/visit.php?cid=2&lid=77

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

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり各行動のつくり込のつくり込み(3) Edith による行動の作りこみ
これだけだと、原始的で単発の行動しかできないけれど…
実際は、一連の行動のシークエンスをＡＩに行わせたい。
そのためのビジュアル・プログラミング環境が、Edith

(3) Edith による行動の作りこみ
プログラミング・オブジェクトを繋げて行くビジュアル・プログラミング環境

Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

Edithプログラミング・オブジェクトを繋げて行くビジュアル・プログラミング環境

Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

Edith Demo

http://www.DonHopkins.com/home/movies/TheSimsPieMenus.mov

実例① 「調理して食べる」
FridgeHunger +30

Hungry実例① 「調理して食べる」
Fix Dinner

Fridgefood

実例① 「調理して食べる」
Fix Dinner

Fridgefood

cookcounterstove実例① 「調理して食べる」
Fix Dinner

FridgePlacement surface

food

chair
counter

stove

table

実例① 「調理して食べる」
Fix Dinner

FridgeDisposal (neat)
food

chair
counter

stove

table

dishwasher

Edith for Mood Adjuster (パーティ盛り上げグッズ)

Kenneth D. Forbus “Some notes on programming objects in. The Sims”
http://www.qrg.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf

(1) 自動物語生成

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

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込み(4) 各Simsたちをより個性的にするMaslow の欲求階層
人間の持つ欲求は段階的に階層がある個性化の２つの方針(A) 内面の構造を多様にする(B) 人との（社会的）インタラクションを変化させる
人間の個性の表現は、内面
内面をくこと、そして、内面を深く描くこと
状況的な行為によってによって表現されるのだ（ショーペンハウエル）。
状況的
な行為
によって

個性化の２つの方針(A) 内面の構造を多様にする(B) 人との（社会的）インタラクションを変化させる
人間の個性の表現は、内面
内面をくこと、そして、内面を深く描くこと
状況的な行為によってによって表現されるのだ（ショーペンハウエル）。
状況的
な行為
によって

個性化の方法① 各Simは80ある特性のうち５つをピックアップする② 特性は、各アクションの仕方を変化させる（例）歩き方、喋り方、待ち方、見回し方など。
③ ゲームデザイナーがチューニングできるように、
データドリブンの仕組みを作る。

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

対象

GDC09 資料 http://cmpmedia.vo.llnwd.net/o1/vault/gdc09/slides/Combined.ppt

問題点：時間帯によっては適しない（個性化のための）動機パラメーターがある

ある時間帯
時間帯は
は特定
特定の
の動機
動機パラメーター
パラメーターをを削除
ある時間帯
パラメーター個性化の２つの方針(A)内面の構造を多様にする(B) 人との（社会的）インタラクションを変化させる
人間の個性の表現は、内面
内面をくこと、そして、内面を深く描くこと
状況的な行為によってによって表現されるのだ（ショーペンハウエル）。
状況的
な行為
によって

データドリブンなプロダクション・ルール

プロダクションルール

データドリブンなプロダクション・ルール

プロダクションルール

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

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

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込み(4) 各Simsたちをより個性的にする(5) シミュレーション上のテクニック（The Sims3）

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

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込み(4) 各Simsたちをより個性的にする(5) シミュレーション上のテクニック（The Sims3）

シミュレーション上のテクニック（The Sims3）(1) 階層型プランニング(2) オブジェクトとのインタラクション効率化(3) 自動欲求充足(4) ストーリー駆動制御

各ＡＩのアルゴリズム
階層型プランニング

問題点：プログラムの分岐が多すぎる
あらゆる相互作用
相互作用を
あらゆる
相互作用
を考慮

注目する
するエージェント
エージェントの行動範囲だけをだけを考慮
注目する
エージェント
の行動範囲
だけを
考慮

計算量の
の軽減
計算量

シミュレーション上のテクニック（The Sims3）(1) 階層型プランニング(2) オブジェクトとのインタラクション効率化(3) 自動欲求充足(4) ストーリー駆動制御

問題点：各ＡＩの感情パラメーター多すぎる動機パラメーターのシミュレーションの効率化
あらゆる同期
同期パラメーター
パラメーターをあらゆる
同期
パラメーターを考慮

動機パラメーター
パラメーターの物と動機パラメーターのマッピング

物と欲求の相互作用マップ
動機パラメーター

インタラク
ション

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

シミュレーション上のテクニック（The Sims3）(1) 階層型プランニング(2) オブジェクトとのインタラクション効率化(3) 自動欲求充足(4) ストーリー駆動制御特定の欲求は自動的に充足

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

シミュレーション上のテクニック（The Sims3）(1) 階層型プランニング(2) オブジェクトとのインタラクション効率化(3) 自動欲求充足(4) ストーリー駆動制御

メタAIが街全体をコントロールする
男女の
バランスを
男女
のバランス
を調整

雇用率を
雇用率
を調整

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

(1) 自律的に生活を営む。
(2) エージェント同士の社会的にインタラクション(3) Edith による
各行動のつくり込み(4) 各Simsたちをより個性的にする(5) シミュレーション上のテクニック（The Sims3）

本講演の構成第一部「社会シミュレーションの空間とは何か？」
第二部 「社会的デジタル空間」
第一章
第二章
第三章

社会シミュレーション
俯瞰型シミュレーションゲーム
社会体験型ゲーム

第一節 オンラインゲームにおける評判システム
第二節 Assassin’s Creed の群集システム
第三節 The Sims における社会シミュレーション

第三部 「総論」

社会的デジタル空間
世界を俯瞰的に観察する（シミュレーション）

社会
シミュレーション
プレイヤーが（プレイヤー
が
干渉しない
しない。
干渉
しない
。
プレイヤーというプレイヤーという
概念はない
はない））
概念
はない

世界を内側から体験する
（ゲーム）

俯瞰型
シミュレーション
ゲーム

体験型
ゲーム

プレイヤーが（プレイヤー
が
神的な
立場から
から干渉
神的
な立場
から
干渉
する））
する

プレイヤーが（プレイヤーがエージェントのエージェント
の
一人として
として活動
活動する
する））
一人
として
活動
する

社会的デジタル空間
３Ｄ

社会シミュレーション
環境シミュレーション
環境シミュレーション（
シミュレーション（京都大学）
京都大学）

俯瞰型シミュレーション
The Sims
ゲーム

社会体験型ゲーム
Ultima Online

Black & White

Assassin’s Creed

Gunslinger

AI Implant
SimCity

ゲーム

シミュレーション（インタラクティブ）
インタラクティブ）
ガンパレードマーチ

社会シミュレーション
社会シミュレーション

くりきん

Genocide
Automation

２Ｄ社会的デジタル空間
世界を俯瞰的に観察する（シミュレーション）

社会
シミュレーション
デジタル世界に社会を実現する
基本技術

世界を内側から体験する
（ゲーム）

俯瞰型
シミュレーションゲーム＋インタラクション

体験型
ゲーム
＋実現した
社会システムに一人称として入り込む社会的デジタル空間
世界を俯瞰的に観察する（シミュレーション）

社会
シミュレーション
デジタル世界に社会を実現する
基本技術

世界を内側から体験する
（ゲーム）

俯瞰型
シミュレーションゲーム＋インタラクション

体験型
ゲーム
＋実現した
社会システムに一人称として
入り込む

ゲーム体験
体験として
として豊
かにするには、全体のシステムをかにする視点
視点と
ゲーム
体験
として
豊かにするには、全体のシステムを豊かにする視点と、一人称視点で体験をリッチにして
にして行
視点、
つの視点
視点が
一人称視点
で体験
をリッチ
にして
行く視点
、二つの
視点
が必要

ユーザー体験を豊かにするための社会的デジタル空間

全体のゲーム空間（社会的デジタル空間）
ユーザーのユーザーの周囲の
周囲の
ゲーム空間
ゲーム空間

全体のゲーム空間がユーザーの周囲のゲーム空間を常に変化させながら、進行するゲームデザインのスタイル

ユーザー体験を豊かにするための社会的デジタル空間
ユーザーの周囲の
ゲーム空間

ユーザー

ゲームデザイナー

通常は、ユーザーの周囲のゲーム空間に比重を置いて、ゲームをデザインして行く。

ユーザー体験を豊かにするための社会的デジタル空間
ゲーム全体空間

ユーザーの周囲の
ゲーム空間

ユーザー

ゲームデザイナー

社会的なゲームでは、大局的なゲームダイナミクスと、局所的なユーザーの周囲のゲーム空間の双方からユーザーの体験を作って行く。

ソーシャルゲーム

ユーザーの周囲の
ゲーム空間

ユーザー

ゲーム
全体空間

ユーザーの周囲の
ゲーム空間

ユーザー

ユーザー体験を豊かにするための社会的デジタル空間
ゲーム全体空間

ユーザーの周囲のゲーム空間

ここにどれだけの深みをもたすことができるか？

ゲームデザイナー

社会的なゲームでは、大局的なゲームダイナミクスと、局所的なユーザーの周囲のゲーム空間の双方からユーザーの体験を作って行く。

ユーザー体験を豊かにするための社会的デジタル空間

ユーザーの周囲の
ゲーム空間

ユーザー

ゲーム
全体空間

ユーザーの周囲の
ゲーム空間

ユーザー

社会的なゲームでは、大局的なゲームダイナミクスと、局所的なユーザーの周囲のゲーム空間の双方からユーザーの体験を作って行く。

本講演のまとめ(1) 社会的なゲームには、俯瞰型と体験型が存在する。
(2) 社会的ゲームは、ユーザーの周囲の局所的なゲー
ム空間と、絶えずそれを変化させる大局的なゲー
ム空間の相互作用の変化が特徴的である。
(3) 社会的ゲームはそういった局所と大局ゲーム空間の干渉を活かして、双方からユーザーのゲーム体
験を深めて行くことが本質である。

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

これ以外に、意見や質問があれば、メイルかアンケートへ

y.m.4160@gmail.com
Blog 「y_miyakeのゲームＡＩ千夜一夜」
http://blogai.igda.jp/
Twitter @miyayou