Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
ゲームAIとマルチエージェント(上)
三宅 陽一郎
三宅陽一郎@miyayou
2017.9.4
https://www.facebook.com/youichiro.miyake
http://www.slideshare.net/youichiromiyake
y.m.4160@gmail.com
参考文献
https://www.ai-gakkai.or.jp/my-bookmark_vol32-no4/
• 21世紀に“洋ゲー”でゲームAIが遂げた驚異
の進化史。【AI開発者・三宅陽一郎氏インタ
ビュー】
• http://news.denfaminicogamer.jp/interview/g
ameai_miyake
参考文献
人工知能の歴史
1956年 1986年 2016年
人工知能
発祥
日本人工知能学会
発足
現在
経歴
京都大学(数学) 大阪大学(原子核実験物理) 東京大学
(エネルギー工学/人工知能)
高エネルギー加速器研究所(半年ぐらい。修士論文)
http://www.facebook.com/youichiro.miyake
Works (2006-2016)
AI for Game Titles
Books
参考文献
三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」
(17ページ) (人工知能学会誌、2017 2号)
「IT、都市、ヘルスケア、あらゆる領域で
人工知能と人間が共創する未来」
• WIRED 「INNOVATION INSIGTS」
http://wired.jp/innovationinsights/post/analytics-cloud/w/cocreation_with_ai
• ThinkIT https://thinkit.co.jp/author/10026
• AI最前線の現場から【スクウェア・エニックス】
目次
• 第一章 ゲームAIと人工生命
• 第二章 戦術位置検索システム
• 第三章 知能とコミュニケーション
• 第四章 ゲームにおける様々な実例
• 第五章 分散人工知能
• 第六章 「ゲームにおけるマルチエージェント」
第1節 集団における知性 概論
第2節 群知能の方法
第3節 クロムハウンズにおけるマルチエージェント技術
第4節 発展
• 第七章 人工知能と創造性
• 第八章 メタAIの発展
第一章 ゲームAIと人工生命
FC SFC SS, PS PS2,GC,Xbox Xbox360,PS3,Wii
DC (次世代)Hardware 時間軸20051999
ゲームの進化と人工知能
複雑な世界の
複雑なAI
ゲームも世界も、AIの身体と内面もますます複雑になる。
単純な世界の
シンプルなAI
(スペースインベーダー、タイトー、1978年) (アサシンクリード、ゲームロフト、2007年)
(例) スペースインベーダー(1978)
プレイヤーの動きに関係なく、決められた動きをする
(スペースインベーダー、タイトー、1978年)
(例)プリンス・オブ・ペルシャ
「プリンス・オブ・ペルシャ」など、
スプライトアニメーションを用意する必要がある場合、
必然的にこういった制御となる。
(プリンスオブペルシャ、1989年)
原始の海+光+熱+稲妻
http://us.123rf.com/400wm/400/400/anterovium/anterovium1102/anterovium110200037/8952668 -light-beams-from-ocean-surface-penetrate-underwater-through-deep-blue-sea.jpg
ユーリーミラーの実験
ガスから生命の構成要素であるアミノ酸を合成した。
ハロルド・ュ―リーの研究室で、スタンレー・ミラーが実験(1953年)
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Miller-Urey_experiment_JP.png
極性頭部 非極性尾部
水と仲良し 水と溶けあえない
(参考)永田和宏 「生命の内と外」 (「考える人」(Vol.45))
自己組織化
原始の海で構造化=外と内の形成
外
内
Energy
http://28275116.at.webry.info/201005/article_7.html
原始の海で構造化=外と内の形成
外
内
Energy
エントロピーの法則
時間
エネルギー
もしエネルギーが流入しなければ、その系のエントロピー(雑然さ)は増大する。
エントロピーの法則
構造のヒステリシス
Energy
生物=エネルギーが高い状態で
ひっかかっている。
なぜ?
構造のヒステリシス
世界
外と内の交流
エネルギーEをゲット
アクション・老廃物
極めてメカニカルな次元。
世界
外と内の交流=非平衡系
エネルギーEをゲット
アクション・老廃物
極めてメカニカルな次元。
内部構造を持つ。
(そして内部構造が維持される)
世界
外と内の交流=非平衡系
極めてメカニカルな次元。
内部構造を持つ。
INPUT
OUTPUT
代謝機能(内部処理)
散逸構造とは?
http://www.jst.go.jp/pr/announce/20090522/
http://www.applc.keio.ac.jp/~asakura/asakura_j/dissipative.html
散逸構造は非平衡系であり、ゆらぎを成長させ、系の自己組織化を促す。
ベナールセル
https://www.youtube.com/watch?v=UhImCA5DsQ0
世界
外と内の交流=散逸構造
極めてメカニカルな次元。
内部構造を持つ。
INPUT
OUTPUT
代謝機能
テセウスの船(パラドックス)
船の老朽化した部分を、新しい木に入れ替えているうちに、
全部を入れ替えてしまった。
はたしてこの船は元の船と同一のものであろうか?
http://img02.hamazo.tv/usr/j/a/g/jagr/629.jpg
テセウスのパラドックス
物質的構成 = 循環する
物質によらず不変なもの 構造
テセウスのパラドックス
物質的構成 = 循環する
物質によらず不変なもの 構造 情報
だから、こう言える。
生物は物質的存在であると同時に、
情報的存在でもあるのだ。
テセウスのパラドックス
物質
情報
情報
物質
生物は、情報的存在であり、同時に物質的な存在である。
物質は情報に存在を与え、情報は物質に構造を与える。
情報と物質
情報
物質
生物は、情報的存在であり、同時に物質的な存在である。
物質は情報に存在を与え、情報は物質に構造を与える。
「情報と物質」から「精神と身体」へ
情報
物質
精神・知性
身体
精神と身体、そして進化
情報
物質
精神・知性
身体
進化
世界
外と内の交流=散逸構造
INPUT
OUTPUT
世界
物質的循環
物質
物理的INPUT
物理的OUTPUT
生理的代謝機能
世界
情報的循環
情報INPUT
INFORMATION
OUTPUT
INFORMATION
情報処理=情報代謝
(つまり思考)
物質的存在としての身体がそうであるように、情報的存在として人間は、
情報を摂取し、記憶し(=情報体としての自分を組み換え)、情報をアウトプット・排泄する。
世界
情報的・物質的循環
物質
物理的OUTPUT
代謝機能情報INPUT
INFORMATION
OUTPUT
INFORMATION
情報処理=情報代謝
(つまり思考)
生理的代謝機能
物理的INPUT
世界
情報的循環
情報INPUT
INFORMATION
=センサー
OUTPUT
INFORMATION
=エフェクター
情報処理=情報代謝
(つまり思考)
=意志決定
物質的存在としての身体がそうであるように、情報的存在として人間は、
情報を摂取し、記憶し(=情報体としての自分を組み換え)、情報をアウトプット・排泄する。
精神と身体、そして進化
情報
物質
精神・知性
身体
人工知能
ハードウェア
精神と身体、そして進化
情報
物質
精神・知性
身体
人工知能
ハードウェア
知能は生き物の情報的側面である。
ユクスキュルの生物学
問い
生き物の「視る」とカメラの「視る」は
どう違うだろうか?
http://www.free-picture.net/reptiles/lizards/chameleon-wallpapers.jpg.html
生物の持つ目は、生物の知能と身体と深く結びついている
能動的な眼であり、
カメラは使用者の意思に従う受動的な眼である。
主体と客体はどう結ばれるか?
客体
(対象)
関係がない
http://sozai-free.com/sozai/00992.html
主体と客体はどう結ばれるか?
客体
(対象)
関係がない
主体と客体はどう結ばれるか?
関係がある
http://illpop.com/png_insecthtm/aquatic_a02.htm
主体と客体はどう結ばれるか?
客体
(対象)
関係がある
主体と客体はどう結ばれるか?
客体
(対象)
関係がある 知覚作用
機能環
実行器 受容器
知覚と作用で客体を“つかんでいる“
客体
作用器官 知覚器官
“現実”(主観世界)の構成要素
ユクスキュル/クリサート 「生物から見た世界」 (岩波文庫)
知覚世界作用世界
機能環
効果器
受容器
知覚と作用で客体を“つかんでいる“
客体
“現実”(主観世界)の構成要素
ユクスキュル/クリサート 「生物から見た世界」 (岩波文庫)
知覚世界活動世界
作用器官 知覚器官
機能環
効果器 受容器
客体
活動神経網 知覚神経網
前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房)
知覚世界活動世界
知覚微表担体
対象化された機構
活動担体
内的世界
環世界のスキーム(機能環)
効果器 受容器
客体
活動神経網 知覚神経網
前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房)
知覚世界活動世界
知覚微表担体
対象化された機構
活動担体
内的世界
知覚微表(Merkmal) = 客体から送られてくるさまざまな刺激
知覚微表担体(Merkmaltrager)
=客体に備わる刺激を発する諸特質
活動担体(Wirkungstrager)
=客体の捕捉領域になりうる諸特質
環世界のスキーム(機能環)
効果器 受容器
客体
活動神経網 知覚神経網
前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房)
知覚世界活動世界
知覚微表担体
対象化された機構
活動担体
内的世界
受容器
= 一定の刺激を受け取る
+
定められた刺激以外のすべての刺激を捨象する
(知覚の統一性)
機能環
前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房)
効果器 受容器
客体
活動神経網 知覚神経網
知覚世界活動世界
知覚微表担体
対象化された機構
活動担体
内的世界
世界無限
こうした諸々の機能環によって、すべての動物の、その固有の環境と
緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
世界無限
こうした諸々の機能環によって、すべての動物の、その固有の環境と
緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
世界無限
こうした諸々の機能環によって、すべての動物の、その固有の環境と
緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
環世界のイメージ
環世界=「かたつむりの殻」のように、生物それぞれが持ちつつ、
それが世界であり、それ以外の世界へ逸脱できない世界。
エージェント・アーキテクチャ
WORLD
INTELLIGENCE
センサー エフェクター
認識
Knowledge
Making
意志決定
Decision
Making
運動
Motion
Making
記憶体 Memory
情報体としての知能のカタチ
エージェント・アーキテクチャ
WORLD
INTELLIGENCE
センサー エフェクター
認識
Knowledge
Making
意志決定
Decision
Making
運動
Motion
Making
記憶体 Memory
情報体としての知能のカタチ
情報の循環=インフォメーション・フロー
エージェント・アーキテクチャ
WORLD
INTELLIGENCE
センサー エフェクター
認識
Knowledge
Making
意志決定
Decision
Making
運動
Motion
Making
記憶体 Memory
情報体としての知能のカタチ
「情報の循環=インフォメーション・フロー」 は物質の循環の情報版。
これによって知性は自己を情報的に自己組織化できる。やはり知性も散逸構造である。
レベル
ナビゲーション
AI
メタAI
キャラクター
AI
エージェントを動的に配置
レベル状況を監視
エージェントに指示
ゲームの流れを作る
自律的な判断
仲間同士の協調
時にチームAIとなる
メタAI, キャラクターAIの為に
レベルの認識のためのデータを準備
オブジェクト表現を管理
ナビゲーション・データの管理
パス検索 / 位置解析
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
現代ゲームAIの仕組み
http://dear-croa.d.dooo.jp/download/illust.html
http://www.anne-box.com/
3Dゲームの中のAI
Halo
(HALO、バンジー、2001年) デバッグ画面
The Illusion of Intelligence - Bungie.net Downloads
http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
Intelligence
World
センサー
InformationFlow
エフェクター
Agent Architecture
知能の世界
環境世界
認識の
形成
記憶
センサー・
身体
記憶体
情報処理過程
情報
統合
知能の世界
環境世界
認識の
形成
記憶
意思の
決定
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
記憶体
情報処理過程
情報
統合
知能の世界
環境世界
認識の
形成
記憶
意思の
決定
身体
制御
エフェクター・
身体
運動の
構成
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報
統合
運動
統合
知能の世界
環境世界
認識の
形成
記憶
意思の
決定
身体
制御
エフェクター・
身体
運動の
構成
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
対象・
現象
情報の流れ(インフォメーション・フロー)
影響を与える影響を受ける
サブサンプション・アーキテクチャ(ロドニー・ブルックス)
INPUT OUTPUT
時間
情報抽象度
反射的に行動
少し場合ごとに対応
抽象的に思考
理論的に考える
言語化のプロセス
= 自意識の構築化
SubsumputionArchitecture
運動の実現のプロセス
= 身体運動の生成
ルンバ (iRobot社)
http://chihoko777.exblog.jp/12567471/
環境世界
認識の
形成
記憶
意思の
決定
身体
制御
エフェクター・身体
運動の
構成
センサー・身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報
統合
運動
統合
「構成的自己=知能」
の形成(創造)
存在(身体・記憶)
自分のコア
受け渡し
自我を安定させる
自分を時間と世界
に投げ出す
レベル
ナビゲーション
AI
メタAI
キャラクター
AI
エージェントを動的に配置
レベル状況を監視
エージェントに指示
ゲームの流れを作る
自律的な判断
仲間同士の協調
時にチームAIとなる
メタAI, キャラクターAIの為に
レベルの認識のためのデータを準備
オブジェクト表現を管理
ナビゲーション・データの管理
パス検索 / 位置解析
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
現代ゲームAIの仕組み
http://dear-croa.d.dooo.jp/download/illust.html
http://www.anne-box.com/
レベル
ナビゲーション
AI
メタAI
キャラクター
AI
エージェントを動的に配置
レベル状況を監視
エージェントに指示
ゲームの流れを作る
自律的な判断
仲間同士の協調
時にチームAIとなる
メタAI, キャラクターAIの為に
レベルの認識のためのデータを準備
オブジェクト表現を管理
ナビゲーション・データの管理
パス検索 / 位置解析
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
現代ゲームAIの仕組み
http://dear-croa.d.dooo.jp/download/illust.html
http://www.anne-box.com/
メタAIの歴史
1980 1990
メタAIというのは、ゲームそのものに埋め込まれたAI。
1980 1990 2000
古典的メタAI
現代のメタAI
キャラクターAI技術の発展
メタAIの歴史
1980 1990 2000
古典的メタAI
現代のメタAI
キャラクターAI技術の発展
その歴史は古く、1980年代にまでさかのぼる。
その時代と現代のメタAIは、異なる点も多いので、
古典的メタAI、現代のメタAIと名づけて区別することにしよう。
(例)「ゼビウス」(ナムコ、1983)
敵出現テーブル巻き戻し
敵0
敵1
敵2
敵3
敵4
敵5
『あと面白い機能なんですけれど、 ゼビウスには非常に簡単なAIが組み込まれています。
「プレイヤーがどれくらいの腕か」というのを判断して、出てくる敵が強くなるんです。
強いと思った相手には強い敵が出てきて、弱いと思った相手には弱い敵が出てきます。そういっ
たプログラムが組み込まれています。 ゲームの難易度というのは「初心者には難しくて、上級者
には簡単だ」ということが、ひとつの難易度で(調整を)やっていくと起きてしまうので、 その辺を何
とか改善したいな、ということでそういったことを始めてみたのですけれど、 お陰で割合にあまり上
手くない人でも比較的長くプレイできる、 うまい人でも最後のほうに行くまで結構ドラマチックに楽
しめる、 そういった感じになっています。』
- 遠藤雅伸(出演)、1987、「糸井重里の電視遊戯大展覧会」『遠藤雅伸ゼビウスセミナー』フジテレビ -
ゼビウス
現代のメタAI
より積極的にゲームに干渉する。
メタAI
敵配位 敵スパウニング ストーリー
レベル
動的生成
ユーザー
メタAI Left 4 Dead の事例
Michael Booth,"The AI Systemsof Left 4 Dead,"Artificial Intelligence and
InteractiveDigital EntertainmentConference at Stanford.
http://www.valvesoftware.com/publications.html
今回は Left 4 Dead の事例を見てみる。
適応型動的ペーシング
[基本的発想]
(1) ユーザーがリラックスしている時に、ユーザーの
緊張度が一定の敷居を超えるまで敵をぶつけ
続ける。
(2) ユーザーの緊張度が一定の緊張度を超えると
敵を引き上げる。
(3) リラックスすると敵を出現し始める((1)へ)。
Michael Booth,"The AI Systemsof Left 4 Dead,"Artificial Intelligence and
InteractiveDigital EntertainmentConference at Stanford.
http://www.valvesoftware.com/publications.html
メタAI(=AI Director)によるユーザーのリラックス度に応じた敵出現度
ユーザーの緊張度
実際の敵出現数
計算によって
求められた
理想的な敵出現数
Build Up …プレイヤーの緊張度が目標値を超えるまで
敵を出現させ続ける。
SustainPeak … 緊張度のピークを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がゲームを認識する方法
キャラクター用に作成された
ナビゲーションメッシュを
メタ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が作用を行う領域
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) と
言う。
メタ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)
メタ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
プレイヤーからの可視領域
可視領域(プレイヤーから見えている
部屋)では、敵のスパウニング(発生)
はできない。
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
前方と背後のプレイヤー群から見えてない部屋に、
モンスターを発生させる。
まとめ
メタAIは、ゲームの流れを動的に作るAIで、キャラクターAI、イベントなどに
は命令だけを出す。これは明確に、メタAIと他のモジュールが独立した関
係にあるから可能なこと。
メタAI Left 4 Dead の事例
Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and
InteractiveDigital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html
今回は Left 4 Dead の事例を見てみる。
メタAI(=AIDirector)によるユーザーのリラックス度に応じた敵出現度
ユーザーの緊張度
実際の敵出現数
計算によって
求められた
理想的な敵出現数
Build Up …プレイヤーの緊張度が目標値を超えるまで
敵を出現させ続ける。
Sustain Peak … 緊張度のピークを3-5秒維持するために、
敵の数を維持する。
Peak Fade … 敵の数を最小限へ減少していく。
Relax … プレイヤーたちが安全な領域へ行くまで、30-45秒間、
敵の出現を最小限に維持する。
Michael Booth, "TheAISystems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html
より具体的なアルゴリズム
安全な領域までの道のり(FlowDistance)
メタAIはプレイヤー群の経路を
トレースし予測する。
- どこへ来るか
- どこが背面になるか
- どこに向かうか
Michael Booth, "TheAISystems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford.
http://www.valvesoftware.com/publications.html
メタAIまとめ
メタAIは、ゲームの流れを動的に作るAIで、キャラクターAI、イベントなど
には命令だけを出す。これは明確に、メタAIと他のモジュールが独立した
関係にあるから可能なこと。
フィールド
3つのAIの連携の例
ナビゲーション
AI
メタAI
キャラクターAI
状況を監視し、キーとなる役割を
適切なタイミングでエージェントに
指示する。
自律的な判断。
仲間同士の協調
地形を解析する
目的に応じた点を見つけ出す
目的地までのパスを計算する
Support
エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが
戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
http://dear-croa.d.dooo.jp/download/illust.html
ナビゲーションAI
ネットワーク上のグラフ検索法
ダイクストラ法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
Q
X
K
N
J
R
T
W
E
I
U
Z
Y
G
54
6 3
7 23
B C
3
G
D E
3
2 24
L
3
3
5
5
J
F
出発点(S)を中心に、最も短い経路
を形成して行く。Gにたどり着いたら終。
各ノードの評価距離=出発点からの経路
ネットワーク上のグラフ検索法
A*法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
Q
X
K
N
J
R
T
W
E
I
U
Z
Y
G
54
6 3
7 23
B C
3
3
2 24 3
5
5
出発点(S)を中心に、
そのノードまでの
最も短い経路を
形成して行く。
Gにたどり着いたら終了。
ゴール地点がわかっている場合、現在のノードとゴール
との推定距離(ヒューリスティック距離)を想定して、
トータル距離を取り、それが最少のノードを探索して行く
各ノードの評価距離=出発点からの経路+ヒューリスティック距離
ヒューリスティック距離
(普通ユークリッド距離を取る)
3+14.2 3+13.8
G H
3
5+10.5 6+8.4
パス検索とは
現在の地点から指定したポイントへの経路を、
リアルタイムで計算して導く技術。
RTS - PathfindingA*
https://www.youtube.com/watch?v=95aHGzzNCY8
Counter Strike: Path Following (デモ)
The Official Counter-Strike Bot
http://aigamedev.com/insider/presentation/official-counter-strike-bot/
レベル
ナビゲーション
AI
メタAI
キャラクター
AI
エージェントを動的に配置
レベル状況を監視
エージェントに指示
ゲームの流れを作る
自律的な判断
仲間同士の協調
時にチームAIとなる
メタAI, キャラクターAIの為に
レベルの認識のためのデータを準備
オブジェクト表現を管理
ナビゲーション・データの管理
パス検索 / 位置解析
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
現代ゲームAIの仕組み
http://dear-croa.d.dooo.jp/download/illust.html
http://www.anne-box.com/
http://dear-croa.d.dooo.jp/
キャラクターAI
キャラクターAI:意思決定
知能とは何か?
環境
人工知能とは?
身体
人工知能=人工的な存在(=身体)を環境の中で活動させる
入力(センサー) 行動(アウトプット)
知能
知能の内部世界
環境世界
エフェクター・
身体
センサー・
身体
思考
環境世界
エフェクター・
身体
センサー・
身体
記憶
思考
環境世界
エフェクター・
身体
センサー・
身体
記憶
環境世界
認識の
形成
記憶
センサー・
身体
記憶体
情報処理過程
情報
統合
記憶
環境世界
認識の
形成
記憶
意思の
決定
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
記憶体
情報処理過程
情報
統合
記憶
環境世界
認識の
形成
記憶
意思の
決定
身体
制御
エフェクター・
身体
運動の
構成
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報
統合
運動
統合
記憶
知能の世界
環境世界
認識の
形成
記憶
意思の
決定
身体
制御
エフェクター・
身体
運動の
構成
センサー・
身体
意思決定
モジュール
意思決定
モジュール
意思決定
モジュール
対象・
現象
情報の流れ(インフォメーション・フロー)
影響を与える影響を受ける
記憶
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
ルールベース意思決定
Rule-based decision making
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
タスク(仕事)ベース AI
Task-based AI
シミュレーションベース AI
Simulation-basedAI
IF ( 前置宣言文 ) then (後置宣言文)
ルールベース意思決定
Rule-based Decision Making
ルール
ここでは、この形式の制御文をルールと言う。
もちろん、IF ( … IF (....IF… ) ) ) のような入れ子構造の制御文も
ルールベースと呼ぶが、
ルールベースと言えば、基本的には、ルールを1つの単位として、
意思決定を行う、という意味となる。
推論エンジン
A B C D E
T F F F F
T T F F F
T T F T F
T T T T F
T T T T T
F T T T T
F F F T T
……………………………
……………………………
…………………
T: True F: False
ID 0 : IF A THEN B
ID 1 : IF A && D THEN C
ID 3 : IF C THEN E
ID 4 : IF B THEN D
ID .. :
ID 4 : IF E THEN ~A
ルール内の条件部がtrueの時、そのルールが発火する(fired)
すると言う。発火したルールの宣言文は true となり、またそれ
が別のルールを発火させる。
発火をくり返して、true/False
が変化して行く様子
ルール制御
ID 0 : IF …. THEN …
ID 1 : IF …. THEN …
ID 3 : IF …. THEN ….
ID 4 : IF …. THEN …
ID .. :
ID 4 : IF …. THEN …
Priority: 3
Priority: 1
Priority: 4
Priority: 5
Priority: 2
ルールに固定、あるいは変動プライオリティ(優先度)をつけて制御を行う。
あるいはランダムにルールをピックアップする場合もある。戦略思考、キャラク
ターの挙動などでよく使われる。
Priority: -
制御
ルール= IF ( 行動条件文 ) then (動作命令文)
(例) ルール制御
ID 0 : IF …. THEN …
ID 1 : IF …. THEN …
ID 3 : IF …. THEN ….
ID 4 : IF …. THEN …
ID .. :
ID 5 : IF …. THEN …
Priority: 3Priority: 1
Priority: 4
Priority: 5
Priority: 2
或いは、状況判断思考によってルールを振り分ける。
戦略思考、キャラクターの挙動などでよく使われる。
Priority: -
制御
思考
ルール= IF ( 行動条件文 ) then (動作命令文)
応用可能性例
http://gomibako.symphonic-net.com/vote.cgi?genre=act_b&rating=9
ID 0 : IF (敵確認) THEN (逆方向)
ID 1 : IF (誰もいない)THEN (ランダムウォーク)
ID 2 : IF (フルーツ発見) THEN (フルーツゲット)
ID 3 : IF (パワー発見) THEN (パワーゲット)
ID 0 : IF (敵強い) THEN (サンダガ)
ID 1 : IF (自分弱い)THEN (弱い敵に攻撃)
ID 2 : IF (HP<20) THEN (ケアル)
ID 3 : IF (パワー発見) THEN (パワーゲット)
こうなっているというのではなく、こういうふうに応用できる例
パックマンなど
RPGなど
The Sims 3 における応用
街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。
たくさんのAIを「人間らしく」制御しなければならない。
特徴付けにプロダクションルールを採用。
RichardEvans,"ModelingIndividualPersonalitiesinTheSims3",GDC 2011
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
Sims3 における応用
あらゆる相互作用を考慮
注目するエージェントの行動範囲だけを考慮
RichardEvans,"ModelingIndividual Personalities inThe Sims 3", GDC 2011
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
データドリブンなプロダクション・ルール
プロダクションルール
RichardEvans,"ModelingIndividual Personalities inThe Sims 3", GDC 2011
http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
Sims3 における応用
プロダクションルール
プロダクションルールは種類によってランク付けされていて、
最もランクの高いルールが発火する。
ルールが発火すると他のSimは、その特性を理解する。
データドリブンなプロダクション・ルール
Sims3 における応用
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
キャラクターAI:意思決定
ステートマシン入門
ステートベース
ステート 自分の行動を記述する。
ステート ステート
遷移条件
世界と自己の変化を記述する。
ステート・マシン
ステート
ステート ステート
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。
ループ構造により、フィードバック構造はない。
ステート・マシン
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。
ループ構造により、フィードバック構造はない。
待機
攻撃 パトロール
警戒
追跡
追いかける
攻撃する
威嚇攻撃
味方に指示
出口をかためる
味方を呼ぶ
味方がいない
かつ
戦闘範囲外
味方と合流
味方と合流
味方がいる
見失う
見える
見失う 見つける
巡回する
10秒経つ
物音を
聴く
応答がきた
階層型ステート・マシン
(例) Quake HFSM
状態遷移図を用いる
http://ai-depot.com/FiniteStateMachines/FSM-Practical.html
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
階層型ゴール指向型プランニングとは?
一つのゴールはより小さなゴールから組み立てられる
Goal
Goal Goal Goal
ゴールはより小さなゴールから組み立てられる
Goal
Goal Goal Goal
Goal
Goal
Goal Goal Goal
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
ユーティリティ・ベース
• ユーティリティ・ベースは高度に抽象的な戦術
決定の方法。
• 世界をモデル化し、評価すべき行動群の効用
(ユーティリティ)を数値に還元する。
The Sims シリーズのAIの作り方
人をダイナミクス(力学系、動的な数値の仕組み )として動かす。
世界を動かす PeerAI(=キャラクターAI) を構築。
Sub
Peer
Meta
Meta
Peer
Sub
[原則] 周囲の対象に対する、あらゆる可能な行動から、
ムード(幸せ) 係数を最大化する行動を選択する。
Sims (not under direct player control) choose what to do by selecting, from all of the
possible behaviors in all of the objects, the behavior that maximizes their current happiness.
Will Wright, AI: A Design Perspective (AIIDE 2005)
http://www.aaai.org/Papers/AIIDE/2005/AIIDE05-041.ppt
Kenneth Forbus,Will Wright,“Somenotes on programmingobjects inTheSims–Example”
http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
The Sims における「モチーフ・エンジン」
Ken Forbus, “Simulation and Modeling: Under the hood ofThe Sims” (NorthWerstern University)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm
Data
- Needs
- Personality
- Skills
- Relationships Sloppy - Neat
Shy - Outgoing
Serious - Playful
Lazy - Active
Mean - Nice
Physical
- Hunger
- Comfort
- Hygiene
- Bladder
Mental
- Energy
- Fun
- Social
- Room
MotiveEngine
Cooking
Mechanical
Logic
Body
Etc.
AIの人格モデル
最適(=最大効用)な行動を選択する
Hunger +20
Comfort -12
Hygiene -30
Bladder -75
Energy +80
Fun +40
Social +10
Room - 60
Mood +18
Toilet
- Urinate (+40 Bladder)
- Clean (+30 Room)
- Unclog (+40 Room)
Mood +26
Bathtub
- Take Bath (+40 Hygiene)
(+30 Comfort)
- Clean (+20 Room)
Mood +20
[原則] 周囲の対象に対する、あらゆる可能な行動から、
総合的な効用 (=Mood) を最大化する行動を選択する。
ムードの計算方法と各パラメーターのウェイトグラフ
Mood = W_Hunger(X_Hunger)* X_Hunger + W_Engergy(X_Energy) * X_Energy + …
-100 0 100 -100 0 100
-100 0 100 -100 0 100
-100 0 100 -100 0 100
-100 0 100 -100 0 100
W_Hunger W_Energy
W_Comfort W_Fun
W_Hygiene
W_Social
W_Bladder W_Room
効用(Utility)の計算の仕方
W_Hunger
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
効用(Utility)の計算の仕方
W_Hunger
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
Hunger degree at -80 = W_Hunger(-80)*(-80)
Hunger degree at 60 = W_Hunger(60)*(60)
Δ = W_Hunger(60)*(60) - W_Hunger(-80)*(-80)
Utilityfor hunger
限界効用逓減の法則
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
Δ(-80 → 60)=W_Hunger(60)*(60) - W_Hunger(-80)*(-80)
Δ (60→90) =W_Hunger(90)*(90) - W_Hunger(60)*(60)
90
W_Hunger(90)
Δ(-80 → 60) is much larger than Δ(60→90)
ある程度満たされたものを満たすより、
満たされないものをある程度満たす方が大きな満足をもたらす
Utilityfor hunger
ビールは一杯目が一番おいしい
The Sims 3 では、多くのムードや欲求が準備される。
行動 対象
GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter
アフォーダンスとユーティリティ
並木 幸介
[CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振
る舞いをさせる手法 http://cedil.cesa.or.jp/session/detail/697
アフォーダンスとユーティリティ
並木 幸介
[CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振
る舞いをさせる手法 http://cedil.cesa.or.jp/session/detail/697
参考文献
三宅陽一郎
「ディジタルゲームにおける
人工知能技術の応用の現在」
(19ページ)
(人工知能学会誌、2015)
※PDFをダウンロードできます。
http://id.nii.ac.jp/1004/00000517/
意思決定モデル
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
ステート(状態)ベースAI
キャラクターAI:意思決定
ビヘイビアツリー入門
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なうち、
最も優先度の高いノードを実行する
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なノードを
順番に実行する。
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なノードを
ランダムに一つ実行する。
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ
ランダム
プライオリティ
ランダム
ビヘイビア
(末端ノード)
層
層
選択ルール
選択ルール
強化学習(例)
強化学習
(例)格闘ゲーム
キック
パン
チ
波動
R_0 : 報酬=ダメージ
http://piposozai.blog76.fc2.com/
http://dear-croa.d.dooo.jp/download/illust.html
強化学習
(例)格闘ゲームTaoFengにおけるキャラクター学習
Ralf Herbrich, Thore Graepel, Joaquin Quiñonero Candela Applied Games Group,Microsoft Research Cambridge
"Forza, Halo, Xbox Live The Magic of Research in Microsoft Products"
http://research.microsoft.com/en-us/projects/drivatar/ukstudentday.pptx
Microsoft Research Playing Machines: Machine Learning Applications in Computer Games
http://research.microsoft.com/en-us/projects/mlgames2008/
Video Games and Artificial Intelligence
http://research.microsoft.com/en-us/projects/ijcaiigames/
意思決定モデル
ステート(状態)ベースAI
ゴール(目標)ベースAI
ルール(規則)ベースAI
ビヘイビア(振る舞い)ベースAI
意思決定というものは非常に高度で複雑なプロセスです。
でも、ゲームで用いるいくつかの簡易モデルが存在します。
シミュレーションベース AI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
「○○-basedAI」とは、○○をAIを構築する基本単位として採用したAIということ。
タスク(仕事)ベース AI
Task-based AI
意思決定
Simulation-basedAI
F.E.A.R.のプランニング
シンボルによる連鎖プランニング
ターゲットAが
死んでいる
ターゲットAが
死んでいる
攻撃
武器が装填
されている
武器が装填
されている
装填する
武器を
持っている
武器を
持っている
武器を拾う
条件なし
プラナー
プランニング
Jeff Orkins, Three States and a Plan: The AI of FEAR
http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf
計画を立てるAI/計画を変更するAI
Jeff Orkins, Three States and a Plan: The AI of FEAR
http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf
CORE Layer は、PhysicalLaryer 、Mission Layer のうちで、
どの認識を生成するかを決定するコマンドを投げる。
CERA-CRANIUM認識モデル
Arrabales, R. Ledezma, A. and Sanchis,A. "Towards the Generationof Visual Qualia
in Artificial Cognitive Architectures".(2010)
http://www.conscious-robots.com/raul/papers/Arrabales_BICS2010.pdf
CERA-CRANIUM認識モデル
http://aigamedev.com/open/article/conscious-bot/
2K Bot Prize
FPSを用いたチューリングテスト
http://www.conscious-robots.com/en/conscious-machines/conscious-robots/conscious-robots-team-wins-the-2k-botprize-2010-competi.html
http://aigamedev.com/open/article/conscious-bot/Movie:
2K Bot Prize
FPSを用いたチューリングテスト
http://aigamedev.com/open/article/conscious-bot/Movie:
AI と人間のプレイヤーが混在しながら戦う。
人間と一番間違われたAIが優勝。
http://www.botprize.org/2010.html
http://www.botprize.org/2010.html
タスクベース意思決定
階層型タスクネットワークの説明
Task-based decision making
階層型タスクネットワーク
(ゲーム設定)回復薬を作る方法
• 赤、青、緑を一色づつ集める。
• 緑、赤、緑の順番に集める。
• 青二つと赤一つ。ただし、赤の前に青を集め
ないといけない。
メソッド
(=タスクの分解の仕方)
回復薬を作る
(タスク)
回復薬を運ぶ
(タスク)
回復薬を届ける
(タスク)
メソッド
(=タスクの分解の仕方)
袋入
れる
ブランチ
全色集める
ブランチ
赤と青を集める
ブランチ
赤と緑を集める
青拾う
赤拾う
緑拾う
袋入
れる
緑拾う 緑拾う
袋入
れる
赤拾う 青拾う
赤拾う青拾う
順序なしタスク
全順序タスク
局所的順序タスク
全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある
原初タスク
回復薬を作る
(タスク)
前提条件
メソッド
(=タスクの分解の仕方)
回復薬を作る
(タスク)
回復薬を運ぶ
(タスク)
回復薬を届ける
(タスク)
回復薬を運ぶ
• 馬車を持ってきて、荷物を載せて、戦場へ運ぶ。
• 荷物に載せるには、宝箱に入れて載せる必要がある。
• 宝箱には札をつけておく必要がある。
メソッドメソッド
馬車に
載せる
馬車を呼ぶ
戦場まで行
く
荷を載せる
宝箱に
札をつける
宝箱に
入れる
順序なしタスク
全順序タスク
局所的順序タスク
馬車を持っている
原初タスク
回復薬を運ぶ
(タスク)
前提条件
荷を載せる
馬車が近くにある
局所的順序タスク
袋入
れる
回復薬を届ける
(ドメイン)
ブランチ
全色集める
ブランチ
赤と青を集める
ブランチ
赤と緑を集める
青拾う
赤拾う
緑拾う
袋入
れる
緑拾う 緑拾う
袋入
れる
赤拾う 青拾う
赤拾う青拾う
順序なしタスク
全順序タスク
局所的順序タスク
全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある
原初タスク
回復薬を作る
(タスク)
生成されるタスクネットワーク
袋入
れる
青拾う
赤拾う青拾う
スタート
馬車
を
呼ぶ
戦場
まで
行く
ゴール
馬車
に載
せる
宝箱
に札を
つける
宝箱
に入
れる
タスクベース意思決定
階層型タスクネットワークの説明
KILLZONE 2 における階層型タスクネットワーク
Task-based decision making
Killzone 2 のAI
Based on: Alex Champandard,Tim Verweij, Remco Straatman,"Killzone 2MultiplayerBots",
http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf
単純なタスクベースのシステムは機能するし、使われることも多い。しかし、
近年の複雑なゲームのAIではよりマルチな時間・空間スケールに対応する必要があり、
階層型タスクネットワーク(HTN, HierarchicalTask Network)が使用される。
Killzone 2 AI (マルチプレイヤーモード)
(1) Killzone 2 のAI思考
(2) Killzone 2 のマップ自動解析
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
Killzone 2 Screen
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
Killzone 2 AI (マルチプレイヤーモード)
(1) Killzone 2 のAI思考
(2) Killzone 2 のマップ自動解析
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
「Killzone 2」におけるチームの構造図と
コミュニケーション・パス
司令官のAI
部隊長のAI
各
メ
ン
バ
|
の
AI
各
メ
ン
バ
|
の
AI
各
メ
ン
バ
|
の
A
部隊長のAI
各
メ
ン
バ
|
の
AI
各
メ
ン
バ
|
の
A
各
メ
ン
バ
|
の
AI
部隊長のAI
各
メ
ン
バ
|
の
A
各
メ
ン
バ
|
の
AI
各
メ
ン
バ
|
の
A
防衛、前進など戦術を指示
戦術の成功・失敗を報告
(フィードバック)
移動地点を指示
ターゲット指示
指示の再発行要求
指示の再発行要求
各AIのアーキテクチャ
HTN Planner
各メンバーのエージェント・アーキテクチャ
上からの
命令
メッセージ
情報
統合
World
State
HTN
プランナー
計画
タスク
実行機
コントローラー
インプット
知能内部
感覚刺激
認識
脅威
Squad AI アーキテクチャ
部隊長のエージェント・アーキテクチャ
司令官から
の命令
各兵士から
の報告
情報
統合
World
State
HTN
プランナー
計画
タスク
実行機
各メンバー
への命令
知能内部
メモリ領域
実行モジュール
HTN (Hierarchical Task Network)
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
HTN (Hierarchical Task Network)
Domain
Method Method Method
Precondition Precondition Precondition Precondition Precondition
Task
Task
Task
Task Task
Task
Task
Task
Task
Task Task
Task
TaskTask
Task
Task
Task
Task
Branch Branch Branch Branch Branch
Task を実行する順序などは決められている
HTN (Hierarchical Task Network)
Dana Nau et al., “SHOP2: An HTN PlanningSystem”,
Journal of Artificial Intelligence Research 20 (2003) 379-404
HTN (Hierarchical Task Network)
Dana Nau et al., “SHOP2: An HTN PlanningSystem”,
Journal of Artificial Intelligence Research 20 (2003) 379-404
Task はプラナーの
規則によって整列される
HTN (Hierarchical Task Network)
Dana S. Nau,"Hierarchical Task Network Planning",Lecture slides forAutomatedPlanning:
Theory and Practice http://www.cs.umd.edu/~nau/planning/slides/chapter11.pdf
HTN (Hierarchical Task Network)
Dana S. Nau,"Hierarchical Task Network Planning",Lecture slides forAutomatedPlanning:
Theory and Practice http://www.cs.umd.edu/~nau/planning/slides/chapter11.pdf
Task はプラナーの
規則によって整列される
HTN (Hierarchical Task Network)
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
HTN (Hierarchical Task Network)
Precondition
Task
Precondition
Task
On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
銃で攻撃 ロケットで攻撃
銃で攻撃
ロケットで
攻撃
敵がヒューマノイド
射程距離内
敵はヒューマノイドでも砲台でもない
射程距離内
武器を選択して攻撃
(タスク)
装填
攻撃
終了
装填
攻撃
終了
HTN (Hierarchical Task Network)
各AIの思考 On the AI Strategy forKILLZONE 2′s Multiplayer Bots
http://aigamedev.com/open/coverage/killzone2/
TaskList
TaskList
分岐リスト
分岐リスト
分岐(Branch)
分岐(Branch)
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/
… 前進
なし
拠点を防衛するように命令する
(タスク)
それまでのメンバーデータを消去
新しくメンバーの状況を収集
命令発行シークエンス起動
(これまでの行動を停止せよ)
前進命令を発行
到着したら停止命令
拠点を防衛せよ
かがみながら近づく
行動する (タスク)
治療プランスタート
治療を周囲に通達
車
防御
ターゲットを選択
治療器具を使用する
徒歩前進
治療
行動
中止 継続 開始
治療
器具変更なし 器具変更あり
メソッド適用
メソッド適用
メソッド適用
メソッド適用
かがみながら近づく
治療器具選択
治療プランスタート
治療を周囲に通達
治療する
プラン終了
防御
ターゲットを選択
治療器具を使用する
治療
中止 継続 開始
治療
器具変更なし 器具変更あり
メソッド適用
メソッド適用
メソッド適用
Squad AI アーキテクチャ
ゲームAIとマルチエージェント(上)
兵士へ命令
スカッドを目的に応じて動的に構成
Killzone2
スカッドを目的に応じて動的に構成
Killzone2
http://www.bungie.net/Inside/publications.aspx
Killzone2におけるHTN統計
スカッドを目的に応じて動的に構成
スカッドを目的に応じて動的に構成
最初から
決まっている
最初から
決まっている
攻撃対象、護衛対象は
ゲーム内で動的に決定
対象が決まれば
対象からの距離など
からスカッドを形成。
或いは、既にある
スカッドに対象を
割り当てる。
Killzone 2 AI (マルチプレイヤーモード)
(1) Killzone 2 の AI思考
(2) Killzone 2 のマップ自動解析
マップ
AIの基本原則:異なる目的に、異なるデータ表現を作成する
たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。
戦略思考
戦術思考
特に、マップに関してはを「データ階層化」しておくこと(世界表現)
ウェイポイント
Killzoneにおけるマップ
AIの基本原則:異なる目的に、異なるデータ表現を作成する
たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。
戦略思考
戦術思考
特に、マップに関してはを「データ階層化」しておくこと(世界表現)
ウェイポイント
戦略グラフを作りたい
Killzone 2 のウェイポイント
ウェイポイントをクラスター化
サイズと含むウェイポイント数を決めて
なるべく正方形になるように形成
戦略グラフ
戦略グラフ
各エリア間で接するポイントをピックアップして結ぶ
戦略グラフ
何に使うのか? グローバルな戦況判断
影響マップの方法 <解説>
Influence Map(影響マップ)
http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt
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
セル分割されたマップに、問題とする性質の評価値を
記録して行く方法
(例)①占有度
Influence Map(影響マップ)
http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt
セル分割されたマップに、問題とする性質の評価値を
記録して行く方法
(例)①占有度
② 通過可能確率 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
Influence Map(影響マップ)
http://www.fdaw.unimaas.nl/education/4.5GAI/slides/Influence%20Maps.ppt
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
(例)様々なIMから計算して戦略的な位置取りを計算する
0,50 0,75 0,75 1,00 0,75 0,50
0,75 1,00 1,00 1,00 0,75 0,50
0,75 1,00 0,75 0,75 0,50 0,25
0,75 1,00 0,75 0,50 0,25 0,00
0,75 1,00 0,75 0,50 0,25 0,00
0,75 1,00 0,75 0,50 0,25 0,00
4 6 8 8 8 8 6 4 2 0 -1 -2 -4 -4 -4 -2
4 6 8 8 8 8 4 2 1 0 -2 -4 -4 -2
4 6 8 8 8 6 3 1 0 -2 -4 -4 -4 -2
4 6 8 8 8 6 6 4 1 0 -2 -4 -4 -2
2 4 6 8 6 6 4 4 0 -1 -2 -4 -4 -4 -2
1 2 4 6 6 4 2 2 -4 -5 -3 -3 -4 -4 -2 -1
3 3 3 3 4 2 2 0 -4 -5 -5 -8 -8 -6 -4 -2
3 3 2 2 2 0 -2 -4 -8 -10 -10 -8 -4 -2
3 3 3 2 2 1 0 -4 -8 -10 -10 -8 -8 -4 -2
2 2 2 2 1 1 0 -3 -8 -10 -10 -8 -8 -4 -2
1 1 1 1 0 0 -2 -4 -8 -8 -8 -8 -8 -8 -8 -8
0 0 0 0 0 -1 -1 -2 -5 -6 -6 -6 -8 -8 -8
0 0 0 0 -1 -2 -2 -2 -4 -4 -4 -6 -8 -8 -8 -8
0 0 0 0 -1 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2
0 0 0 0 -1 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2 -2
0 0 0 0 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 -1
Age of Empire(AOE)における利用例
AOEはタイルベースの
RTS(リアルタイムストラテジー)
マップは毎回、自動生成
Age of Empire(AOE)における利用例①
Figure 3: Influence map around gold mines.
1.0
0.8
0.8
0.8 0.8
0.8
0.8 0.8 0.8
金鉱=アトラクター
(吸引源)
AIに金鉱の発掘小屋を適切な位置に置かせるには?
= 金鉱に近いが、近すぎてはいけないところに置く
-1.0
-0.6
-0.6
-0.6 -0.6
-0.6
-0.6 -0.6 -0.6
防壁=デトラクター
(排斥源)
金鉱の回りのタイル(仮想的)防壁を置いて、
近すぎも遠すぎもしない点に最高点のタイルが来るようにする
= 自動位置検出
金鉱発掘小屋の最適位置自動検出
Age of Empire(AOE)における利用例②
1.0
0.8
0.8
0.8 0.8
0.8
0.8 0.8 0.8
高い場所=アトラクター
(吸引源)
兵士を街からなるべく遠く、高台の場所に置かせたい
= 高い場所(アトラクター)、家がある(デトラクター)とする
-1.0
-0.6
-0.6
-0.6 -0.6
-0.6
-0.6 -0.6 -0.6
家がある場所=デトラクター
(排斥源)
兵隊の配置の最適位置自動検出
Age of Empire(AOE)における利用例③
この排斥源が与えるコストをパス検索のコストとすると、
「なるべく遠ったことにない敵の基地からみつかりにくいパス」
を見つけることが出来る。
-1.0
-0.6
-0.6
-0.6 -0.6
-0.6
-0.6 -0.6 -0.6
既知の敵のビル、以前通ったルート = デトラクタ
(排斥源)
兵隊の配置の最適位置自動検出
SimCity における影響マップの利用
第一層
道路や鉄道、要素の大きさ要
素間の関係をシミュレーション
第二層
「人口密度」「交通渋滞」「環境
汚染度」「ランドバリュー」「犯
罪発生率」をシミュレーション
第三層
地形の影響をシミュレーション
第四層
「人口増加率」「消防署」「警察
署」「消防署の影響」「警察署
の影響」をシミュレーション
Crime = Pop. Density^2 - Land Value - Police Effect
Land Value = Distance[Zonetype] + Terrain + Transport
“AI: A Desing Perspective” AIIDE 2005
http://www.aiide.org/aiide2005/talks/index.htm
l
http://thesims.ea.com/us/will/
多摩 豊,角川書店, 1990
「ウィル・ライトが明かすシムシティーのすべて」,
影響マップの方法 <解説>終わり
Killzone 2 における影響マップ
ボット、砲塔、死亡ポイントの情報を反映させる
さまざまな意思決定に用いる
Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す
Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す
Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す
Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す
安全
危険
Killzone 2 における戦略的パス検索
スカッド毎にコストと影響マップを使って戦略パスを見出す
シミュレーションベース意思決定
Simulation-based decision making
ステート(状態)ベースAI
ゴール(目標)ベースAI
ビヘイビア(振る舞い)ベースAI
ユーティリティ(効用)ベース AI
Rule-based AI
State-based AI
Behavior-based AI
Goal-basedAI
Utility-based AI
タスク(仕事)ベース AI
Task-based AI
シミュレーションベース AI
Simulation-basedAI
ルール(規則)ベースAI
シミュレーション・ベース
• シミュレーションは、ここではエージェントの想
像のこと。
• 問題を定式化できない場合、実際に頭の中
で動かしてみることを意味する。
• ゲームの場合は、実際にゲームのルール・原
理に従って運動させてみる。
シミュレーション・ベース
※イメージです。
要所、要所のシミュレーション結果を実際の世界の状況と比較して、
フィードバックをかける。
シミュレーション・ベース
ジャンプするシミュレーションを行うことで、成功するジャンプを見出して実行する。
Warfarmeにおける壁面移動
Daniel Brewer,“TheLivingAI in Warframe’s Procedural SpaceShips” (GameAI Conference2014) ※登録が必要なサイトです
http://archives.nucl.ai/recording/the-living-ai-in-warframes-procedural-space-ships/
プレイヤー
AI
プレイヤーが「ジャンプ・壁面走り・ジャンプ」したデータから
学習して、AIがそのデータをもとに同じ動きをする。
ジャンプ 壁面走り
ジャンプ
シミュレーション・ベース
加速・減速など自由な軌道を描けるAIが、複雑な地形を通過するときに、
複数の運動シミュレーションを走らすことで、もっともエレガントな軌道を見出す。
Armored Core V における空中移動
岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011)
https://cedil.cesa.or.jp/cedil_sessions/view/593
START GOAL
Armored Core V における空中移動
岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011)
https://cedil.cesa.or.jp/cedil_sessions/view/593
START GOAL
Armored Core V における空中移動
岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011)
https://cedil.cesa.or.jp/cedil_sessions/view/593
START GOAL
動的計画法によるパス検索
目次
• 第一章 ゲームAIと人工生命
• 第二章 戦術位置検索システム
• 第三章 知能とコミュニケーション
• 第四章 ゲームにおける様々な実例
• 第五章 分散人工知能
• 第六章 「ゲームにおけるマルチエージェント」
第1節 集団における知性 概論
第2節 群知能の方法
第3節 クロムハウンズにおけるマルチエージェント技術
第4節 発展
• 第七章 人工知能と創造性
• 第八章 メタAIの発展
戦術位置検索システム
戦略位置検出システム
• ゲーム内の地形を、
• ゲーム内でリアルタイムで把握して、
• 自分の能力に合わせて、
• 最も適した位置を発見する
システム
戦略位置検出システムの歴史
• Tactical Position Picking
Killzone (2005, Guerrilla)で実装される。
• TPS (Tactical Point System)
CRYENGINE (2010, CRYTEK)でツール化・システム化
• EQS(EnvironmentQuery System)
UNREAL ENGINE 4 (2014, Epic games)でツール化・システム化
• PQS (Point Query System)
SQUARE ENIX のFFXVの開発で2014年に開発。
戦略位置検出システムの原理
ポイント生成(Generation)
対象とする領域にポイント群を自動配置する。(例)グリッド状、同心円状など。
フィルタリング(Filtering)
生成したポイントから、目的に合わない条件(1)を指定して、削除して行く。
フィルタリング(Filtering)
生成したポイントから、目的に合わない条件(2)を指定して、削除して行く。
.
.
.
フィルタリング(Filtering)
生成したポイントから、目的に合わない条件(N)を指定して、削除して行く。
評価(Evaluation)
残ったポイント群を、評価式によってスコアをつけて、最高スコアの点を選ぶ。
PQS (Point Query System)
弓兵(AI)が次の目的地を発見したい。
(i) ゲーム現状
(ii) AIを中心に点をグリッド状に
生成し配置。(Generation)
(iii) 足場の悪い点を除く(Filtering)
(iv) 敵の近くのポイント、弓が届かな
いポイントを除く。(Filtering)
(v) 味方の近くを除く (Filtering)
(vi) 最も高い位置にあるポイントを選
択する。
このようにして、自分の最適な戦術位
置を自分自身で発見する。
(例)クエリー(Query)システム
=問い合わせシステム
敵
目的
地
味
方 味
方
味
方
Query(最短パス)
Query(安全パス)
Query(味方合流パス)
Query(武器の届く、高台ポイント)
ポイントを動的に配置して評価する
ゲームAIとマルチエージェント(上)
ゲームAIとマルチエージェント(上)
Matthew Jack, Mika Vehkala
Spaces in the Sandbox:Tactical Awarenessin OpenWorld Games (GDC2013)
http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
ゲームAIとマルチエージェント(上)
ゲームAIとマルチエージェント(上)
ゲームAIとマルチエージェント(上)
EQS (E)EQS (Environment Query System) in UE4
EQS (Environment Query System)
in UE4
EQS (Environment Query System)
in UE4

More Related Content

ゲームAIとマルチエージェント(上)