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入門(後半)

2,541 views

Published on

ゲームAIの入門講座の後半です。

Published in: Automotive
  • Be the first to comment

ゲームAI入門(後半)

  1. 1. ゲームAI入門 (後半) 日本デジタルゲーム学会理事 三宅 陽一郎 2018.7.9 @shibuya https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake y.m.4160@gmail.com @miyayou
  2. 2. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  3. 3. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  4. 4. 第7章 キャラクターAI
  5. 5. ビヘイビアベース意思決定 Behavior-based decision making ステート(状態)ベースAI ゴール(目標)ベースAI ビヘイビア(振る舞い)ベースAI ユーティリティ(効用)ベース AI Rule-based AI State-based AI Behavior-based AI Goal-based AI Utility-based AI タスク(仕事)ベース AI Task-based AI シミュレーションベース AI Simulation-based AI ルール(規則)ベースAI
  6. 6. ビヘイビアベース ビヘイビア 自分自身の身体的活動をターゲットにしたタスク
  7. 7. ビヘイビアベース ビヘイビア ビヘイビア アニメーションほど詳細ではなく、 文脈を形成できるレベルの身体活動を 記述する。 フィードバックは、ツリー構造の 動作に含まれてしまう。 一連の行動を展開することが 目的となる。
  8. 8. ビヘイビアベイスAI (Behavior-Based AI) ビヘイビア(振る舞い)によって知能を記述する方法ビヘイビアは 具体的な身体運動の仕方を定義するものでなくてはならない。 ビヘイビア ビヘイビア何らかの意思決定 ビヘイビア
  9. 9. ビヘイビアベース意思決定 ビヘイビアツリー入門 Behavior-based decision making
  10. 10. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  11. 11. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なうち、 最も優先度の高いノードを実行する
  12. 12. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  13. 13. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なノードを 順番に実行する。
  14. 14. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  15. 15. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  16. 16. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  17. 17. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  18. 18. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  19. 19. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール この層の中で実行可能なノードを ランダムに一つ実行する。
  20. 20. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  21. 21. root バトル 撤退 休憩 攻撃 隠れる 逃走する 足止めする 立ち止まる 回復する トラップ 眠る 回復薬を飲む 弓を放つ 剣を振る 森に潜む 穴を掘る 建物に隠れる 攻撃魔法 氷系 風系プライオリティ プライオリティ シークエンス シークエンス ランダム プライオリティ ランダム プライオリティ ランダム ビヘイビア (末端ノード) 層 層 選択ルール 選択ルール
  22. 22. ノード選択の原理 親ノードが子ノードを選ぶ 子ノード層がノードを選ぶ (子ノード同士が争う子ノード競合モデル child-competitive decision model ) Halo2Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  23. 23. ノードの実行スキーム(アルゴリズム) ① 優先度リスト法 ② シークエンス法 ③ シークエンシャル・ルーピング法 ④ 確率的方法 あらかじめノードの実行順序を 決めておいて、実行可能な ノードをその順番に従って実行する 基本は②と同じだが、 終端まで行くと、 もう一度実行する。 ランダムに選ぶ あらかじめノードの優先度 (プライオリティ)を決めて、 実行可能(active)なノードのうち 最も優先度の高いノードを実行 する。実行中のノードより高い優 持つノードがactiveになったときには、 インタラプトすることができる。 root engage search どのスキームを選ぶかは、親ノードの種類によって決定されている。 Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  24. 24. ノードの実行スキーム(アルゴリズム) ⑤ オン-オフ法 ランダム、或いは 優先リスト法によって選ぶが、 一度選んだものを選び直さない postcombat 実行順序を定義 =振る舞いの順序を規定できる。 振る舞いの順序(常識)を規定できる。 Damian Isla (2005), Handling Complexity in the Halo 2 AI, Game Developer's Conference Proceedings., http://www.gamasutra.com/view/feature/130663/gdc_2005_proceeding_handling_.php
  25. 25. 意志決定ルーチン • 親が決める • 子が競合する Parent Child 2 Child 3 Child 4 Child 1 ? Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  26. 26. ビヘイビアベース意思決定 ビヘイビアツリー入門 HALO2におけるビヘイビアツリー Behavior-based decision making
  27. 27. 意志決定 Root Self-preservation Engage Search Charge Fight Guard Cover Presearch Uncover Guard Grenade Investigate Idle Guard Retreat Flee Vehicle fight Vehicle strafe Melee Root Engage Search Uncover Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html Halo2におけるビヘイビアツリー ビヘイビアツリー (DAG = 方向性を持った非循環グラフ)
  28. 28. 意志決定 良い点 • 直感的 • モジュール型 • スケーラブル 悪い点 • あまりシンプルではない • デバッグが困難 • メモリを取る Root Self-preservation Engage Search Charge Fight Guard Cover Presearch Uncover Guard Grenade Investigate Idle Guard Retreat Flee Vehicle fight Vehicle strafe Melee Root Engage Search Uncover Damian Isla, Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html Halo2におけるビヘイビアツリー ビヘイビアツリー (DAG = 方向性を持った非循環グラフ)
  29. 29. Halo2: Orders & Styles Order Initial If killed X enemies If X dead Order fallback Style A Style C Order push forward Style B Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  30. 30. Halo2: Orders & Styles Order Initial If killed X enemies If X dead Order fallback Style A Style C Order push forward Style B まず、マップを3つの領域に区別する。 「それぞれの領域=戦術ポイント・グループ」として定義する。 Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  31. 31. Halo2: Orders & Styles Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  32. 32. Halo2: Orders & Styles Order Initial If killed X enemies If X dead Order fallback Style A Style C Order push forward Style B 次にそれぞれの領域にビヘイビア・ツリーを割り当てる。 これが、その領域でAIが取る意思決定モジュールとなる。 Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  33. 33. Halo2: Orders & Styles Order Initial If killed X enemies If X dead Order fallback Style A Style C Order push forward Style B Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html こういうチェックボックスのツールで マスターのビヘイビアツリーをカスタマイズする。 それぞれの領域に割り当てられたビヘイビアツリーを 「スタイル」と言う。 Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  34. 34. Halo2: Orders & Styles Order Initial If killed X enemies If X dead Order fallback Style A Style C Order push forward Style B 次にそれぞれの領域から領域の遷移条件を定義する。 つまり、これは「領域」をステートとするステートマシンとなる。 Handling Complexity in the Halo 2 AI, D. Isla, GDC 2005 http://naimadgames.com/publications.html
  35. 35. 3Dゲームの中のAI Halo (HALO、バンジー、2001年) デバッグ画面 The Illusion of Intelligence - Bungie.net Downloads http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
  36. 36. タスクベース意思決定 Task-based decision making ステート(状態)ベースAI ゴール(目標)ベースAI ビヘイビア(振る舞い)ベースAI ユーティリティ(効用)ベース AI Rule-based AI State-based AI Behavior-based AI Goal-based AI Utility-based AI タスク(仕事)ベース AI Task-based AI シミュレーションベース AI Simulation-based AI ルール(規則)ベースAI
  37. 37. タスクベース意思決定 階層型タスクネットワークの説明 Task-based decision making
  38. 38. 階層型タスクネットワーク
  39. 39. (ゲーム設定)回復薬を作る方法 • 赤、青、緑を一色づつ集める。 • 緑、赤、緑の順番に集める。 • 青二つと赤一つ。ただし、赤の前に青を集めないといけない。
  40. 40. メソッド (=タスクの分解の仕方) 回復薬を作る (タスク) 回復薬を運ぶ (タスク) 回復薬を届ける (タスク)
  41. 41. メソッド (=タスクの分解の仕方) 袋入 れる ブランチ 全色集める ブランチ 赤と青を集める ブランチ 赤と緑を集める 青拾う 赤拾う 緑拾う 袋入 れる 緑拾う 緑拾う 袋入 れる 赤拾う 青拾う 赤拾う青拾う 順序なしタスク 全順序タスク 局所的順序タスク 全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある 原初タスク 回復薬を作る (タスク) 前提条件
  42. 42. メソッド (=タスクの分解の仕方) 回復薬を作る (タスク) 回復薬を運ぶ (タスク) 回復薬を届ける (タスク)
  43. 43. 回復薬を運ぶ • 馬車を持ってきて、荷物を載せて、戦場へ運ぶ。 • 荷物に載せるには、宝箱に入れて載せる必要がある。 • 宝箱には札をつけておく必要がある。
  44. 44. メソッドメソッド 馬車に 載せる 馬車を呼ぶ 戦場まで行 く 荷を載せる 宝箱に 札をつける 宝箱に 入れる 順序なしタスク 全順序タスク 局所的順序タスク 馬車を持っている 原初タスク 回復薬を運ぶ (タスク) 前提条件 荷を載せる 馬車が近くにある 局所的順序タスク
  45. 45. 袋入 れる 回復薬を届ける (ドメイン) ブランチ 全色集める ブランチ 赤と青を集める ブランチ 赤と緑を集める 青拾う 赤拾う 緑拾う 袋入 れる 緑拾う 緑拾う 袋入 れる 赤拾う 青拾う 赤拾う青拾う 順序なしタスク 全順序タスク 局所的順序タスク 全色広場にある 広場には赤と緑の宝石がある 赤と青の宝石がある 原初タスク 回復薬を作る (タスク)
  46. 46. 生成されるタスクネットワーク 袋入 れる 青拾う 赤拾う青拾う スタート 馬車 を 呼ぶ 戦場 まで 行く ゴール 馬車 に載 せる 宝箱 に札を つける 宝箱 に入 れる
  47. 47. タスクベース意思決定 階層型タスクネットワークの説明 KILLZONE 2 における階層型タスクネットワーク Task-based decision making
  48. 48. Killzone 2 のAI Based on: Alex Champandard, Tim Verweij, Remco Straatman, "Killzone 2 Multiplayer Bots", http://files.aigamedev.com/coverage/GAIC09_Killzone2Bots_StraatmanChampandard.pdf 単純なタスクベースのシステムは機能するし、使われることも多い。しかし、 近年の複雑なゲームのAIではよりマルチな時間・空間スケールに対応する必要があり、 階層型タスクネットワーク(HTN, Hierarchical Task Network)が使用される。
  49. 49. Killzone 2 AI (マルチプレイヤーモード) (1) Killzone 2 のAI思考 (2) Killzone 2 のマップ自動解析 On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  50. 50. Killzone 2 Screen On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  51. 51. Killzone 2 AI (マルチプレイヤーモード) (1) Killzone 2 のAI思考 (2) Killzone 2 のマップ自動解析 On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  52. 52. 「Killzone 2」におけるチームの構造図と コミュニケーション・パス 司令官のAI 部隊長のAI 各 メ ン バ | の AI 各 メ ン バ | の AI 各 メ ン バ | の A 部隊長のAI 各 メ ン バ | の AI 各 メ ン バ | の A 各 メ ン バ | の AI 部隊長のAI 各 メ ン バ | の A 各 メ ン バ | の AI 各 メ ン バ | の A 防衛、前進など戦術を指示 戦術の成功・失敗を報告 (フィードバック) 移動地点を指示 ターゲット指示 指示の再発行要求 指示の再発行要求
  53. 53. 各AIのアーキテクチャ HTN Planner
  54. 54. 各メンバーのエージェント・アーキテクチャ 上からの 命令 メッセージ 情報 統合 World State HTN プランナー 計画 タスク 実行機 コントローラー インプット 知能内部 感覚刺激 認識 脅威
  55. 55. Squad AI アーキテクチャ
  56. 56. 部隊長のエージェント・アーキテクチャ 司令官から の命令 各兵士から の報告 情報 統合 World State HTN プランナー 計画 タスク 実行機 各メンバー への命令 知能内部 メモリ領域 実行モジュール
  57. 57. HTN (Hierarchical Task Network) On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  58. 58. 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 を実行する順序などは決められている
  59. 59. HTN (Hierarchical Task Network) Dana Nau et al., “SHOP2: An HTN Planning System”, Journal of Artificial Intelligence Research 20 (2003) 379-404
  60. 60. HTN (Hierarchical Task Network) Dana Nau et al., “SHOP2: An HTN Planning System”, Journal of Artificial Intelligence Research 20 (2003) 379-404 Task はプラナーの 規則によって整列される
  61. 61. HTN (Hierarchical Task Network) Dana S. Nau,"Hierarchical Task Network Planning", Lecture slides for Automated Planning: Theory and Practice http://www.cs.umd.edu/~nau/planning/slides/chapter11.pdf
  62. 62. HTN (Hierarchical Task Network) Dana S. Nau,"Hierarchical Task Network Planning", Lecture slides for Automated Planning: Theory and Practice http://www.cs.umd.edu/~nau/planning/slides/chapter11.pdf Task はプラナーの 規則によって整列される
  63. 63. HTN (Hierarchical Task Network) On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  64. 64. HTN (Hierarchical Task Network) Precondition Task Precondition Task On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  65. 65. 銃で攻撃 ロケットで攻撃 銃で攻撃 ロケットで 攻撃 敵がヒューマノイド 射程距離内 敵はヒューマノイドでも砲台でもない 射程距離内 武器を選択して攻撃 (タスク) 装填 攻撃 終了 装填 攻撃 終了
  66. 66. HTN (Hierarchical Task Network) 各AIの思考 On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  67. 67. TaskList TaskList 分岐リスト 分岐リスト 分岐(Branch) 分岐(Branch) On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  68. 68. On the AI Strategy for KILLZONE 2′s Multiplayer Bots http://aigamedev.com/open/coverage/killzone2/
  69. 69. … 前進 なし 拠点を防衛するように命令する (タスク) それまでのメンバーデータを消去 新しくメンバーの状況を収集 命令発行シークエンス起動 (これまでの行動を停止せよ) 前進命令を発行 到着したら停止命令 拠点を防衛せよ
  70. 70. かがみながら近づく 行動する (タスク) 治療プランスタート 治療を周囲に通達 車 防御 ターゲットを選択 治療器具を使用する 徒歩前進 治療 行動 中止 継続 開始 治療 器具変更なし 器具変更あり メソッド適用 メソッド適用 メソッド適用 メソッド適用
  71. 71. かがみながら近づく 治療器具選択 治療プランスタート 治療を周囲に通達 治療する プラン終了 防御 ターゲットを選択 治療器具を使用する 治療 中止 継続 開始 治療 器具変更なし 器具変更あり メソッド適用 メソッド適用 メソッド適用
  72. 72. Squad AI アーキテクチャ
  73. 73. 兵士へ命令
  74. 74. スカッドを目的に応じて動的に構成 Killzone2
  75. 75. スカッドを目的に応じて動的に構成 Killzone2 http://www.bungie.net/Inside/publications.aspx
  76. 76. Killzone2におけるHTN統計
  77. 77. スカッドを目的に応じて動的に構成
  78. 78. スカッドを目的に応じて動的に構成 最初から 決まっている 最初から 決まっている 攻撃対象、護衛対象は ゲーム内で動的に決定 対象が決まれば 対象からの距離など からスカッドを形成。 或いは、既にある スカッドに対象を 割り当てる。
  79. 79. Killzone 2 AI (マルチプレイヤーモード) (1) Killzone 2 の AI思考 (2) Killzone 2 のマップ自動解析
  80. 80. マップ AIの基本原則:異なる目的に、異なるデータ表現を作成する たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。 戦略思考 戦術思考 特に、マップに関してはを「データ階層化」しておくこと(世界表現) ウェイポイント
  81. 81. Killzoneにおけるマップ AIの基本原則:異なる目的に、異なるデータ表現を作成する たとえ、同じ対象物であっても、AIの行動用途に応じてデータ表現を作れ。 戦略思考 戦術思考 特に、マップに関してはを「データ階層化」しておくこと(世界表現) ウェイポイント
  82. 82. 戦略グラフを作りたい
  83. 83. Killzone 2 のウェイポイント
  84. 84. ウェイポイントをクラスター化 サイズと含むウェイポイント数を決めて なるべく正方形になるように形成
  85. 85. 戦略グラフ
  86. 86. 戦略グラフ 各エリア間で接するポイントをピックアップして結ぶ
  87. 87. 戦略グラフ 何に使うのか? グローバルな戦況判断
  88. 88. 影響マップの方法 <解説>
  89. 89. 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 セル分割されたマップに、問題とする性質の評価値を 記録して行く方法 (例)①占有度
  90. 90. 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
  91. 91. 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
  92. 92. Age of Empire(AOE)における利用例 AOEはタイルベースの RTS(リアルタイムストラテジー) マップは毎回、自動生成
  93. 93. 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 防壁=デトラクター (排斥源) 金鉱の回りのタイル(仮想的)防壁を置いて、 近すぎも遠すぎもしない点に最高点のタイルが来るようにする = 自動位置検出 金鉱発掘小屋の最適位置自動検出
  94. 94. 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 家がある場所=デトラクター (排斥源) 兵隊の配置の最適位置自動検出
  95. 95. Age of Empire(AOE)における利用例③ この排斥源が与えるコストをパス検索のコストとすると、 「なるべく遠ったことにない敵の基地からみつかりにくいパス」 を見つけることが出来る。 -1.0 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 -0.6 既知の敵のビル、以前通ったルート = デトラクタ (排斥源) 兵隊の配置の最適位置自動検出
  96. 96. 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 「ウィル・ライトが明かすシムシティーのすべて」,
  97. 97. 影響マップの方法 <解説>終わり
  98. 98. Killzone 2 における影響マップ ボット、砲塔、死亡ポイントの情報を反映させる さまざまな意思決定に用いる
  99. 99. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  100. 100. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  101. 101. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  102. 102. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す 安全 危険
  103. 103. Killzone 2 における戦略的パス検索 スカッド毎にコストと影響マップを使って戦略パスを見出す
  104. 104. ユーティリティベース意思決定 Utility-based decision making ステート(状態)ベースAI ゴール(目標)ベースAI ビヘイビア(振る舞い)ベースAI ユーティリティ(効用)ベース AI Rule-based AI State-based AI Behavior-based AI Goal-based AI Utility-based AI タスク(仕事)ベース AI Task-based AI シミュレーションベース AI Simulation-based AI ルール(規則)ベースAI
  105. 105. ユーティリティ・ベース • ユーティリティ・ベースは高度に抽象的な戦術決定の方法。 • 世界をモデル化し、評価すべき行動群の効用(ユーティリティ) を数値に還元する。
  106. 106. 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, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
  107. 107. オブジェクトに仕込むデータ構造 Data (Class, Sate) Graphics (sprites, z- buffers)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大学、講義資料) ※IEで見てください。 http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example” http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
  108. 108. The Sims における「モチーフ・エンジン」 Ken Forbus, “Simulation and Modeling: Under the hood of The 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 Motive Engine Cooking Mechanical Logic Body Etc. AIの人格モデル
  109. 109. 最適(=最大効用)な行動を選択する 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) を最大化する行動を選択する。
  110. 110. ムードの計算方法と各パラメーターのウェイトグラフ 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
  111. 111. 効用(Utility)の計算の仕方 W_Hunger X_Hunger W_Hunger(-80) -80 60 W_Hunger(60)
  112. 112. 効用(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) Utility for hunger
  113. 113. 限界効用逓減の法則 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) ある程度満たされたものを満たすより、 満たされないものをある程度満たす方が大きな満足をもたらす Utility for hunger ビールは一杯目が一番おいしい
  114. 114. The Sims のAIの原理 三宅陽一郎、「Spore におけるゲームAI技術とプロシージャル」 (DiGRA Japan 第14回 月例研究 http://digrajapan.org/?wpdmact=process&did=Ni5ob3RsaW5r Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料) http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  115. 115. The Sims 3 では、多くのムードや欲求が準備される。 行動 対象 GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter
  116. 116. アフォーダンスとユーティリティ • 環境がAIに対して示唆をする = アフォーダンス指向のAI 並木 幸介 [CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振 る舞いをさせる手法 https://cedil.cesa.or.jp/cedil_sessions/view/697
  117. 117. アイルー村(2010)
  118. 118. 参考文献 • アフォーダンスとユーティリティ • 環境がAIに対して示唆をする = アフォーダンス指向のAI 並木 幸介 [CEDEC]ぽかぽかアイルー村における、アフォーダンス指向のAI事例。AIに多様な振る舞いをさせる手法 https://cedil.cesa.or.jp/cedil_sessions/view/697
  119. 119. シミュレーションベース意思決定 Simulation-based decision making ステート(状態)ベースAI ゴール(目標)ベースAI ビヘイビア(振る舞い)ベースAI ユーティリティ(効用)ベース AI Rule-based AI State-based AI Behavior-based AI Goal-based AI Utility-based AI タスク(仕事)ベース AI Task-based AI シミュレーションベース AI Simulation-based AI ルール(規則)ベースAI
  120. 120. シミュレーション・ベース • シミュレーションは、ここではエージェントの想 像のこと。 • 問題を定式化できない場合、実際に頭の中 で動かしてみることを意味する。 • ゲームの場合は、実際にゲームのルール・原 理に従って運動させてみる。
  121. 121. シミュレーション・ベース ※イメージです。 要所、要所のシミュレーション結果を実際の世界の状況と比較して、 フィードバックをかける。
  122. 122. シミュレーション・ベース ジャンプするシミュレーションを行うことで、成功するジャンプを見出して実行する。
  123. 123. Warfarmeにおける壁面移動 Daniel Brewer, “The Living AI in Warframe’s Procedural Space Ships” (Game AI Conference 2014) ※登録が必要なサイトです http://archives.nucl.ai/recording/the-living-ai-in-warframes-procedural-space-ships/ プレイヤー AI プレイヤーが「ジャンプ・壁面走り・ジャンプ」したデータから 学習して、AIがそのデータをもとに同じ動きをする。 ジャンプ 壁面走り ジャンプ
  124. 124. シミュレーション・ベース 加速・減速など自由な軌道を描けるAIが、複雑な地形を通過するときに、 複数の運動シミュレーションを走らすことで、もっともエレガントな軌道を見出す。
  125. 125. Armored Core V における空中移動 岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011) https://cedil.cesa.or.jp/cedil_sessions/view/593 START GOAL
  126. 126. Armored Core V における空中移動 岡村 信幸, ARMORED CORE Vのパス検索 (CEDEC 2011) https://cedil.cesa.or.jp/cedil_sessions/view/593 START GOAL
  127. 127. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  128. 128. 第8章 プロシージャル プロシージャル=動的な計算によるコンテンツ生成(思考、アセット)
  129. 129. プロシージャル技術 ゲームAI技術 AI技術 プロシージャル 技術 コンテンツ自動生成技術 (PCG, Procedural Contents Generation )
  130. 130. (例)① GA Racer遺伝的アルゴリズムによって、遠くまで到達できるレーサーを作成する。 最初はここまでしか たどり着けないけど… だんだんと遠くまで、 たどりつけるようにする。 Mat Buckland, "Building Better Genetic Algorithm", 11.4., AI Game Programming Wisdom 2 (CD-ROMにソースコードと実行ファイルがあります) 最初の世代 新世代(100~世代後)
  131. 131. (例)③ムーンランディング (月着陸) 3世代 20世代 35世代 落下法則(物理法則)のもとで降下ポイントから台座に垂直に着陸する操作を見出す 最初は全く見当違い。 だんだんと近付いて来る。 Mat Buckland, Andre Lamothe, “Moon Landings Made Easy ”, chapter.6., AI techniques for game programming, Premier Press (2002) (CD-ROMにソースコードと実行ファイルがあります) 着陸地点 降下開始ポイント 降下開始ポイント 降下開始ポイント
  132. 132. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  133. 133. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  134. 134. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  135. 135. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  136. 136. ニューラルネットワークの応用 Black & White (Lionhead,2000) クリーチャーを育てていくゲーム。 クリーチャーは自律的に行動するが、 訓練によって学習させることができる。 http://www.youtube.com/watch?v=2t9ULyYGN-s http://www.lionhead.com/games/black-white/
  137. 137. Belief – Desire – Intention モデル Desire (Perceptrons) Opinions (Decision Trees) Beliefs (Attribute List) Intention Overall Plan (Goal, Main Object) Attack enemy town Specific Plan (Goal, Object List) Throw stone at house Primitive Action List Walk towards stone, Pick it up, Walk towards house, Aim at house, Throw stone at house Richard Evans, “Varieties of Learning”, 11.2, AI Programming Wisdom
  138. 138. Belief – Desire – Intention モデル Desire (Perceptrons) Opinions (Decision Trees) Beliefs (Attribute List) Richard Evans, “Varieties of Learning”, 11.2, AI Programming Wisdom Low Energy Source =0.2 Weight =0.8 Value = Source*Weight = 0.16 Tasty Food Source =0.4 Weight =0.2 Value = Source*Weight = 0.08 Unhappiness Source =0.7 Weight =0.2 Value = Source*Weight = 0.14 ∑ 0.16+0.08+0.14 Threshold (0~1の値に 変換) hunger Desire(お腹すいた度)欲求を決定する 対象を決定する それぞれの対象の 固有の情報 他にも いろいろな 欲求を計算 Hunger Compassion Attack(戦いたい) Help ニューラルネットワークの応用 Black & White (Lionhead,2000)
  139. 139. 機械学習 • 機械学習を導入できるところ = くり返される状況がある • (例)格闘ゲーム、レースゲーム • 使いどころ = 人間が調整できないほど多くて複雑な数値調 整が必要な場所 (例)場合分けがあまりにも多い、ターゲット選択
  140. 140. 機械学習 • 微調整はできない。 • 学習をすべてやり直すしかない (例)特にニューラルネットワーク ゲームデザイナーの要望に応える場所では難しい。 ゲームデザイナーが気にしない場所で使うのが良い。 (例)たくさんのパターンを生成するなど ゲーム産業はいかに機械学習を調整するか、 という課題に直面している。
  141. 141. 生成系ニューラルネットワーク
  142. 142. 目次 • 第一節 ニューラルネットワーク基礎 • 第二節 生成系ニューラルネットワーク • 第三節 プロシージャル技術入門 • 第四節 ニューラルネットの歴史
  143. 143. 第一節 ニューラルネットワーク基礎
  144. 144. 神経素子(ニューロン)とは? 入力 入力 入力 出力 入力 この中にはイオン(電解,Na+,K+) 溶液が入っていて、入力によって電圧が 高まると出力する仕組みになっています。 100mVぐらい ニューラルネットワーク内シグナル伝達スピード 100(m/sec) … 案外遅い http://www.brain.riken.go.jp/jp/aware/neurons.html
  145. 145. ニューラルネットを理解しよう② 基本原理 http://www.pri.kyoto-u.ac.jp/brain/brain/11/index-11.html 医学的知識 http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/sozai/ai.html モデル化 数学的モデル ニューロン 人工ニューロン 入出力関係のグラフ 入出力関係の関数(シグモイド関数)
  146. 146. ニューラルネットを理解しよう② 数学的原理 http://www.pri.kyoto-u.ac.jp/brain/brain/11/index-11.html 医学的知識 http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/sozai/ai.html モデル化 数学的モデル ニューロン 人工ニューロン 入出力関係のグラフ 入出力関係の関数(シグモイド関数) ニューラルネットワーク (ニューロンをつなげたもの) 道具はこれで全て。これで何ができるだろう?
  147. 147. ニューラルネットを理解しよう③ 数学的原理 数学的モデル 入力信号 =繋がっている ニューロンからやっ て来ます ウエイト(重み) =各ニューロン間の結合の強さ 「入力信号x重み」+「バイアス」(初期電位、適当な小さな値) 出力信号 (0~1の間) バイアスをうまく調整して、 このセンシティブな領域に入力が集中するように 調整しよう!(ニューラルネットの技術的なコツ)
  148. 148. ニューラルネットを理解しよう③ 数学的原理 数学的モデル 階層型ニューラルネットワーク … 一方向にニューロンをつなげたもの 入力層 隠れ層 出力層 重み 重み 最初に定義するもの=ウエイト(重み) 、バイアス とりあえず全ての結合を定義しておく(ニューロン間の重みを0にすれば切れる) 数値の組み が入ります 数値の組み が出ます これは3層の例だけど、 何層つなげてもよい 一旦定義してから変えることができないもの…全体の構造 変えることができるもの…ウエイト(重み)
  149. 149. 目次 • 第一章 ニューラルネットワーク基礎 • 第二節 生成系ニューラルネットワーク • 第三節 プロシージャル技術入門 • 第四節 ニューラルネットの歴史
  150. 150. 第二節 生成系ニューラルネットワーク
  151. 151. 生成系ニューラルネットワーク技術 ニューラルネットワーク GAN (一般敵対的ネット) (ディープラーニング) ニューロエヴォリューション (進化的ニューラルネット) 逆伝播法 ニューラルネットワーク
  152. 152. 生成系ニューラルネットワーク技術 ニューラルネットワーク GAN (一般敵対的ネット) (ディープラーニング) ニューロエヴォリューション (進化的ニューラルネット) 逆伝播法 ニューラルネットワーク
  153. 153. 数学的モデル 数値の組み が入ります 階層型ニューラルネットで学習とは、ある入力に対して特定の出 力(学習信号)になるようにウエイトを変化させることを言います。 学習信号 実際の信号 誤差信号 ① 手動で少しずつ勘を頼りに変えて行く。 まず無理 ② えらい人が考えた方法を使ってみる。 誤差伝播法 伝播する 誤差信号 伝播する 誤差信号 どうやって? ニューラルネットを理解しよう 逆伝播法学習
  154. 154. ニューラルネットを理解しよう 逆伝播法学習 数学的モデル 数値の組み が入ります 教師信号と実際の出力の差を、ウエイトを調整する ことで、縮めて行く。 学習信号 実際の信号 誤差信号 伝播する 誤差信号 伝播する 誤差信号 ニューラルネットの出力側から、誤差分を、後ろ側に分担して 負担するように、後ろのニューロンへ、そのニューロンが 詰める大きさを含んだ情報を伝播して行く。 誤差伝播法(Back Propagation Method)
  155. 155. ニューラルネットを理解しよう 逆伝播法学習 数学的モデル 教師信号と実際の出力の差を、ウエイトを調整する ことで、縮めて行く。 伝播する 誤差信号 伝播する 誤差信号 ニューラルネットの出力側から、誤差分を、後ろ側に分担して 負担するように、後ろのニューロンへ、そのニューロンが 詰める大きさを含んだ情報を伝播して行く。 誤差伝播法(Back Propagation Method) 信号 絵 画家: ジャスパー・フランシス・クロプシー Painter: Jasper Francis Cropsey タイトル: ポンプトン・プレインズ
  156. 156. 生成系ニューラルネットワーク技術 ニューラルネットワーク GAN (一般敵対的ネット) (ディープラーニング) ニューロエヴォリューション (進化的ニューラルネット) 逆伝播法 ニューラルネットワーク
  157. 157. ⑤ニューラルネットワークの構造が進化させる 「NEAT」の技術 Mat Buckland, Chapter 11, AI techniques for game programming, Premier Press, 2002 (実行ファイルとソースコードがCD-ROMにあります) これまでニューラルネットは、最初に構造を定義した後は変化しなかった。 動的にニューラルネットの構造を変化させる技術 Neuron Evoluation of Augmenting Topologies (NEAT)
  158. 158. Neuro Evolution を詳しく解説
  159. 159. NEAT 回路の構成を遺伝子コードで表現する。 Weight: 1.2 From: 1 To: 3 Enabled: Y Recurrent: N Innovation: 1 Weight: -3 From: 1 To: 4 Enabled: Y Recurrent: N Innovation: 6 Weight: 0.7 From: 2 To: 4 Enabled: Y Recurrent: N Innovation: 2 Weight: -2.1 From: 3 To: 4 Enabled: Y Recurrent: N Innovation: 6 Weight: 1.1 From: 3 To: 5 Enabled: N Recurrent: N Innovation: 3 Weight: 0.8 From: 4 To: 5 Enabled: Y Recurrent: N Innovation: 4 Weight: -1 From: 5 To: 3 Enabled: Y Recurrent: Y Innovation: 7 ID: 1 Type: Input ID: 2 Type: Input ID: 3 Type: hidden ID: 4 Type: hidden ID: 5 Type: Output 2 1 4 3 5 つなぎ方を定義する遺伝子 ニューロンを定義する遺伝子 入力 出力
  160. 160. NEAT 回路の構成を遺伝子コードで表現する。 Weight: 1.2 From: 1 To: 3 Enabled: Y Recurrent: N Innovation: 1 Weight: -3 From: 1 To: 4 Enabled: Y Recurrent: N Innovation: 6 Weight: 0.7 From: 2 To: 4 Enabled: Y Recurrent: N Innovation: 2 Weight: -2.1 From: 3 To: 4 Enabled: Y Recurrent: N Innovation: 6 Weight: 1.1 From: 3 To: 5 Enabled: N Recurrent: N Innovation: 3 Weight: 0.8 From: 4 To: 5 Enabled: Y Recurrent: N Innovation: 4 Weight: -1 From: 5 To: 3 Enabled: Y Recurrent: Y Innovation: 7 ID: 1 Type: Input ID: 2 Type: Input ID: 3 Type: hidden ID: 4 Type: hidden ID: 5 Type: Output 2 1 4 3 5 リンク(つなぎ方)を定義する遺伝子 ニューロンを定義する遺伝子 Innovation ID によってリンク、ニュー ロンを全遺伝子共通の管理する。 無効 入力 出力
  161. 161. NEATにおける交叉 親1 2 1 7 3 4 1 1->4 2 2->4 3 3->4 6 3->7 7 7->4 12 1->7 1 1->4 2 2->4 3 3->4 4 2->5 5 5->4 8 5->9 9 9->4 15 3->9 親2 2 1 3 95 4 Innovation ID ID順に並べます。 1 1->4 2 2->4 3 3->4 1 1->4 2 2->4 3 3->4 4 2->5 5 5->4 6 3->7 7 7->4 8 5->9 9 9->4 12 1->7 15 3->9 交 叉 4 2->5 5 5->4 8 5->9 9 9->4 15 3->9 1 1->4 2 2->4 3 3->4
  162. 162. NEATにおける交叉 親1 2 1 7 3 4 1 1->4 2 2->4 3 3->4 6 3->7 7 7->4 12 1->7 1 1->4 2 2->4 3 3->4 4 2->5 5 5->4 8 5->9 9 9->4 15 3->9 親2 2 1 3 95 4 Innovation ID 交 叉 2 1 3 95 4 4 2->5 5 5->4 8 5->9 9 9->4 15 3->9 1 1->4 2 2->4 3 3->4 子供=新しいニューラルネットワーク
  163. 163. エージェント・アーキテクチャー 身体 センサー エフェクター NPCの知能部分 ゲーム世界 相互作用 時間 時間 知覚する 行動する 機体 制御 交配の中で発展して行く
  164. 164. 第3世代 第929世代 第1368世代 左は俯瞰図(赤は衝突してしまってい る) 右は適応度ベスト4のニューラルネット
  165. 165. https://arxiv.org/pdf/1410.7326.pdf
  166. 166. 弾幕自動生成 • Applying Evolutionary Algorithms to the Galactic Arms Race • http://aigamedev.com/open/interviews/galactic-arms-race/ https://www.youtube.com/watch?v=N8q2uOwWcFc
  167. 167. 生成系ニューラルネットワーク技術 ニューラルネットワーク GAN (一般敵対的ネット) (ディープラーニング) ニューロエヴォリューション (進化的ニューラルネット) 逆伝播法 ニューラルネットワーク
  168. 168. はじめのGAN https://elix-tech.github.io/ja/2017/02/06/gan.html
  169. 169. https://arxiv.org/abs/1406.2661
  170. 170. 生成用 ニューラルネット 判定用 ニューラルネット データ ベクトル 生成画像 真 = 1 偽 = 0
  171. 171. https://arxiv.org/abs/1406.2661
  172. 172. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks Alec Radford, Luke Metz, Soumith Chintala (Submitted on 19 Nov 2015 (v1), last revised 7 Jan 2016 (this version, v2)) https://arxiv.org/abs/1511.06434
  173. 173. Unsupervised Representation Learning with Deep Convolutional Generative Adversarial Networks Alec Radford, Luke Metz, Soumith Chintala (Submitted on 19 Nov 2015 (v1), last revised 7 Jan 2016 (this version, v2)) https://arxiv.org/abs/1511.06434
  174. 174. 目次 • 第一節 ニューラルネットワーク基礎 • 第二節 生成系ニューラルネットワーク • 第三節 プロシージャル技術入門 • 第四節 ニューラルネットの歴史
  175. 175. 第三節 プロシージャル技術入門
  176. 176. ゲームエンジンにおける自動生成 (例 DUNIA ENGINE) • 各開発会社のゲームエンジンには、自動生成技術が組み込まれ ている。 • https://www.youtube.com/watch?v=FI3oR6vqn1Q
  177. 177. 次世代ゲームにおける自動生成技術 (2007年12月、三宅陽一郎) • https://www.slideshare.net/youichiromiyake/ss-51549802
  178. 178. GPU-BASED PROCEDURAL PLACEMENT IN HORIZON ZERO DAWN • https://www.guerrilla-games.com/read/gpu-based- procedural-placement-in-horizon-zero-dawn • データからプロシージャルにマップなど、ゲームに必要なデー タを生成
  179. 179. Rogue (1980)のレベル生成法 Rect[0] Rect[0] Rect[1] Rect[0] Rect[1] Rect[2] Rect[3] http://racanhack.sourceforge.jp/rhdoc/intromaze.html
  180. 180. Rogue (1980)のダンジョン生成法 Rect[0] Rect[0] Rect[1] Rect[0] Rect[1] Rect[2] Rect[3] このようにアセット(ゲームのデータ)をツールなどを通して製作するのではなく、 プログラムで作ることを「プロシージャル・コンテンツ・ジェネレーション」(PCG)と言う。 http://racanhack.sourceforge.jp/rhdoc/intromaze.html
  181. 181. 迷路の自動的な作り方 • 穴掘り法 • 棒倒し法 • 壁伸ばし法 迷路自動生成アルゴリズム http://www5d.biglobe.ne.jp/stssk/maze/make.html
  182. 182. WarFrame における自動生成マップの 自動解析による自動骨格抽出 • 自動生成するだけでなく、自動生成したダンジョンを、自動解 析します。ここでは、トポロジー(形状)検出を行います。
  183. 183. アーロンのアルゴリズム • 知識ベースの人工知能 = 閉曲線で描くことを学ぶ。 1981
  184. 184. アーロンのアルゴリズム • 知識ベースの人工知能 (左) 学んだ知識から描く (右) 架空のものを学んだものから描く 19851983
  185. 185. アーロンのアルゴリズム • 知識ベースの人工知能 前後関係を取れるようにする。 1986
  186. 186. ブラウン運動 ロバート・ブラウン博士によって、1827年に発見された現象。 微粒が媒質(液体)の中で行う不規則な運動。 アインシュタイン博士によって、熱運動する媒質の不規則な 衝突によって引き起こされると説明された。 http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%E9%81%8B%E5%8B%95
  187. 187. ブラウン運動から地形生成 ロバート・ブラウン博士によって、1827年に発見された現象。 微粒が媒質(液体)の中で行う不規則な運動。 アインシュタイン博士によって、熱運動する媒質の不規則な 衝突によって引き起こされると説明された。 http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%E9%81%8B%E5%8B%95 宮田一乗「プロシージャル技術の動向」(CEDEC 2008)
  188. 188. ブラウン運動から地形生成 http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%E9%81%8B%E5%8B%95 https://www.youtube.com/watch?v=m4JDNzwFZFI
  189. 189. ブラウン運動から地形生成 http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%E9%81%8B%E5%8B%95 http://www.kenmusgrave.com
  190. 190. ブラウン運動から地形生成 http://ja.wikipedia.org/wiki/%E3%83%96%E3%83%A9%E3%82%A6%E3%83%B3%E9%81%8B%E5%8B%95 http://www.kenmusgrave.com
  191. 191. NO MAN’S SKY (Hello Games, 2016) http://www.no-mans-sky.com/ 宇宙、星系、太陽系、惑星を自動生成する。
  192. 192. FarCry2 におけるプロシージャル技術 50km四方のマップを作る オブジェクト(草木)&アニメーションデータを自動生成
  193. 193. FarCry2 (Dunia Engine ) デモ 草原自動生成 時間システム 樹木自動生成 動的天候システム 動的天候システム http://www.farcry2-hq.com/downloads,18,dunia-engine-nr1.htm
  194. 194. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  195. 195. 第9章 キャラクターAI(学習)
  196. 196. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用
  197. 197. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用
  198. 198. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  199. 199. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  200. 200. Neural Networks in Supreme Commander 2 (GDC 2012) Michael Robbins (Gas Powered Games) http://www.gdcvault.com/play/1015406/Off-the-Beaten-Path-Non http://www.gdcvault.com/play/1015667/Off-the-Beaten-Path-Non ニューラルネットワークの応用
  201. 201. Belief – Desire – Intention モデル Desire (Perceptrons) Opinions (Decision Trees) Beliefs (Attribute List) Richard Evans, “Varieties of Learning”, 11.2, AI Programming Wisdom Low Energy Source =0.2 Weight =0.8 Value = Source*Weight = 0.16 Tasty Food Source =0.4 Weight =0.2 Value = Source*Weight = 0.08 Unhappiness Source =0.7 Weight =0.2 Value = Source*Weight = 0.14 ∑ 0.16+0.08+0.14 Threshold (0~1の値に 変換) hunger Desire(お腹すいた度)欲求を決定する 対象を決定する それぞれの対象の 固有の情報 他にも いろいろな 欲求を計算 Hunger Compassion Attack(戦いたい) Help ニューラルネットワークの応用 Black & White (Lionhead,2000)
  202. 202. ニューラルネットワークの応用 Black & White (Lionhead,2000) クリーチャーを育てていくゲーム。 クリーチャーは自律的に行動するが、 訓練によって学習させることができる。 http://www.youtube.com/watch?v=2t9ULyYGN-s http://www.lionhead.com/games/black-white/ 14:20-
  203. 203. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用
  204. 204. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 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
  205. 205. 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 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習
  206. 206. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 • 揺らぎ • ライン – コーナーやそのコンビネーションに対し て、どれぐらいスムーズに車をガイドするか • コーナーへの突入スピードとブレーキを踏むタイ ミングと。保守的か過激か。 • コーナーの頂点にどれぐらい近づくか、どれぐら いの速度でそこを抜けるか? • コーナーを抜ける時のスピードとコーナーを回る 時のスピード。 Drivatar がプレイヤーのコントロールから学習するもの Microsoft Research Drivatar™ in Forza Motorsport http://research.microsoft.com/en-us/projects/drivatar/forza.aspx
  207. 207. 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 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 プレイヤーの特性を解析する 特徴となる数値をドライブモデルに渡す
  208. 208. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 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 レーシングラインを事前に構築する。生成というよるテーブルから組み合わせる。
  209. 209. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 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 レーシングラインを事前に構築する。生成というよるテーブルから組み合わせる。
  210. 210. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 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 レーシングラインに沿わせるのではなく、理想とする位置とスピードから コントローラーの制御を計算して、物理制御によって車を運転する。
  211. 211. 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 機械学習 (例) Halo®3におけるオンライン・マッチング・システム
  212. 212. • TrusSkill =プレイヤーの強さを正規分布の中央値と標準偏差 として扱う。 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 機械学習 (例) Halo®3におけるオンライン・マッチング・システム μ : 中央値 σ: 標準偏差
  213. 213. • TrusSkill =プレイヤーの強さを正規分布の中央値と標準偏差 として扱う。 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 機械学習 (例) Halo®3におけるオンライン・マッチング・システム μ : 中央値 σ: 標準偏差 その人の強さを表す その人の強さの正確さを示す。 100回やってこのランクの人と 1000回やってこのランクの人では 1000回の人の方が正確 =標準偏差が小さい
  214. 214. • スキル 𝜇 𝐴, 𝜎𝐴 のプレイヤーと、スキル 𝜇 𝐵, 𝜎 𝐵 のプレイヤーが マッチングする確率は、 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 機械学習 (例) Halo®3におけるオンライン・マッチング・システム μ : 中央値 σ: 標準偏差 𝑒 − (𝜇 𝐴−𝜇 𝐵)2 2𝐶2 𝑑 (𝑑 = 2𝛽2 𝑐 )
  215. 215. 機械学習 (例) Halo®3におけるオンライン・マッチング・システム 2人が対戦して勝ったとき、負けた時の中央値、標準偏差の変化 知能と情報 : 日本知能情報ファジィ学会誌 : journal of Japan Society for Fuzzy Theory and Intelligent Informatics 22(6), 745-756, 2010-12-15 日本知能情報ファジィ学会 「オンラインゲームにおける人工知能・. プロシージャル技術の応用」 http://igda.sakura.ne.jp/sblo_files/ai-igdajp/image/JSFTII_22-6_online20game_Miyake.pdf
  216. 216. キャラクターにおける様々な学習 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 言語学習
  217. 217. 強化学習とは? 行動選択 =ポリシー (π) 環境(Env) 行動(a) 状態(S) 報酬 報酬 関数 環境のモデルはよくわからない。 でも、行動をして、それに対する結果(=報酬)が環境から返って来る。 その報酬から、現在の状態と行動の評価を見直して、 行動選択の方針を変えて行くことを強化学習という。
  218. 218. 強化学習 (例)マルチバンディッド問題 スロット マシン ルーレット マシン フラッシュ マシン AI
  219. 219. 強化学習(例) スロット マシン ルーレット マシン フラッシュ マシン AI π : どのマシンで賭けをするか? a_0:アクション a_1:アクション a_2:アクション R_0 : 報酬 R_1:報酬 R_2:報酬 強化学習 (例)マルチバンディッド問題
  220. 220. 強化学習(例) スロット マシン ルーレット マシン フラッシュ マシン AI π : どのマシンで賭けをするか? a_0:アクション a_1:アクション a_2:アクション R_0 : 報酬 R_1:報酬 R_2:報酬 最初から、どのマシンに賭けていいか、わからない。 少しずつ賭けつつ、どのマシンからの報酬が良いかを判断しながら、 賭けを続ける。 =強化学習 環境と自分のアクションのインタラクションを見ながら、 随時、行動を決定する基準を変えて行くこと。 強化学習 (例)マルチバンディッド問題
  221. 221. 強化学習(例) スロット マシン ルーレット マシン フラッシュ マシン AI π : どのマシンで賭けをするか? a_0:アクション a_1:アクション a_2:アクション R_0 : 報酬 R_1:報酬 R_2:報酬 π : 最初はどのマシンにも同じ確率 1/3 で賭ける。 でも、最初100ドルずつ賭けた時の報酬が、50ドル、20ドル、30ドル だったとしたら? π : どのように変化させるか? 例えば、 5:2:3 など。 強化学習 (例)マルチバンディッド問題
  222. 222. 強化学習とは? 行動選択 =ポリシー (π) 環境(Env) 行動(a) 状態(S) 報酬 報酬 関数 環境のモデルはよくわからない。 でも、行動をして、それに対する結果(=報酬)が環境から返って来る。 その報酬から、現在の状態と行動の評価を見直して、 行動選択の方針を変えて行くことを強化学習という。
  223. 223. 強化学習(例) 強化学習 (例)格闘ゲーム キック パン チ 波動 R_0 : 報酬=ダメージ
  224. 224. 強化学習 (例)格闘ゲーム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
  225. 225. 強化学習 (例)格闘ゲーム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
  226. 226. 強化学習 (例)格闘ゲームTaoFeng におけるキャラクター学習 実際は、AIの状態(距離など)に対してアクションが学習されます。 多くの技(攻撃20種類、防御10種類ほど)が強化学習される。 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
  227. 227. 世界 五感 身体 言語 知識表 現型 知識 生成 Knowledge Making 意思決定 Decision Making 身体 運動 生成 Motion Making インフォメーション・フロー(情報回廊) 記憶 キャラクターにおける学習の原理 行動の表現結果の表現 意思決定
  228. 228. 強化学習(例) 強化学習 (例)格闘ゲーム キック パン チ 波動 R_0 : 報酬=ダメージ http://piposozai.blog76.fc2.com/ http://dear-croa.d.dooo.jp/download/illust.html
  229. 229. 強化学習 (例)格闘ゲーム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/
  230. 230. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用
  231. 231. 遺伝的アルゴリズムの応用 集団を一定の方向に進化させる方法 最初の世代 新世代(100~世代後) … 世代を経て進化させる 1つの世代が次の世代を交配によって産み出す
  232. 232. 遺伝的アルゴリズムの仕組み 遺伝子 遺伝子 次世代 親① 親② 母集団から優秀な親を 2体ピックアップ 遺伝子を掛け合わせる 次世代の子供を産み出す (selection) (crossover) (production) 現世代 このサイクルをくり返すことで世代を進めて、望ましい集団を産み出す 遺伝子 遺伝子
  233. 233. (例)① GA Racer 遺伝的アルゴリズムによって、遠くまで到達できるレーサーを作成する。 最初はここまでしか たどり着けないが… だんだんと遠くまで、 たどりつけるようにする。 Mat Buckland, "Building Better Genetic Algorithm", 11.4., AI Game Programming Wisdom 2 (CD-ROMにソースコードと実行ファイルがあります) 最初の世代 新世代(100~世代後)
  234. 234. 森川幸人, 「テレビゲームへの人工知能技術の利用」, 人工知能学会誌vol.14 No.2 1999-3 http://www.ai-gakkai.or.jp/jsai/whatsai/PDF/article-iapp-7.pdf http://www.1101.com/morikawa/1999-04-10.html に準拠します。 以下の解説は 詳細は以下の資料へ
  235. 235. (例)④アストロノーカ 最初はすぐに罠にかかるが、 だんだんと罠にかからないようになる MuuMuu, PlayStation®用ソフト「アストロノーカ」(Enix, 1998) http://dlgames.square-enix.com/jp/psga/2008/astronoka/ http://www.muumuu.com/product.html 新世代(5~世代後)最初の世代 野菜 食べたい 世界最高峰の遺伝的アルゴリズムを使ったゲーム (AIをどうゲームに使うか、という手本のようなゲーム)
  236. 236. 全体の流れ トラップを配置する 1日の始まり トラップバトル開始 トラップバトル終了 トラップ成績算出 各個体の成績算出 順位を決定 下位2体を削除 適応度に応じて親を選択 子供2体を生成 新しい世代を生成 規定世代に達した? 1日の終了 世代交代数を修正 突然変異率を修正
  237. 237. 4-① 初期の個体集合を生成 個体を多数(GAにはある程度の母数が必要)用意し、 各NPCに遺伝子コードを設定し、初期値を設定する。 56x8=448ビット 遺伝子身長 耐性_快光線腕力 脚力 耐性_かかし体重 1.87 6.85 16.25 25.03 25.03 16.25 6.85 1.87 0 1 2 3 4 5 6 7 [各ビットの重み] [バブーの属性(総計56)]
  238. 238. (C)1998 Muu Muu co.,Ltd./SYSTEM SACOM corp./ENIX アストロノーカ(muumuu、森川幸人)
  239. 239. ゲームシステムとしての工夫 全体の適応度の平均値 1日の適応度の伸び 世代交代数 工夫その① 遺伝的アルゴリズムは集団に対するアルゴリズム 一体のトラップバトルの裏で他の20体も同じトラップバトルをして、 全体として世代交代をさせている。 工夫その② 遺伝的アルゴリズムは進化のスピードがプレイヤーに体感させるには遅い プレイヤーには「1世代の変化」と言っているが、 実はだいたい1日5世代分進化させている。 工夫その③ プレイヤーから見て 毎日、同じ適応度の 上昇になるように、 世代交代数を調整している
  240. 240. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  241. 241. 第10章 デバッグのAI 眞鍋 和子、「遺伝的アルゴリズムによる人工知能を用いたゲームバランス調整」(CEDEC 2017) http://cedil.cesa.or.jp/cedil_sessions/view/1655 https://www.inside-games.jp/article/2017/09/02/109510.html https://www.4gamer.net/games/328/G032883/20170902004/
  242. 242. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  243. 243. 第11章 協調するAI
  244. 244. CCP における 協調配置システムの研究
  245. 245. CADIA Populs http://populus.cs.ru.is/node/116 「EveOnline」を作っているCCPは、レイキャビク大学と共同で エージェントたちの自然な振る舞いを研究した。
  246. 246. Humanoid Agent in Social Game Environment (HASGE) Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  247. 247. HASGE Project (Reykjavik Univ, CCP) http://cadia.ru.is/wiki/public:socialgame:main
  248. 248. F-formation (Kendon, 1984) • 人と人が向い合うときに、形成する立ち位置。 Paul Marshall,Yvonne Rogers,Nadia Pantidi Using F-formations to analyse spatial patterns of interaction in physical environments http://mcs.open.ac.uk/pervasive/pdfs/MarshallCSCW2011.pdf
  249. 249. いろいろな F-formation パターン Paul Marshall,Yvonne Rogers,Nadia Pantidi Using F-formations to analyse spatial patterns of interaction in physical environments http://mcs.open.ac.uk/pervasive/pdfs/MarshallCSCW2011.pdf
  250. 250. いろいろな F-formation パターン Paul Marshall,Yvonne Rogers,Nadia Pantidi Using F-formations to analyse spatial patterns of interaction in physical environments http://mcs.open.ac.uk/pervasive/pdfs/MarshallCSCW2011.pdf
  251. 251. EVE ONLINE Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  252. 252. CADIA Populs http://populus.cs.ru.is/node/116 「EveOnline」を作っているCCPは、レイキャビク大学と共同で エージェントたちの自然な振る舞いを研究した。
  253. 253. テリトリーとインフルエンス • テリトリー(Territory) … 個人を中心とする対人 距離。 • ビヘイビア・インフルエンス (behavioural influence) そのビヘイビアが人を引き込む範囲。 - Social place - Social situation
  254. 254. ソーシャル・ダイナミクス Social Dynamics = Social Behavior influence (社会的な振る舞いが) at Social place (社会的な場において) makes Social Situation (シチュエーションを作る)
  255. 255. F-formation Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf Transactional Segment = 交流場
  256. 256. 共有される場 (入ってはいけない!) 会話参加者の立つリング この円内に入ったものは、 会話参加者が目をやる・ この円内に入ったものは、 会話参加者がより注意深く見る。 F-formation Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  257. 257. 社会的ビヘイビアが 伝えられる距離 会話に参加していると 言える距離 4人が形成するテリトリー F-formation Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  258. 258. Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  259. 259. 不自然/自然
  260. 260. 不自然/自然
  261. 261. Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  262. 262. Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  263. 263. 共有される情報 Cladio Pedica - Spontaneous Avatar Behaviour for Social Territoriality Reykjavik University. http://www.ru.is/~hannes/publications/JAAI2010.pdf
  264. 264. 『Reckoning』における ターゲット協調システム
  265. 265. ターゲッティング問題とは 複数のAIが一人(か少数)の敵を攻撃する場合、 誰がどのターゲットを攻撃するか、という問題 (袋叩きにしてはバランスが取れない)
  266. 266. ベルギアンAI Grid capacity, Attack Capacity Attack Weight = 4 12 Grid Capacity = グリッドに入れるモンスターの数 各モンスターはそれぞれ Attack Weight (整数値)を持つ Attack Capacity = キャラクターの周りのグリッドに入るモンスターの Attack weight の総和の最大
  267. 267. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 12 RequestAssign モンスターから Stage Manager にリクエストして 条件に合えばアサインして、 一番近いスロットに スロットの占有権を与える。 モンスターは攻撃したら、 占有権を速やかに Stage Manager に返却する。
  268. 268. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 8
  269. 269. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 0
  270. 270. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 2 Attack Weight = 6
  271. 271. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 2 Attack Weight = 6
  272. 272. ベルギアンAI(例) Attack Weight = 4 Stage Manager Grid Capacity = 5 … 五体まで入っていい。 Attack Capacity = 12 総和が12まで 2 Attack Weight = 6 (通常攻撃) Attack Weight = 10 (特殊攻撃)
  273. 273. モンスターから Stage Manager にリクエストして 条件に合えばアサインして、 スロットの占有権を与える。 モンスターは攻撃したら、 占有権を速やかに Stage Manager に返却する。 Stage Manager
  274. 274. モンスターから Stage Manager にリクエストして 条件に合えばアサインして、 スロットの占有権を与える。 モンスターは攻撃したら、 占有権を速やかに Stage Manager に返却する。 Stage Manager
  275. 275. モンスターから Stage Manager にリクエストして 条件に合えばアサインして、 スロットの占有権を与える。 モンスターは攻撃したら、 占有権を速やかに Stage Manager に返却する。 Stage Manager
  276. 276. モンスターは、自分の スロットを覚えない。 常に、Stage Manager が フルコントロールする。 Stage Manager
  277. 277. 攻撃を開始したモンスターは 自分をロックできる。 Stage Manager
  278. 278. Reckoning におけるターゲットシステム GDC 2012 AI Postmortems: Kingdoms of Amalur: Reckoning, Darkness II and Skulls of the Shogun Michael Dawe, http://www.gdcvault.com/play/1015380/AI-Postmortems-Kingdoms-of-Amalur
  279. 279. Reckoning におけるターゲットシステム GDC 2012 AI Postmortems: Kingdoms of Amalur: Reckoning, Darkness II and Skulls of the Shogun Michael Dawe, http://www.gdcvault.com/play/1015380/AI-Postmortems-Kingdoms-of-Amalur
  280. 280. Reckoning におけるターゲットシステム GDC 2012 AI Postmortems: Kingdoms of Amalur: Reckoning, Darkness II and Skulls of the Shogun Michael Dawe, http://www.gdcvault.com/play/1015380/AI-Postmortems-Kingdoms-of-Amalur
  281. 281. Reckoning におけるターゲットシステム GDC 2012 AI Postmortems: Kingdoms of Amalur: Reckoning, Darkness II and Skulls of the Shogun Michael Dawe, http://www.gdcvault.com/play/1015380/AI-Postmortems-Kingdoms-of-Amalur
  282. 282. 考察 • ゲームにおいては、あまりエージェント同志のコミュニケーショ ンを使うことはない。 • むしろ場や、中央制御によって簡単で操作しやすい制御を実 現することが多い。
  283. 283. 分散人工知能
  284. 284. 分散人工知能 複数の知的機能を組み合わせて、 一つの大きな知能を組み立てようとする知能。 複数の人工知能を組み合わせる。 石田亨 ,片桐恭弘,桑原和宏, 「分散人工知能」, コロナ社, 1996 「シンプルな機能」を組み合わせて一つの知能を作る方法。
  285. 285. 黒板モデル (ブラックボード・アーキテクチャ) 「シンプルな機能」を組み合わせて一つの知能を作る方法。 知識源(ナレッジソース、Knowledge Source、以下KS) = 特定の専門的な操作をできる専門的な機能モジュール。 黒板上にあるデータに対して特定の操作を施すことができる。 KS
  286. 286. ブラックボード・アーキテクチャ(Blackboard Architecture) ブラックボード KS KS KS KS KS KS
  287. 287. ブラックボードを用いた 協調ターゲッティング
  288. 288. 集団の協調 AI A B C 1 2 3 4 5 Players
  289. 289. 集団の協調 AI A B C 1 2 3 4 5 Players
  290. 290. 集団の協調 AI A B C 1 2 3 4 5 Players 混乱かつ制御不能
  291. 291. 集団の協調 1 2 3 4 5 KS A B C Enemy B Slot 2 Enemy C Slot 1 Enemy A Slot 2 Enemy B Slot 1 Enemy C Slot 2
  292. 292. 集団の協調 1 2 3 4 5 KS A B C Enemy B Slot 2 Enemy C Slot 1 Enemy A Slot 2 Enemy B Slot 1 Enemy A Slot 2 Entry Accept!
  293. 293. 集団の協調 1 2 3 4 5 KS A B C Enemy B Slot 2 Enemy C Slot 1 Enemy A Slot 2 Enemy B Slot 1 Enemy A Slot 2 Entry Reject!
  294. 294. 集団の協調 1 2 3 4 5 KS A B C Enemy B Slot 2 Enemy C Slot 1 Enemy A Slot 2 Enemy B Slot 1 Enemy A Slot 2
  295. 295. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  296. 296. 第12章 調整の仕方
  297. 297. 調整 ゲーム テストプレイ フィードバック
  298. 298. 調整 ゲーム テストプレイ フィードバック イテレーションサイクルを早めること
  299. 299. ご質問 ©2017 SQUARE ENIX CO., LTD. All Rights Reserved. • y.m.4160@gmail.com • Twitter: @miyayou • Facebook: https://www.facebook.com/youichiro.miyake

×