Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,321 views

Published on

ゲームAIとマルチエージェントについての講演資料の前編です。

後編はこちら
https://www.slideshare.net/youichiromiyake/ai-79541241

Published in: Engineering
  • Be the first to comment

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

  1. 1. ゲームAIとマルチエージェント(上) 三宅 陽一郎 三宅陽一郎@miyayou 2017.9.4 https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake y.m.4160@gmail.com
  2. 2. 参考文献 https://www.ai-gakkai.or.jp/my-bookmark_vol32-no4/
  3. 3. • 21世紀に“洋ゲー”でゲームAIが遂げた驚異 の進化史。【AI開発者・三宅陽一郎氏インタ ビュー】 • http://news.denfaminicogamer.jp/interview/g ameai_miyake 参考文献
  4. 4. 人工知能の歴史 1956年 1986年 2016年 人工知能 発祥 日本人工知能学会 発足 現在
  5. 5. 経歴 京都大学(数学) 大阪大学(原子核実験物理) 東京大学 (エネルギー工学/人工知能) 高エネルギー加速器研究所(半年ぐらい。修士論文) http://www.facebook.com/youichiro.miyake
  6. 6. Works (2006-2016) AI for Game Titles Books
  7. 7. 参考文献 三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」 (17ページ) (人工知能学会誌、2017 2号)
  8. 8. 「IT、都市、ヘルスケア、あらゆる領域で 人工知能と人間が共創する未来」 • WIRED 「INNOVATION INSIGTS」 http://wired.jp/innovationinsights/post/analytics-cloud/w/cocreation_with_ai
  9. 9. • ThinkIT https://thinkit.co.jp/author/10026 • AI最前線の現場から【スクウェア・エニックス】
  10. 10. 目次 • 第一章 ゲームAIと人工生命 • 第二章 戦術位置検索システム • 第三章 知能とコミュニケーション • 第四章 ゲームにおける様々な実例 • 第五章 分散人工知能 • 第六章 「ゲームにおけるマルチエージェント」 第1節 集団における知性 概論 第2節 群知能の方法 第3節 クロムハウンズにおけるマルチエージェント技術 第4節 発展 • 第七章 人工知能と創造性 • 第八章 メタAIの発展
  11. 11. 第一章 ゲームAIと人工生命
  12. 12. FC SFC SS, PS PS2,GC,Xbox Xbox360,PS3,Wii DC (次世代)Hardware 時間軸20051999 ゲームの進化と人工知能 複雑な世界の 複雑なAI ゲームも世界も、AIの身体と内面もますます複雑になる。 単純な世界の シンプルなAI (スペースインベーダー、タイトー、1978年) (アサシンクリード、ゲームロフト、2007年)
  13. 13. (例) スペースインベーダー(1978) プレイヤーの動きに関係なく、決められた動きをする (スペースインベーダー、タイトー、1978年)
  14. 14. (例)プリンス・オブ・ペルシャ 「プリンス・オブ・ペルシャ」など、 スプライトアニメーションを用意する必要がある場合、 必然的にこういった制御となる。 (プリンスオブペルシャ、1989年)
  15. 15. 原始の海+光+熱+稲妻 http://us.123rf.com/400wm/400/400/anterovium/anterovium1102/anterovium110200037/8952668 -light-beams-from-ocean-surface-penetrate-underwater-through-deep-blue-sea.jpg
  16. 16. ユーリーミラーの実験 ガスから生命の構成要素であるアミノ酸を合成した。 ハロルド・ュ―リーの研究室で、スタンレー・ミラーが実験(1953年) http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:Miller-Urey_experiment_JP.png
  17. 17. 極性頭部 非極性尾部 水と仲良し 水と溶けあえない (参考)永田和宏 「生命の内と外」 (「考える人」(Vol.45))
  18. 18. 自己組織化
  19. 19. 原始の海で構造化=外と内の形成 外 内 Energy
  20. 20. http://28275116.at.webry.info/201005/article_7.html
  21. 21. 原始の海で構造化=外と内の形成 外 内 Energy
  22. 22. エントロピーの法則 時間 エネルギー もしエネルギーが流入しなければ、その系のエントロピー(雑然さ)は増大する。
  23. 23. エントロピーの法則
  24. 24. 構造のヒステリシス Energy 生物=エネルギーが高い状態で ひっかかっている。 なぜ? 構造のヒステリシス
  25. 25. 世界 外と内の交流 エネルギーEをゲット アクション・老廃物 極めてメカニカルな次元。
  26. 26. 世界 外と内の交流=非平衡系 エネルギーEをゲット アクション・老廃物 極めてメカニカルな次元。 内部構造を持つ。 (そして内部構造が維持される)
  27. 27. 世界 外と内の交流=非平衡系 極めてメカニカルな次元。 内部構造を持つ。 INPUT OUTPUT 代謝機能(内部処理)
  28. 28. 散逸構造とは? 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
  29. 29. 世界 外と内の交流=散逸構造 極めてメカニカルな次元。 内部構造を持つ。 INPUT OUTPUT 代謝機能
  30. 30. テセウスの船(パラドックス) 船の老朽化した部分を、新しい木に入れ替えているうちに、 全部を入れ替えてしまった。 はたしてこの船は元の船と同一のものであろうか? http://img02.hamazo.tv/usr/j/a/g/jagr/629.jpg
  31. 31. テセウスのパラドックス 物質的構成 = 循環する 物質によらず不変なもの 構造
  32. 32. テセウスのパラドックス 物質的構成 = 循環する 物質によらず不変なもの 構造 情報
  33. 33. だから、こう言える。 生物は物質的存在であると同時に、 情報的存在でもあるのだ。
  34. 34. テセウスのパラドックス 物質 情報 情報 物質 生物は、情報的存在であり、同時に物質的な存在である。 物質は情報に存在を与え、情報は物質に構造を与える。
  35. 35. 情報と物質 情報 物質 生物は、情報的存在であり、同時に物質的な存在である。 物質は情報に存在を与え、情報は物質に構造を与える。
  36. 36. 「情報と物質」から「精神と身体」へ 情報 物質 精神・知性 身体
  37. 37. 精神と身体、そして進化 情報 物質 精神・知性 身体 進化
  38. 38. 世界 外と内の交流=散逸構造 INPUT OUTPUT
  39. 39. 世界 物質的循環 物質 物理的INPUT 物理的OUTPUT 生理的代謝機能
  40. 40. 世界 情報的循環 情報INPUT INFORMATION OUTPUT INFORMATION 情報処理=情報代謝 (つまり思考) 物質的存在としての身体がそうであるように、情報的存在として人間は、 情報を摂取し、記憶し(=情報体としての自分を組み換え)、情報をアウトプット・排泄する。
  41. 41. 世界 情報的・物質的循環 物質 物理的OUTPUT 代謝機能情報INPUT INFORMATION OUTPUT INFORMATION 情報処理=情報代謝 (つまり思考) 生理的代謝機能 物理的INPUT
  42. 42. 世界 情報的循環 情報INPUT INFORMATION =センサー OUTPUT INFORMATION =エフェクター 情報処理=情報代謝 (つまり思考) =意志決定 物質的存在としての身体がそうであるように、情報的存在として人間は、 情報を摂取し、記憶し(=情報体としての自分を組み換え)、情報をアウトプット・排泄する。
  43. 43. 精神と身体、そして進化 情報 物質 精神・知性 身体 人工知能 ハードウェア
  44. 44. 精神と身体、そして進化 情報 物質 精神・知性 身体 人工知能 ハードウェア 知能は生き物の情報的側面である。
  45. 45. ユクスキュルの生物学
  46. 46. 問い 生き物の「視る」とカメラの「視る」は どう違うだろうか? http://www.free-picture.net/reptiles/lizards/chameleon-wallpapers.jpg.html 生物の持つ目は、生物の知能と身体と深く結びついている 能動的な眼であり、 カメラは使用者の意思に従う受動的な眼である。
  47. 47. 主体と客体はどう結ばれるか? 客体 (対象) 関係がない http://sozai-free.com/sozai/00992.html
  48. 48. 主体と客体はどう結ばれるか? 客体 (対象) 関係がない
  49. 49. 主体と客体はどう結ばれるか? 関係がある http://illpop.com/png_insecthtm/aquatic_a02.htm
  50. 50. 主体と客体はどう結ばれるか? 客体 (対象) 関係がある
  51. 51. 主体と客体はどう結ばれるか? 客体 (対象) 関係がある 知覚作用
  52. 52. 機能環 実行器 受容器 知覚と作用で客体を“つかんでいる“ 客体 作用器官 知覚器官 “現実”(主観世界)の構成要素 ユクスキュル/クリサート 「生物から見た世界」 (岩波文庫) 知覚世界作用世界
  53. 53. 機能環 効果器 受容器 知覚と作用で客体を“つかんでいる“ 客体 “現実”(主観世界)の構成要素 ユクスキュル/クリサート 「生物から見た世界」 (岩波文庫) 知覚世界活動世界 作用器官 知覚器官
  54. 54. 機能環 効果器 受容器 客体 活動神経網 知覚神経網 前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房) 知覚世界活動世界 知覚微表担体 対象化された機構 活動担体 内的世界
  55. 55. 環世界のスキーム(機能環) 効果器 受容器 客体 活動神経網 知覚神経網 前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房) 知覚世界活動世界 知覚微表担体 対象化された機構 活動担体 内的世界 知覚微表(Merkmal) = 客体から送られてくるさまざまな刺激 知覚微表担体(Merkmaltrager) =客体に備わる刺激を発する諸特質 活動担体(Wirkungstrager) =客体の捕捉領域になりうる諸特質
  56. 56. 環世界のスキーム(機能環) 効果器 受容器 客体 活動神経網 知覚神経網 前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房) 知覚世界活動世界 知覚微表担体 対象化された機構 活動担体 内的世界 受容器 = 一定の刺激を受け取る + 定められた刺激以外のすべての刺激を捨象する (知覚の統一性)
  57. 57. 機能環 前野佳彦訳・ユクスキュル「動物の環境と内的世界」 (みすず書房) 効果器 受容器 客体 活動神経網 知覚神経網 知覚世界活動世界 知覚微表担体 対象化された機構 活動担体 内的世界
  58. 58. 世界無限 こうした諸々の機能環によって、すべての動物の、その固有の環境と 緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
  59. 59. 世界無限 こうした諸々の機能環によって、すべての動物の、その固有の環境と 緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
  60. 60. 世界無限 こうした諸々の機能環によって、すべての動物の、その固有の環境と 緊密に連結される。 ユクスキュル「動物の環境と内的世界」(原著:1921, 前野佳彦訳:2012)
  61. 61. 環世界のイメージ 環世界=「かたつむりの殻」のように、生物それぞれが持ちつつ、 それが世界であり、それ以外の世界へ逸脱できない世界。
  62. 62. エージェント・アーキテクチャ WORLD INTELLIGENCE センサー エフェクター 認識 Knowledge Making 意志決定 Decision Making 運動 Motion Making 記憶体 Memory 情報体としての知能のカタチ
  63. 63. エージェント・アーキテクチャ WORLD INTELLIGENCE センサー エフェクター 認識 Knowledge Making 意志決定 Decision Making 運動 Motion Making 記憶体 Memory 情報体としての知能のカタチ 情報の循環=インフォメーション・フロー
  64. 64. エージェント・アーキテクチャ WORLD INTELLIGENCE センサー エフェクター 認識 Knowledge Making 意志決定 Decision Making 運動 Motion Making 記憶体 Memory 情報体としての知能のカタチ 「情報の循環=インフォメーション・フロー」 は物質の循環の情報版。 これによって知性は自己を情報的に自己組織化できる。やはり知性も散逸構造である。
  65. 65. レベル ナビゲーション AI メタAI キャラクター AI エージェントを動的に配置 レベル状況を監視 エージェントに指示 ゲームの流れを作る 自律的な判断 仲間同士の協調 時にチームAIとなる メタAI, キャラクターAIの為に レベルの認識のためのデータを準備 オブジェクト表現を管理 ナビゲーション・データの管理 パス検索 / 位置解析 Support 敵キャラクタ- プレイヤー 頭脳として機能 情報獲得 コントロール 現代ゲームAIの仕組み http://dear-croa.d.dooo.jp/download/illust.html http://www.anne-box.com/
  66. 66. 3Dゲームの中のAI Halo (HALO、バンジー、2001年) デバッグ画面 The Illusion of Intelligence - Bungie.net Downloads http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
  67. 67. Intelligence World センサー InformationFlow エフェクター Agent Architecture
  68. 68. 知能の世界 環境世界 認識の 形成 記憶 センサー・ 身体 記憶体 情報処理過程 情報 統合
  69. 69. 知能の世界 環境世界 認識の 形成 記憶 意思の 決定 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 情報 統合
  70. 70. 知能の世界 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・ 身体 運動の 構成 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 運動創出過程 身体部分 情報 統合 運動 統合
  71. 71. 知能の世界 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・ 身体 運動の 構成 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 対象・ 現象 情報の流れ(インフォメーション・フロー) 影響を与える影響を受ける
  72. 72. サブサンプション・アーキテクチャ(ロドニー・ブルックス) INPUT OUTPUT 時間 情報抽象度 反射的に行動 少し場合ごとに対応 抽象的に思考 理論的に考える 言語化のプロセス = 自意識の構築化 SubsumputionArchitecture 運動の実現のプロセス = 身体運動の生成
  73. 73. ルンバ (iRobot社) http://chihoko777.exblog.jp/12567471/
  74. 74. 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・身体 運動の 構成 センサー・身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 運動創出過程 身体部分 情報 統合 運動 統合 「構成的自己=知能」 の形成(創造) 存在(身体・記憶) 自分のコア 受け渡し 自我を安定させる 自分を時間と世界 に投げ出す
  75. 75. レベル ナビゲーション AI メタAI キャラクター AI エージェントを動的に配置 レベル状況を監視 エージェントに指示 ゲームの流れを作る 自律的な判断 仲間同士の協調 時にチームAIとなる メタAI, キャラクターAIの為に レベルの認識のためのデータを準備 オブジェクト表現を管理 ナビゲーション・データの管理 パス検索 / 位置解析 Support 敵キャラクタ- プレイヤー 頭脳として機能 情報獲得 コントロール 現代ゲームAIの仕組み http://dear-croa.d.dooo.jp/download/illust.html http://www.anne-box.com/
  76. 76. レベル ナビゲーション AI メタAI キャラクター AI エージェントを動的に配置 レベル状況を監視 エージェントに指示 ゲームの流れを作る 自律的な判断 仲間同士の協調 時にチームAIとなる メタAI, キャラクターAIの為に レベルの認識のためのデータを準備 オブジェクト表現を管理 ナビゲーション・データの管理 パス検索 / 位置解析 Support 敵キャラクタ- プレイヤー 頭脳として機能 情報獲得 コントロール 現代ゲームAIの仕組み http://dear-croa.d.dooo.jp/download/illust.html http://www.anne-box.com/
  77. 77. メタAIの歴史 1980 1990 メタAIというのは、ゲームそのものに埋め込まれたAI。 1980 1990 2000 古典的メタAI 現代のメタAI キャラクターAI技術の発展
  78. 78. メタAIの歴史 1980 1990 2000 古典的メタAI 現代のメタAI キャラクターAI技術の発展 その歴史は古く、1980年代にまでさかのぼる。 その時代と現代のメタAIは、異なる点も多いので、 古典的メタAI、現代のメタAIと名づけて区別することにしよう。
  79. 79. (例)「ゼビウス」(ナムコ、1983) 敵出現テーブル巻き戻し 敵0 敵1 敵2 敵3 敵4 敵5 『あと面白い機能なんですけれど、 ゼビウスには非常に簡単なAIが組み込まれています。 「プレイヤーがどれくらいの腕か」というのを判断して、出てくる敵が強くなるんです。 強いと思った相手には強い敵が出てきて、弱いと思った相手には弱い敵が出てきます。そういっ たプログラムが組み込まれています。 ゲームの難易度というのは「初心者には難しくて、上級者 には簡単だ」ということが、ひとつの難易度で(調整を)やっていくと起きてしまうので、 その辺を何 とか改善したいな、ということでそういったことを始めてみたのですけれど、 お陰で割合にあまり上 手くない人でも比較的長くプレイできる、 うまい人でも最後のほうに行くまで結構ドラマチックに楽 しめる、 そういった感じになっています。』 - 遠藤雅伸(出演)、1987、「糸井重里の電視遊戯大展覧会」『遠藤雅伸ゼビウスセミナー』フジテレビ - ゼビウス
  80. 80. 現代のメタAI より積極的にゲームに干渉する。 メタAI 敵配位 敵スパウニング ストーリー レベル 動的生成 ユーザー
  81. 81. メタ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 の事例を見てみる。
  82. 82. 適応型動的ペーシング [基本的発想] (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
  83. 83. メタ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 より具体的なアルゴリズム
  84. 84. メタ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
  85. 85. メタ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) と 言う。
  86. 86. メタ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
  87. 87. メタ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
  88. 88. 安全な領域までの道のり(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
  89. 89. プレイヤーからの可視領域 可視領域(プレイヤーから見えている 部屋)では、敵のスパウニング(発生) はできない。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  90. 90. 敵出現領域 背後 前方 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html 前方と背後のプレイヤー群から見えてない部屋に、 モンスターを発生させる。
  91. 91. まとめ メタAIは、ゲームの流れを動的に作るAIで、キャラクターAI、イベントなどに は命令だけを出す。これは明確に、メタAIと他のモジュールが独立した関 係にあるから可能なこと。
  92. 92. メタ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 の事例を見てみる。
  93. 93. メタ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 より具体的なアルゴリズム
  94. 94. 安全な領域までの道のり(FlowDistance) メタAIはプレイヤー群の経路を トレースし予測する。 - どこへ来るか - どこが背面になるか - どこに向かうか Michael Booth, "TheAISystems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  95. 95. メタAIまとめ メタAIは、ゲームの流れを動的に作るAIで、キャラクターAI、イベントなど には命令だけを出す。これは明確に、メタAIと他のモジュールが独立した 関係にあるから可能なこと。
  96. 96. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。 http://dear-croa.d.dooo.jp/download/illust.html
  97. 97. ナビゲーションAI
  98. 98. ネットワーク上のグラフ検索法 ダイクストラ法 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にたどり着いたら終。 各ノードの評価距離=出発点からの経路
  99. 99. ネットワーク上のグラフ検索法 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
  100. 100. パス検索とは 現在の地点から指定したポイントへの経路を、 リアルタイムで計算して導く技術。 RTS - PathfindingA* https://www.youtube.com/watch?v=95aHGzzNCY8
  101. 101. Counter Strike: Path Following (デモ) The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/
  102. 102. レベル ナビゲーション 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/
  103. 103. キャラクターAI
  104. 104. キャラクターAI:意思決定 知能とは何か?
  105. 105. 環境 人工知能とは? 身体 人工知能=人工的な存在(=身体)を環境の中で活動させる 入力(センサー) 行動(アウトプット) 知能
  106. 106. 知能の内部世界 環境世界 エフェクター・ 身体 センサー・ 身体
  107. 107. 思考 環境世界 エフェクター・ 身体 センサー・ 身体 記憶
  108. 108. 思考 環境世界 エフェクター・ 身体 センサー・ 身体 記憶
  109. 109. 環境世界 認識の 形成 記憶 センサー・ 身体 記憶体 情報処理過程 情報 統合 記憶
  110. 110. 環境世界 認識の 形成 記憶 意思の 決定 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 情報 統合 記憶
  111. 111. 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・ 身体 運動の 構成 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 運動創出過程 身体部分 情報 統合 運動 統合 記憶
  112. 112. 知能の世界 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・ 身体 運動の 構成 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 対象・ 現象 情報の流れ(インフォメーション・フロー) 影響を与える影響を受ける 記憶
  113. 113. 意思決定モデル ステート(状態)ベース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
  114. 114. 意思決定モデル ステート(状態)ベース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
  115. 115. ルールベース意思決定 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
  116. 116. IF ( 前置宣言文 ) then (後置宣言文) ルールベース意思決定 Rule-based Decision Making ルール ここでは、この形式の制御文をルールと言う。 もちろん、IF ( … IF (....IF… ) ) ) のような入れ子構造の制御文も ルールベースと呼ぶが、 ルールベースと言えば、基本的には、ルールを1つの単位として、 意思決定を行う、という意味となる。
  117. 117. 推論エンジン 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 が変化して行く様子
  118. 118. ルール制御 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 (動作命令文)
  119. 119. (例) ルール制御 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 (動作命令文)
  120. 120. 応用可能性例 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など
  121. 121. The Sims 3 における応用 街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。 たくさんのAIを「人間らしく」制御しなければならない。 特徴付けにプロダクションルールを採用。 RichardEvans,"ModelingIndividualPersonalitiesinTheSims3",GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  122. 122. Sims3 における応用 あらゆる相互作用を考慮 注目するエージェントの行動範囲だけを考慮 RichardEvans,"ModelingIndividual Personalities inThe Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  123. 123. データドリブンなプロダクション・ルール プロダクションルール RichardEvans,"ModelingIndividual Personalities inThe Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The Sims3 における応用
  124. 124. プロダクションルール プロダクションルールは種類によってランク付けされていて、 最もランクの高いルールが発火する。 ルールが発火すると他のSimは、その特性を理解する。 データドリブンなプロダクション・ルール Sims3 における応用
  125. 125. 意思決定モデル ステート(状態)ベース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
  126. 126. キャラクターAI:意思決定 ステートマシン入門
  127. 127. ステートベース ステート 自分の行動を記述する。 ステート ステート 遷移条件 世界と自己の変化を記述する。
  128. 128. ステート・マシン ステート ステート ステート ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。
  129. 129. ステート・マシン ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。 待機 攻撃 パトロール
  130. 130. 警戒 追跡 追いかける 攻撃する 威嚇攻撃 味方に指示 出口をかためる 味方を呼ぶ 味方がいない かつ 戦闘範囲外 味方と合流 味方と合流 味方がいる 見失う 見える 見失う 見つける 巡回する 10秒経つ 物音を 聴く 応答がきた 階層型ステート・マシン
  131. 131. (例) Quake HFSM 状態遷移図を用いる http://ai-depot.com/FiniteStateMachines/FSM-Practical.html
  132. 132. 意思決定モデル ステート(状態)ベース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
  133. 133. 階層型ゴール指向型プランニングとは?
  134. 134. 一つのゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal
  135. 135. ゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal Goal Goal Goal Goal Goal
  136. 136. 意思決定モデル ステート(状態)ベース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
  137. 137. ユーティリティ・ベース • ユーティリティ・ベースは高度に抽象的な戦術 決定の方法。 • 世界をモデル化し、評価すべき行動群の効用 (ユーティリティ)を数値に還元する。
  138. 138. 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
  139. 139. 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の人格モデル
  140. 140. 最適(=最大効用)な行動を選択する 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) を最大化する行動を選択する。
  141. 141. ムードの計算方法と各パラメーターのウェイトグラフ 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
  142. 142. 効用(Utility)の計算の仕方 W_Hunger X_Hunger W_Hunger(-80) -80 60 W_Hunger(60)
  143. 143. 効用(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
  144. 144. 限界効用逓減の法則 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 ビールは一杯目が一番おいしい
  145. 145. The Sims 3 では、多くのムードや欲求が準備される。 行動 対象 GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter
  146. 146. アフォーダンスとユーティリティ 並木 幸介 [CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振 る舞いをさせる手法 http://cedil.cesa.or.jp/session/detail/697
  147. 147. アフォーダンスとユーティリティ 並木 幸介 [CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振 る舞いをさせる手法 http://cedil.cesa.or.jp/session/detail/697
  148. 148. 参考文献 三宅陽一郎 「ディジタルゲームにおける 人工知能技術の応用の現在」 (19ページ) (人工知能学会誌、2015) ※PDFをダウンロードできます。 http://id.nii.ac.jp/1004/00000517/
  149. 149. 意思決定モデル ゴール(目標)ベース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
  150. 150. キャラクターAI:意思決定 ビヘイビアツリー入門
  151. 151. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  152. 152. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なうち、 最も優先度の高いノードを実行する
  153. 153. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  154. 154. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なノードを 順番に実行する。
  155. 155. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  156. 156. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  157. 157. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  158. 158. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  159. 159. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  160. 160. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なノードを ランダムに一つ実行する。
  161. 161. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  162. 162. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  163. 163. 強化学習(例) 強化学習 (例)格闘ゲーム キック パン チ 波動 R_0 : 報酬=ダメージ http://piposozai.blog76.fc2.com/ http://dear-croa.d.dooo.jp/download/illust.html
  164. 164. 強化学習 (例)格闘ゲーム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/
  165. 165. 意思決定モデル ステート(状態)ベース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
  166. 166. 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
  167. 167. 計画を立てるAI/計画を変更するAI Jeff Orkins, Three States and a Plan: The AI of FEAR http://alumni.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.pdf
  168. 168. 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
  169. 169. CERA-CRANIUM認識モデル http://aigamedev.com/open/article/conscious-bot/
  170. 170. 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:
  171. 171. 2K Bot Prize FPSを用いたチューリングテスト http://aigamedev.com/open/article/conscious-bot/Movie: AI と人間のプレイヤーが混在しながら戦う。 人間と一番間違われたAIが優勝。
  172. 172. http://www.botprize.org/2010.html
  173. 173. http://www.botprize.org/2010.html
  174. 174. タスクベース意思決定 階層型タスクネットワークの説明 Task-based decision making
  175. 175. 階層型タスクネットワーク
  176. 176. (ゲーム設定)回復薬を作る方法 • 赤、青、緑を一色づつ集める。 • 緑、赤、緑の順番に集める。 • 青二つと赤一つ。ただし、赤の前に青を集め ないといけない。
  177. 177. メソッド (=タスクの分解の仕方) 回復薬を作る (タスク) 回復薬を運ぶ (タスク) 回復薬を届ける (タスク)
  178. 178. メソッド (=タスクの分解の仕方) 袋入 れる ブランチ 全色集める ブランチ 赤と青を集める ブランチ 赤と緑を集める 青拾う 赤拾う 緑拾う 袋入 れる 緑拾う 緑拾う 袋入 れる 赤拾う 青拾う 赤拾う青拾う 順序なしタスク 全順序タスク 局所的順序タスク 全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある 原初タスク 回復薬を作る (タスク) 前提条件
  179. 179. メソッド (=タスクの分解の仕方) 回復薬を作る (タスク) 回復薬を運ぶ (タスク) 回復薬を届ける (タスク)
  180. 180. 回復薬を運ぶ • 馬車を持ってきて、荷物を載せて、戦場へ運ぶ。 • 荷物に載せるには、宝箱に入れて載せる必要がある。 • 宝箱には札をつけておく必要がある。
  181. 181. メソッドメソッド 馬車に 載せる 馬車を呼ぶ 戦場まで行 く 荷を載せる 宝箱に 札をつける 宝箱に 入れる 順序なしタスク 全順序タスク 局所的順序タスク 馬車を持っている 原初タスク 回復薬を運ぶ (タスク) 前提条件 荷を載せる 馬車が近くにある 局所的順序タスク
  182. 182. 袋入 れる 回復薬を届ける (ドメイン) ブランチ 全色集める ブランチ 赤と青を集める ブランチ 赤と緑を集める 青拾う 赤拾う 緑拾う 袋入 れる 緑拾う 緑拾う 袋入 れる 赤拾う 青拾う 赤拾う青拾う 順序なしタスク 全順序タスク 局所的順序タスク 全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある 原初タスク 回復薬を作る (タスク)
  183. 183. 生成されるタスクネットワーク 袋入 れる 青拾う 赤拾う青拾う スタート 馬車 を 呼ぶ 戦場 まで 行く ゴール 馬車 に載 せる 宝箱 に札を つける 宝箱 に入 れる
  184. 184. タスクベース意思決定 階層型タスクネットワークの説明 KILLZONE 2 における階層型タスクネットワーク Task-based decision making
  185. 185. 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)が使用される。
  186. 186. 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/
  187. 187. Killzone 2 Screen On the AI Strategy forKILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  188. 188. 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/
  189. 189. 「Killzone 2」におけるチームの構造図と コミュニケーション・パス 司令官のAI 部隊長のAI 各 メ ン バ | の AI 各 メ ン バ | の AI 各 メ ン バ | の A 部隊長のAI 各 メ ン バ | の AI 各 メ ン バ | の A 各 メ ン バ | の AI 部隊長のAI 各 メ ン バ | の A 各 メ ン バ | の AI 各 メ ン バ | の A 防衛、前進など戦術を指示 戦術の成功・失敗を報告 (フィードバック) 移動地点を指示 ターゲット指示 指示の再発行要求 指示の再発行要求
  190. 190. 各AIのアーキテクチャ HTN Planner
  191. 191. 各メンバーのエージェント・アーキテクチャ 上からの 命令 メッセージ 情報 統合 World State HTN プランナー 計画 タスク 実行機 コントローラー インプット 知能内部 感覚刺激 認識 脅威
  192. 192. Squad AI アーキテクチャ
  193. 193. 部隊長のエージェント・アーキテクチャ 司令官から の命令 各兵士から の報告 情報 統合 World State HTN プランナー 計画 タスク 実行機 各メンバー への命令 知能内部 メモリ領域 実行モジュール
  194. 194. HTN (Hierarchical Task Network) On the AI Strategy forKILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  195. 195. 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 を実行する順序などは決められている
  196. 196. HTN (Hierarchical Task Network) Dana Nau et al., “SHOP2: An HTN PlanningSystem”, Journal of Artificial Intelligence Research 20 (2003) 379-404
  197. 197. HTN (Hierarchical Task Network) Dana Nau et al., “SHOP2: An HTN PlanningSystem”, Journal of Artificial Intelligence Research 20 (2003) 379-404 Task はプラナーの 規則によって整列される
  198. 198. 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
  199. 199. 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 はプラナーの 規則によって整列される
  200. 200. HTN (Hierarchical Task Network) On the AI Strategy forKILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  201. 201. HTN (Hierarchical Task Network) Precondition Task Precondition Task On the AI Strategy forKILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  202. 202. 銃で攻撃 ロケットで攻撃 銃で攻撃 ロケットで 攻撃 敵がヒューマノイド 射程距離内 敵はヒューマノイドでも砲台でもない 射程距離内 武器を選択して攻撃 (タスク) 装填 攻撃 終了 装填 攻撃 終了
  203. 203. HTN (Hierarchical Task Network) 各AIの思考 On the AI Strategy forKILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  204. 204. TaskList TaskList 分岐リスト 分岐リスト 分岐(Branch) 分岐(Branch) On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  205. 205. On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  206. 206. … 前進 なし 拠点を防衛するように命令する (タスク) それまでのメンバーデータを消去 新しくメンバーの状況を収集 命令発行シークエンス起動 (これまでの行動を停止せよ) 前進命令を発行 到着したら停止命令 拠点を防衛せよ
  207. 207. かがみながら近づく 行動する (タスク) 治療プランスタート 治療を周囲に通達 車 防御 ターゲットを選択 治療器具を使用する 徒歩前進 治療 行動 中止 継続 開始 治療 器具変更なし 器具変更あり メソッド適用 メソッド適用 メソッド適用 メソッド適用
  208. 208. かがみながら近づく 治療器具選択 治療プランスタート 治療を周囲に通達 治療する プラン終了 防御 ターゲットを選択 治療器具を使用する 治療 中止 継続 開始 治療 器具変更なし 器具変更あり メソッド適用 メソッド適用 メソッド適用
  209. 209. Squad AI アーキテクチャ
  210. 210. 兵士へ命令
  211. 211. スカッドを目的に応じて動的に構成 Killzone2
  212. 212. スカッドを目的に応じて動的に構成 Killzone2 http://www.bungie.net/Inside/publications.aspx
  213. 213. Killzone2におけるHTN統計
  214. 214. スカッドを目的に応じて動的に構成
  215. 215. スカッドを目的に応じて動的に構成 最初から 決まっている 最初から 決まっている 攻撃対象、護衛対象は ゲーム内で動的に決定 対象が決まれば 対象からの距離など からスカッドを形成。 或いは、既にある スカッドに対象を 割り当てる。
  216. 216. Killzone 2 AI (マルチプレイヤーモード) (1) Killzone 2 の AI思考 (2) Killzone 2 のマップ自動解析
  217. 217. マップ AIの基本原則:異なる目的に、異なるデータ表現を作成する たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。 戦略思考 戦術思考 特に、マップに関してはを「データ階層化」しておくこと(世界表現) ウェイポイント
  218. 218. Killzoneにおけるマップ AIの基本原則:異なる目的に、異なるデータ表現を作成する たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。 戦略思考 戦術思考 特に、マップに関してはを「データ階層化」しておくこと(世界表現) ウェイポイント
  219. 219. 戦略グラフを作りたい
  220. 220. Killzone 2 のウェイポイント
  221. 221. ウェイポイントをクラスター化 サイズと含むウェイポイント数を決めて なるべく正方形になるように形成
  222. 222. 戦略グラフ
  223. 223. 戦略グラフ 各エリア間で接するポイントをピックアップして結ぶ
  224. 224. 戦略グラフ 何に使うのか? グローバルな戦況判断
  225. 225. 影響マップの方法 <解説>
  226. 226. 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 セル分割されたマップに、問題とする性質の評価値を 記録して行く方法 (例)①占有度
  227. 227. 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
  228. 228. 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
  229. 229. Age of Empire(AOE)における利用例 AOEはタイルベースの RTS(リアルタイムストラテジー) マップは毎回、自動生成
  230. 230. 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 防壁=デトラクター (排斥源) 金鉱の回りのタイル(仮想的)防壁を置いて、 近すぎも遠すぎもしない点に最高点のタイルが来るようにする = 自動位置検出 金鉱発掘小屋の最適位置自動検出
  231. 231. 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 家がある場所=デトラクター (排斥源) 兵隊の配置の最適位置自動検出
  232. 232. Age of Empire(AOE)における利用例③ この排斥源が与えるコストをパス検索のコストとすると、 「なるべく遠ったことにない敵の基地からみつかりにくいパス」 を見つけることが出来る。 -1.0 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 既知の敵のビル、以前通ったルート = デトラクタ (排斥源) 兵隊の配置の最適位置自動検出
  233. 233. 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 「ウィル・ライトが明かすシムシティーのすべて」,
  234. 234. 影響マップの方法 <解説>終わり
  235. 235. Killzone 2 における影響マップ ボット、砲塔、死亡ポイントの情報を反映させる さまざまな意思決定に用いる
  236. 236. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  237. 237. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  238. 238. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  239. 239. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す 安全 危険
  240. 240. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  241. 241. シミュレーションベース意思決定 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
  242. 242. シミュレーション・ベース • シミュレーションは、ここではエージェントの想 像のこと。 • 問題を定式化できない場合、実際に頭の中 で動かしてみることを意味する。 • ゲームの場合は、実際にゲームのルール・原 理に従って運動させてみる。
  243. 243. シミュレーション・ベース ※イメージです。 要所、要所のシミュレーション結果を実際の世界の状況と比較して、 フィードバックをかける。
  244. 244. シミュレーション・ベース ジャンプするシミュレーションを行うことで、成功するジャンプを見出して実行する。
  245. 245. 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がそのデータをもとに同じ動きをする。 ジャンプ 壁面走り ジャンプ
  246. 246. シミュレーション・ベース 加速・減速など自由な軌道を描けるAIが、複雑な地形を通過するときに、 複数の運動シミュレーションを走らすことで、もっともエレガントな軌道を見出す。
  247. 247. Armored Core V における空中移動 岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011) https://cedil.cesa.or.jp/cedil_sessions/view/593 START GOAL
  248. 248. Armored Core V における空中移動 岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011) https://cedil.cesa.or.jp/cedil_sessions/view/593 START GOAL
  249. 249. Armored Core V における空中移動 岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011) https://cedil.cesa.or.jp/cedil_sessions/view/593 START GOAL 動的計画法によるパス検索
  250. 250. 目次 • 第一章 ゲームAIと人工生命 • 第二章 戦術位置検索システム • 第三章 知能とコミュニケーション • 第四章 ゲームにおける様々な実例 • 第五章 分散人工知能 • 第六章 「ゲームにおけるマルチエージェント」 第1節 集団における知性 概論 第2節 群知能の方法 第3節 クロムハウンズにおけるマルチエージェント技術 第4節 発展 • 第七章 人工知能と創造性 • 第八章 メタAIの発展
  251. 251. 戦術位置検索システム
  252. 252. 戦略位置検出システム • ゲーム内の地形を、 • ゲーム内でリアルタイムで把握して、 • 自分の能力に合わせて、 • 最も適した位置を発見する システム
  253. 253. 戦略位置検出システムの歴史 • 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年に開発。
  254. 254. 戦略位置検出システムの原理 ポイント生成(Generation) 対象とする領域にポイント群を自動配置する。(例)グリッド状、同心円状など。 フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(1)を指定して、削除して行く。 フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(2)を指定して、削除して行く。 . . . フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(N)を指定して、削除して行く。 評価(Evaluation) 残ったポイント群を、評価式によってスコアをつけて、最高スコアの点を選ぶ。
  255. 255. PQS (Point Query System) 弓兵(AI)が次の目的地を発見したい。 (i) ゲーム現状 (ii) AIを中心に点をグリッド状に 生成し配置。(Generation) (iii) 足場の悪い点を除く(Filtering) (iv) 敵の近くのポイント、弓が届かな いポイントを除く。(Filtering) (v) 味方の近くを除く (Filtering) (vi) 最も高い位置にあるポイントを選 択する。 このようにして、自分の最適な戦術位 置を自分自身で発見する。
  256. 256. (例)クエリー(Query)システム =問い合わせシステム 敵 目的 地 味 方 味 方 味 方 Query(最短パス) Query(安全パス) Query(味方合流パス) Query(武器の届く、高台ポイント)
  257. 257. ポイントを動的に配置して評価する
  258. 258. Matthew Jack, Mika Vehkala Spaces in the Sandbox:Tactical Awarenessin OpenWorld Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  259. 259. EQS (E)EQS (Environment Query System) in UE4
  260. 260. EQS (Environment Query System) in UE4
  261. 261. EQS (Environment Query System) in UE4

×