Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

ゲームAI入門(前半)

15.329 Aufrufe

Veröffentlicht am

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

Veröffentlicht in: Karriere
  • Login to see the comments

ゲーム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. My Works (2004-2017) AI for Game Titles Books
  3. 3. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  4. 4. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  5. 5. 参考文献
  6. 6. 参考文献 (128の基本文献へのリンク) https://www.ai-gakkai.or.jp/my-bookmark_vol32-no4/ 国内事例に関しては (20) 日本におけるゲームAI事例
  7. 7. 参考文献 三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」 (17ページ) (人工知能学会誌、2017 2号)
  8. 8. 参考文献 三宅陽一郎 「 ディジタルゲームにおける人工知能技術の応用の現在」 (20ページ) (人工知能学会誌、2015/1号) (AI書庫から無料でDL可能 http://id.nii.ac.jp/1004/00001730/ )
  9. 9. • ThinkIT https://thinkit.co.jp/author/10026 • AI最前線の現場から【スクウェア・エニックス】
  10. 10. 参考になる小さなコードが掲載 コードはこちら https://www.oreilly.co.jp/books/9784873113395/
  11. 11. 参考文献 GAME AI PRO 3 (2017/6) 世界中から集められた記事をもとに2年ごとに発行される
  12. 12. 参考文献 Predictive Animation Control Using Simulations and Fitted Models. Ingimar Hólm Guðmundsson, Skubch Hendrik, Fabien Gravot and Yoichiro Miyake Ambient Interactions: Improving believability by leveraging Rule-based AI Hendrik Skubch Logging Visualization in FINAL FANTASY XV Matthew W. Johnson, Fabien Gravot, Shintaro Minamino, Ingimar Gudmundsson, Hendrik Skubch, and Miyake Youichiro Guide to Effective Autogenerated Spatial Queries Eric Johnson A Character Decision-Making System for FINAL FANTASY XV by combining Behavior Trees and State Machines Youichiro Miyake, Youji Shirakami, Shimokawa Kazuya, Kousuke Namiki, Tomoki, Komatsu, Tatsuhiro Joudan, Prasertvithyakarn Prasert, Takanori Yokoyama
  13. 13. 初心者向け
  14. 14. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  15. 15. 第1章 人工知能とは
  16. 16. 自然知能と人工知能 人間 =自然知能 機械 =人工知能
  17. 17. ダートマス会議(1956年) • ジョン・マッカーシーのいたダートマス大学で、人 工知能をテーマとして初めて開催された会議。 • Artificial Intelligence という名称もはじめてここで 用いられた。 http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html
  18. 18. ダートマス会議(1956年) http://www-formal.stanford.edu/jmc/history/dartmouth/dartmouth.html
  19. 19. ダートマス会議(1956年) 我々は、1956年の夏の2ヶ月間、10人の人工知能研究者 がニューハンプシャー州ハノーバーのダートマス大学に集 まることを提案する。そこで、学習のあらゆる観点や知能 の他の機能を正確に説明することで機械がそれらをシミュ レートできるようにするための基本的研究を進める。機械 が言語を使うことができるようにする方法の探究、機械上 での抽象化と概念の形成、今は人間にしか解けない問題 を機械で解くこと、機械が自分自身を改善する方法などの 探究の試みがなされるだろう。我々は、注意深く選ばれた 科学者のグループがひと夏集まれば、それらの問題のうち いくつかで大きな進展が得られると考えている。 https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%BC%E3%83%88%E3%83% 9E%E3%82%B9%E4%BC%9A%E8%AD%B0 人工知能=人間の知能を機械に写す(移す)。
  20. 20. 機械(マシン) ソフトウェア 知能 身体 機能 知能 http://www.1999.co.jp/blog/1210192 http://ja.wallpapersma.com/wallpaper/_- %E3%83%AA%E3%82%B9%E3%80%81%E5%A3%81%E7%B4%99%E3%80%81%E3%83%AF%E3%82%A4%E3%83%89%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%BC%E3%83%B3%E3%81%AE%E3%80%81%E3% 83%9E%E3%83%83%E3%82%AF%E3%80%81%E3%83%9A%E3%83%83.html
  21. 21. 人間の精神 意識 前意識 無意識 外部からの 情報 生態学的人工知能 ※生態=環境・身体との 結びつきを考える 伝統的な人工知能 身体知
  22. 22. 人間の精神、機械の精神 意識 前意識 無意識 外部からの 情報 意識 前意識 無意識 外部からの 情報 言語・非言語境界面 知覚の境界面 人工知能は、人間の知能を機械に移したもの。
  23. 23. この300年の技術の動向 時間 規模 産業革命 情報革命 ネット革命 知能革命 機械化・自動化(オートメーション化) 電子情報化 オンライン化 知能化 第二次産業革命 電動化 1750 1860 1960 1990 Now… 現代は「知能化」の時代に 入りつつある。 第一次AIブーム 第二次AIブーム 第三次AIブーム
  24. 24. 二つの人工知能 IF (s_collison==true) register_all(s_star); assign_edge(); assign_vertex(); mix_all(); シンボルによる人工知能 (シンボリズム)) ニューラルネットによる人工知能 (コネクショニズム) IBM ワトソン Gooogle検索 など AlphaGo など http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html
  25. 25. 神経素子(ニューロン)とは? 入力 入力 入力 出力 入力 この中にはイオン(電解,Na+,K+) 溶液が入っていて、入力によって電圧が 高まると出力する仕組みになっています。 100mVぐらい ニューラルネットワーク内シグナル伝達スピード 100(m/sec) … 案外遅い http://www.brain.riken.go.jp/jp/aware/neurons.html
  26. 26. ニューラルネットを理解しよう② 数学的原理 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 モデル化 数学的モデル ニューロン 人工ニューロン 入出力関係のグラフ 入出力関係の関数(シグモイド関数) ニューラルネットワーク (ニューロンをつなげたもの) 道具はこれで全て。これで何ができるだろう?
  27. 27. 深階層ニューラルネットワーク http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html ニューラルネットワーク=信号(波形)処理だけで知能を作る。
  28. 28. 人工知能がブームになるとき 時間 規模 1960 1990 2000 第一次AIブーム 第二次AIブーム 第三次AIブーム 1970 1980 2010 シンボルによる人工知能は 堅実に進化する
  29. 29. 2 第一次AIブーム(1960年代) もし A ならば B もし B ならば C よって、 もし A ならば C シンボルによる人工知能 (記号主義) ニューラルネットによる人工知能 (コネクショニズム) 推論ベース ニューラルネット 誕生
  30. 30. 3 第二次AIブーム(1980年代) IF (A) then B IF (C) then D IF (E) then F IF (G) then H IF ( I ) then J シンボルによる人工知能 (記号主義) ニューラルネットによる人工知能 (コネクショニズム) ルールベース 新しい学習法= 逆伝搬法
  31. 31. 3 第二次AIブーム(1980年代) 0 0 0 【逆伝播法】 ここが1になるように、 結合の強さを、 さかのぼって変えて行く。
  32. 32. 4 第三次AIブーム(2010年代) シンボルによる人工知能 (記号主義) ニューラルネットによる人工知能 (コネクショニズム) データベース 新しい学習法= ディープラーニング データベース 検索エンジン キーワード 検索結果 検索 人 次の章で 説明 します
  33. 33. ある層の限定した領域を次の層に向けて足し合わせて 集約する=折り畳み(コンボリューション) その時にちょっとづつずらしながら折り畳みを行う。
  34. 34. インターネットによる 膨大なデータ 4 第三次AIブーム(2010年代) 時間 規模 1960 1990 2000 第一次AIブーム 第二次AIブーム 第三次AIブーム 1970 1980 2010 ルールベース 逆伝播法 データベース ディープ ラーニング 推論ベース ニューラル ネット誕生 小型・中型 コンピュータの普及 大型コンピュータ 専門家のみのブーム
  35. 35. AlphaGO 膨大な棋譜のデータ (人間では多過ぎて 読めない) この棋譜を そっくり打てる ように学習する 自己対戦して 棋譜を貯める この棋譜を そっくり打てる ように学習する AlphaGO
  36. 36. Deep Q-Learning Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller (DeepMind Technologies) Playing Atari with Deep Reinforcement Learning http://www.cs.toronto.edu/~vmnih/docs/dqn.pdf 画面を入力 操作はあらかじめ教える スコアによる強化学習
  37. 37. 二つの人工知能 IF (s_collison==true) register_all(s_star); assign_edge(); assign_vertex(); mix_all(); シンボルによる人工知能 (記号主義) ニューラルネットによる人工知能 (コネクショニズム) IBM ワトソン など AlphaGo など http://www.nature.com/nature/journal/v518/n7540/full/nature14236.html
  38. 38. 学習過程解析 Volodymyr Mnih, Koray Kavukcuoglu, David Silver, Alex Graves, Ioannis Antonoglou, Daan Wierstra, Martin Riedmiller (DeepMind Technologies) Playing Atari with Deep Reinforcement Learning http://www.cs.toronto.edu/~vmnih/docs/dqn.pdf
  39. 39. • Pπ ロールアウトポリシー(ロールアウトで討つ手を決める。 Pπ(a|s) sという状態でaを討つ確率) • Pσ Supervised Learning Network プロの討つ手からその 手を討つ確率を決める。Pσ(a|s)sという状態でaを討つ確 率。 • Pρ 強化学習ネットワーク。Pρ(学習済み)に初期化。 • Vθ(s’) 局面の状態 S’ を見たときに、勝敗の確率を予測 する関数。つまり、勝つか、負けるかを返します。 Mastering the game of Go with deep neural networks and tree search http://www.nature.com/nature/journal/v529/n7587/full/nature16961.html https://deepmind.com/research/alphago/
  40. 40. •人間から人工知能がどう見えるか? •人工知能が人間をどう見るか?
  41. 41. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  42. 42. 第2章 ゲームAIとは
  43. 43. レベル ナビゲーション AI メタAI キャラクター AI エージェントを動的に配置 レベル状況を監視 キャラクターに指示 ゲームの流れを作る 自律的な判断 仲間同士の協調 時にチームAIとなる メタAI, キャラクターAIの為に レベルの認識のためのデータを準備 オブジェクト表現を管理 ナビゲーション・データの管理 パス検索 / 位置解析 Support 敵キャラクタ- プレイヤー 頭脳として機能 情報獲得 コントロール
  44. 44. ゲーム外AI • 開発工程を助けるAI プロシージャル機能 • バランス調整するAI 遺伝的アルゴリズム、ニューラルネット • QAのためのAI QA-AI • メタAI バランス調整、ゲームメーキング • インターフェース上のAI 音声解析、言語解析、ゼスチャー認識 • データマイニングするAI ロギング&アナライジング • シミュレーション技術 パラメーター生成 • データビジュアリゼーション ゲームを可視化する
  45. 45. ゲームの中、ゲームの外 ゲーム周辺 (外=開発、現実) ゲーム (中=コンテンツ)
  46. 46. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI 開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術ゲーム 可視化 ユーザーの 生体信号
  47. 47. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  48. 48. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。 とりあえず初心者の方は、 この「3つのAI」があることを出発点としましょう。 ググってみよう。
  49. 49. 大型ゲームと小型ゲーム ナビゲーション AI メタAI キャラクターAI キャラクターAI メタAI ナビゲーション AI > > > > 小型ゲーム 大型ゲーム
  50. 50. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。 Unreal Engine 4 では Behavior Tree をサポート Unreal Engine では パス検索・戦術位置検索をサポート
  51. 51. • スクウェア・エニックスにおける UNREAL ENGINE 4 を用いた人 工知能技術の開発事例 • https://www.youtube.com/watch?v=BV2GTGbSjq8 • 【UE4】味方AIの作り方!AIとは何かを学びながら、ブループ リントで味方キャラクターを実装しよう • https://qiita.com/4_mio_11/items/9e8af2ce82ee2a7625b5 Unreal Engine 4 のAIの参考情報
  52. 52. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。 ゲームデザイナーの発想をエンジニアに伝える エンジニアの下準備 → 実装 エンジニアからのゲームデザイナーへ技術提案  ゲームデザイナがそれに合わせる エンジニアからの技術提案  地形デザイナやオブジェクトデータ班がそれに合わせる
  53. 53. UnityにおけるAI • Unity は Behevior Treeやパス検索のツールがある。 • 機械学習に力を入れている。ライブラリがあるが、まだ ベータ版。 https://unity3d.com/jp/machine-learning
  54. 54. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  55. 55. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  56. 56. 第3章 ゲームAI入門 AIの組み方
  57. 57. このAIはどう作るか? プレイヤー キャラクター 岩 地面 池 例として、次のようなキャラクターのAIをどう作るか考えてみよう。
  58. 58. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 (例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。 A B
  59. 59. このAIはどう組むか? これは、まず書く人の思 考がまずあり、その結果 を指示として書いている。 プレイヤー キャラクター 岩 地面 池 (例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。 A B
  60. 60. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 A B つまりAI自身は何も知ら ない、命令を受けるだけ の操り人形なだけ。これ は古典的な作り方。 、 (例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。 http://septieme-ciel.air-nifty.com/nikubanare/2007/08/post_3c38.html
  61. 61. このAIはどう組むか? こういったAIをゲーム産 業では「Scripted AI」と言 います。こういったAIは ゲームデザイナーがスク リプト言語で書く場合多 いため。 プレイヤー キャラクター 岩 地面 池 A B 、 (例) プレイヤーがAにいれば Bをうろうろする。 プレイヤーがBにいれば 近づいて攻撃する。 http://septieme-ciel.air-nifty.com/nikubanare/2007/08/post_3c38.html
  62. 62. スクリプト Scripted AI から自律型AIへの変化 ゲームデザイナーの頭の中 ゲームデザイナーの頭の中 知識 思考 Scripted AI 自律型 AI (Autonomous AI)
  63. 63. スクリプト Scripted AI から自律型AIへの変化 ゲームデザイナーの頭の中 ゲームデザイナーの頭の中 知識 思考 Scripted AI 自律型 AI (Autonomous AI) 操り人形(Scripted AI)から、キャラクターが自分で考えて行動する 自律型AI(Autonomous AI)になるためには、 ゲームデザイナーが頭の中で持っている知識と思考をAIに埋め込 む必要がある。
  64. 64. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 地形データ (Way Points) 、 ステップ1: AIにゲームステージの 地形を認識させたい =地形のデータを与える。 AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。
  65. 65. このAIはどう組むか? 地形データ (Way Points) AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着)
  66. 66. ナビゲーションAI このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 、 ステップ2: 地形データをもとに考え る思考を与える。 地形データを用いた 思考 地形データ (Way Points)
  67. 67. このAIはどう組むか? AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着) 地形データ (Way Points) 地形データを用いた 思考 最短経路を計算
  68. 68. このAIはどう組むか? AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着) 地形データ (Way Points) 地形データを用いた 思考 最短経路を計算
  69. 69. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) AIは地形データによって、自分とプレイヤーの位置関係を知る ことができる。(ネットワークグラフの問題に帰着) 地形データを用いた 思考 最短経路を計算
  70. 70. このAIはどう組むか? ネットワークグラフに可視判定の情報を埋め込む。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  71. 71. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) ここの点グループはお互いが見えている。 ここの点グループはお互いが見えている。 地形データを用いた 思考 ネットワークグラフに可視判定の情報を埋め込む。
  72. 72. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) ここの点グループはお互いが見えている。 ここの点グループはお互いが見えない。 地形データを用いた 思考 ネットワークグラフに可視判定の情報を埋め込む。
  73. 73. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 プレイヤーからキャラクターが見えている。
  74. 74. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 プレイヤーからキャラクターが見えていない。
  75. 75. このAIはどう組むか? プレイヤーからキャラクターが見えていない。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  76. 76. このAIはどう組むか? プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  77. 77. このAIはどう組むか? プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  78. 78. このAIはどう組むか? プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  79. 79. このAIはどう組むか? ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考 プレイヤーから見つけて貰うために プレイヤーからキャラクターが見えるように動く。
  80. 80. このAIはどう組むか? プレイヤーからキャラクターが見えない位置に動く。 ナビゲーションAI 地形データ (Way Points) 地形データを用いた 思考
  81. 81. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 地形データ (Way Points) 、 ステップ3: 最後に、いつプレイヤーの 攻撃を仕掛けるか、逃げ るか、を決定する思考を作 る。 地形デー タを用いた 思考 意思決定 思考
  82. 82. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 攻撃するか? 隠れるか? 牽制するか? を選ぶ思考。 = 意思決定思考 意思決定思考 地形データを用いた 思考
  83. 83. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 攻撃する 意思決定思考 地形データを用いた 思考
  84. 84. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 牽制する(=見える場所に行く) 意思決定思考 地形データを用いた 思考
  85. 85. ナビゲーションAI このAIはどう組むか? 地形データ (Way Points) 隠れる(=プレイヤーから見えない場所に行く) 意思決定思考 地形データを用いた 思考
  86. 86. このAIはどう組むか? プレイヤー キャラクター 岩 地面 池 地形データ (Way Points) 、 これで、キャラクター を知能化することが できた。 地形デー タを用いた 思考 意思決定 思考
  87. 87. AIを作る 人間 地形データ (Way Points) 地形デー タを用いた ロジック オブジェク トを用いた ロジック
  88. 88. AIを作る 人間 地形データ (Way Points) 地形デー タを用いた ロジック オブジェク トを用いた ロジック ここでキャラクターに知能を与えたプロセスを振り返ってみる。 ステップ1: 知識を与えた。 ステップ2: 知識の上で操作する思考を与えた。 ステップ3: 自分の意志を決定する思考を与えた。
  89. 89. 知識 思考 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 意思決定 の思考 知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考) AI自身に「知識」と「知識の上の思考」を与えることが 知能を作る基本。
  90. 90. 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック 知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考) 「知識」と「その上の思考」をどんどん増やして行くことでAIは成長する。
  91. 91. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック 知能 = 知識 × 思考
  92. 92. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック これでキャラクター自身が知能を持つことができた。 キャラクターの持つ知能をキャラクターAIと言う。
  93. 93. 知能 思考知識 AIを作る 人間 地形データ (Way Points) 地形デー タを用いた 思考 オブジェク トデータ 意思決定 の思考 自分の 身体データ 身体運動 の ロジック この例ではナビゲーションAIとキャラクターAIが連携 していた。
  94. 94. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  95. 95. 第4章 開発者の心持ち
  96. 96. ゲームAI分野の特徴 • ゲームデザインと密接に絡み合う • ユーザーのゲーム体験と深く関係する • 目に見えない
  97. 97. 制作ワークフロー -- ゲーム企画段階で決めておかなければならないこと -- ゲームAIに携わる人々(チーム) -- エンジニアが担当するべきこと、デザイナーが担当するべきこと
  98. 98. ゲームAI制作 エンジニア ゲームデザイナー (プランナー) コミュニケーション
  99. 99. ゲームAI制作 エンジニア ゲームデザイナー (プランナー) コミュニケーション 職業の境界
  100. 100. ゲームAI制作 エンジニア ゲームデザイナー (プランナー) コミュニケーション 職業の境界 こういうの作りたい こう作れますよ
  101. 101. ゲームAI制作 = お互い一歩踏み込む エンジニア ゲームデザイナー (プランナー) コミュニケーション 職業の境界 のりしろの領域
  102. 102. ゲームAI制作 = お互い一歩踏み込む エンジニア ゲームデザイナー (プランナー) コミュニケーション 職業の境界 のりしろの領域 エンジニアはゲームデザインに口出しをするべき。 (例)キャラクターはAI技術でこんなことができる、こういうふうにすると面白い。 ゲームデザイナーはAI技術に口出しをするべき。 (例) こういうふうなキャラクターの思考をさせたい、など。
  103. 103. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  104. 104. 第5章 ゲームの知能化
  105. 105. 産業革命 情報革命 ネット革命 知能革命 機械化・自動化(オートメーション化) 電子情報化 オンライン化 知能化 第二次産業革命 電動化 現代は「知能化」の時代に 入りつつある。
  106. 106. ゲーム全体の知能化 ゲーム・ソフトウェア 知能化された ゲーム・ソフトウェア ゲームも知能化の時代を迎えようとしている。 では「ゲームの知能化」とはどういうことだろうか? それを見ていこう。
  107. 107. ゲーム全体の知能化 ゲーム・ソフトウェア 知能化された ゲーム・ソフトウェア かつてゲームでは人工知能は独立した部分ではなく、 ゲームシステムの中に含まれていた。
  108. 108. AIの分化 ゲームシステム メタAI キャラクターAI ナビゲーションAI 3つのAIシステムは序々に分化して独立して行った。 では、今度はナビゲーションAIについてさらに詳しく見てみよう。
  109. 109. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  110. 110. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  111. 111. 第二部 FINAL FANTASY XV における人工知能 第一章 FINAL FANTASY XV とは? 第二章 ゲームの知能化 第三章 メタAI (補章 哲学と人工知能) 第四章 キャラクターAI 第一節 意思決定 第一項 ビヘイビアツリー入門 第二項 ステートマシン入門 第二節 AI Graph Editor 第五章 ナビゲーションAI 第一節 ナビゲーション 第二節 戦術位置解析 第六章 ゲーム内への応用事例 第一節 実例集 第二節 オーバーライド 第三節 群衆(アンビエント) AI 第七章 まとめ
  112. 112. メタAI
  113. 113. AIの分化 ゲームシステム メタAI キャラクターAI ナビゲーションAI ナビゲーションAIのイメージをつかめただろうか? では、最後のメタAIについて説明する。
  114. 114. メタAIの歴史 1980 1990 メタAIというのは、ゲームそのものに埋め込まれたAI。 1980 1990 2000 古典的メタAI 現代のメタAI キャラクターAI技術の発展
  115. 115. メタAIの歴史 1980 1990 2000 古典的メタAI 現代のメタAI キャラクターAI技術の発展 その歴史は古く、1980年代にまでさかのぼる。 その時代と現代のメタAIは、異なる点も多いので、 古典的メタAI、現代のメタAIと名づけて区別することにしよう。
  116. 116. (例)「ゼビウス」(ナムコ、1983) 敵出現テーブル巻き戻し 敵0 敵1 敵2 敵3 敵4 敵5 『あと面白い機能なんですけれど、 ゼビウスには非常に簡単なAIが組み込まれています。 「プレイヤーがどれくらいの腕か」というのを判断して、 出てくる敵が強くなるんです。 強いと思った相手には強い敵が出てきて、 弱いと思った相手には弱い敵が出てきます。 そういっ たプログラムが組み込まれています。 ゲームの難易度というのは「初心者には難しくて、上級者 には簡単だ」ということが、 ひとつの難易度で(調整を)やっていくと起きてしまうので、 その辺を何 とか改善したいな、ということでそういったことを始めてみたのですけれど、 お陰で割合にあまり上 手くない人でも比較的長くプレイできる、 うまい人でも最後のほうに行くまで結構ドラマチックに楽 しめる、 そういった感じになっています。』 - 遠藤雅伸(出演)、1987、「糸井重里の電視遊戯大展覧会」『遠藤雅伸ゼビウスセミナー』フジテレビ -
  117. 117. 現代のメタAI より積極的にゲームに干渉する。 メタAI 敵配位 敵スパウニング ストーリー レベル 動的生成 ユーザー
  118. 118. メタAI Left 4 Dead の事例 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html 今回は Left 4 Dead の事例を見てみる。
  119. 119. 適応型動的ペーシング [基本的発想] (1) ユーザーがリラックスしている時に、ユーザーの 緊張度が一定の敷居を超えるまで敵をぶつけ 続ける。 (2) ユーザーの緊張度が一定の緊張度を超えると 敵を引き上げる。 (3) リラックスすると敵を出現し始める((1)へ)。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  120. 120. メタAI(=AI Director)によるユーザーのリラックス度に応じた敵出現度 ユーザーの緊張度 実際の敵出現数 計算によって 求められた 理想的な敵出現数 Build Up …プレイヤーの緊張度が目標値を超えるまで 敵を出現させ続ける。 Sustain Peak … 緊張度のピークを3-5秒維持するために、 敵の数を維持する。 Peak Fade … 敵の数を最小限へ減少していく。 Relax … プレイヤーたちが安全な領域へ行くまで、30-45秒間、 敵の出現を最小限に維持する。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html より具体的なアルゴリズム
  121. 121. メタ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
  122. 122. メタ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) と 言う。
  123. 123. メタ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
  124. 124. メタ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
  125. 125. 安全な領域までの道のり(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
  126. 126. AAS に対して行うこと。 メタAIはプレイヤー群の移動に伴い、 その周囲(AAS)に敵の群れを 生成・消滅させたりする。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  127. 127. プレイヤーからの可視領域 可視領域(プレイヤーから見えている 部屋)では、敵のスパウニング(発生) はできない。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  128. 128. 敵出現領域 背後 前方 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html 前方と背後のプレイヤー群から見えてない部屋に、 モンスターを発生させる。
  129. 129. モンスター・アイテム出現頻度 敵の種類、アイテムの種類ごとに出現頻度が違うが、頻度に応じて発生させる。 高頻度 低頻度 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html Wanderers (高頻度) Mobs(中頻度) Special Infected (中頻度) Bosses (低頻度) Weapon Caches (低頻度) Scavenge Items (中頻度)
  130. 130. ボス出現アルゴリズム (1) N体を予想される逃走経路上に配置 (2) 3つの出現イベントパターン (何もいない、を含む) (例) Tank, Witch, 何もいない (3) 同じパターンのくり返しは禁止 (例) Witch, 何もいない、Witch はOK。 Witch, Witch はだめ。 何もいない Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html Tank Witch Witch Tank Witch Tank
  131. 131. 具体的なアルゴリズム (1) 各エリアに、出現数 N を決定する (2) 出現数Nは予想される逃走経路の長さと 要求される密度によって計算される。 (3) あるエリアがAAS の中に入るとクリー チャーがN体生成される。 (4) そのエリアがAAS の外に出ると生成が中 止され、クリーチャーは消滅される。 (5) Nはそのエリアがプレイヤーから見えてい る場合、或いは、プレイヤーがリラックス モードの場合には、強制的に0になる。 Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference at Stanford. http://www.valvesoftware.com/publications.html
  132. 132. まとめ メタAIは、ゲームの流れを動的に作るAIで、キャラクターAI、イベントなどに は命令だけを出す。これは明確に、メタAIと他のモジュールが独立した関 係にあるから可能なこと。
  133. 133. まとめ メタAIを入れ替えるだけで、ゲームコンテンツが入れ替えることができる。 メタAIという軽い部分だけを配信することで、コンテンツを入れ替えること が可能になる。
  134. 134. 第七章(続き) メタAIの発展
  135. 135. Procedural Generation in WarFrame • Warframe ではダンジョンが自動生成される。 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  136. 136. Black Combination in WarFrame • ブロックを組み合わる • 完全に零からの生成 ではない。 このような生成のことを Semi-procedural と言う。 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  137. 137. WarFrame における自動生成マップの 自動解析による自動骨格抽出 • 自動生成するだけでなく、自動生成したダンジョンを、自動解 析します。ここでは、トポロジー(形状)検出を行います。
  138. 138. WarFrame における自動生成マップの 自動解析によるナビゲーションデータ作成 抽出した骨格に沿って 自動的にナビゲーション・データを作成します。 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  139. 139. スタートポイント、出口、目的地の 自動生成 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  140. 140. ヒートマップ(影響マップ)を用いて ゲーム中にプレイヤーの周囲を自動解析 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed ヒートマップ(影響マップ)とは、対象(ここではプレイヤー)を中心に、位置に温度(影響度)を 与える方法です。距離に応じて減衰します。また時間が経つと、周囲に熱が拡散します。
  141. 141. Tactical Map の例 (影響マップ) (例)敵と自分の勢力をリアルタイムに計算する。 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
  142. 142. ヒートマップ(影響マップ)を用いて ゲーム中にプレイヤーの周囲を自動解析 「ヒートが増加する=プレイヤーが近づく点」 「ヒートが減少する=プレイヤーが遠ざかる点」 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  143. 143. アクティブ・エリアセット(Active Are Set) Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed アクティブ・エリアセットは、プレイヤーの周囲の領域で、 リアルタイムにメタAIがゲームを調整する領域
  144. 144. メタAIがアクティブ・エリアセット内で ゲームを調整する 「ヒートが増加する=プレイヤーが近づく点」なので、モンスターを生成する。 「ヒートが減少する=プレイヤーが遠ざかる点」なので、モンスターを停止する。 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  145. 145. メタAI (AI Director,)による 動的ペース調整 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  146. 146. メタAI(自動適応ペーシング) メタAI (AI Director,)による 動的ペース調整 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed
  147. 147. メタAIによる出会うモンスターの数の大域調整 Daniel Brewer, AI Postmortems: Assassin's Creed III, XCOM: Enemy Unknown, and Warframe (GDC2015) http://www.gdcvault.com/play/1018223/AI-Postmortems-Assassin-s-Creed プレイヤーのスタート地点から出口までの道のりで、 コンスタントにモンスターと出会うようにする。
  148. 148. 影響マップ(ヒートマップ) • メタAIはグローバルな影響を与える =グローバルなマップ解析が必要 =メタAIは影響マップをよく使う
  149. 149. ヒートマップ
  150. 150. ヒートマップ
  151. 151. http://www.xn--eckzb3bzhw32znfcp1zduw.com/data/fire.php メタAI
  152. 152. http://www.xn--eckzb3bzhw32znfcp1zduw.com/data/fire.php メタAI
  153. 153. http://www.xn--eckzb3bzhw32znfcp1zduw.com/data/fire.php フロントライン (勢力均衡線)
  154. 154. メタAIとキャラクターAIの違い
  155. 155. キャラ AI =局所 短時間 メタAI || 大局 長時間 時間 空間 広い時間と空間を考える → ユーザー体験を考える メタAI メタAIとキャラAIの違い 扱う空間と時間の違い
  156. 156. メタAIの認識=大局空間的・長時間的 時間 時間 長時間 大局
  157. 157. メタAIの認識=大局空間的・長時間的 時間 時間 長時間 大局 空間的表現 空間的表現 空間的表現
  158. 158. メタAIの認識=大局空間的・長時間的 時間 時間 長時間 大局 時 間 的 表 現 時 間 的 表 現 時 間 的 表 現
  159. 159. 空間的表現 • ヒートマップ • 戦術位置解析 • ウェイポイント • ナビメッシュ • 世界表現
  160. 160. 基地 基地 湖 森 塔 基地 基地 湖 森 塔 危険 危険森のそば 水のそば 普通 ナビゲーション メッシュ タグ付けされた ナビゲーション メッシュ マップ
  161. 161. 戦術位置解析 ゲーム中(ランタイム)にグリッドか円形にポイントを生成 条件を設定して要らないポイントをふるい落とす 条件を設定して要らないポイントをふるい落とす 残ったポイントを評価する 一点だけが残る Ⓒ2016 SQUARE ENIX CO., LTD. All Rights Reserved.
  162. 162. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  163. 163. 第6章 ナビゲーションAI
  164. 164. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  165. 165. ナビゲーション・データ フリー素材屋Hoshino http://www.s-hoshino.com/
  166. 166. ナビゲーション・データ ウェイポイント・グラフ (点を要素とするネットワークグラフ) ナビゲーションメッシュ・ グラフ (三角形(凸角形)を要素とする ネットワークグラフ) 歩くこと ができる。 フリー素材屋Hoshino http://www.s-hoshino.com/
  167. 167. パス検索とは 現在の地点から指定したポイントへの経路を、 リアルタイムで計算して導く技術。 RTS - Pathfinding A* https://www.youtube.com/watch?v=95aHGzzNCY8
  168. 168. ネットワーク上のグラフ検索法 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にたどり着いたら終了。 各ノードの評価距離=出発点からの経路 ダイクストラ法
  169. 169. ネットワーク上のグラフ検索法 ダイクストラ法 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にたどり着いたら終了。 各ノードの評価距離=出発点からの経路
  170. 170. ネットワーク上のグラフ検索法 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
  171. 171. ネットワーク上のグラフ検索法 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
  172. 172. Counter Strike: Path Following (デモ) The Official Counter-Strike Bot http://aigamedev.com/insider/presentation/official-counter-strike-bot/
  173. 173. 戦術位置解析 ゲーム中(ランタイム)にグリッドか円形にポイントを生 成 条件を設定して要らないポイントをふるい落とす 条件を設定して要らないポイントをふるい落とす 残ったポイントを評価する 一点だけが残る
  174. 174. 敵 味方 今考えている キャラクター 高台 高台 海 穴
  175. 175. ポイントを動的に配置して評価する
  176. 176. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  177. 177. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  178. 178. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  179. 179. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  180. 180. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  181. 181. 戦略位置検出システム Matthew Jack, Mika Vehkala Spaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013) http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
  182. 182. EQS (E)EQS (Environment Query System) in UE4
  183. 183. EQS (Environment Query System) in UE4
  184. 184. EQS (Environment Query System) in UE4
  185. 185. 目次 参考文献 第1章 人工知能とは 第2章 ゲームAIとは 第3章 ゲームAI入門 第4章 開発者の心持ち 第5章 ゲームの知能化 第6章 ナビゲーションAI 第7章 キャラクターAI 第8章 プロシージャル 第9章 キャラクターAI(学習) 第10章 デバッグのAI 第11章 協調するAI 第12章 調整の仕方
  186. 186. 第7章 キャラクターAI
  187. 187. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  188. 188. FC SFC SS, PS PS2,GC,Xbox Xbox360, PS3, Wii DC (次世代)Hardware 時間軸20051999 ゲームの進化と人工知能 複雑な世界の 複雑なAI ゲームも世界も、AIの身体と内面もますます複雑になる。 単純な世界の シンプルなAI (スペースインベーダー、タイトー、1978年) (アサシンクリード、ゲームロフト、2007年)
  189. 189. (例) スペースインベーダー(1978) プレイヤーの動きに関係なく、決められた動きをする (スペースインベーダー、タイトー、1978年)
  190. 190. (例)プリンス・オブ・ペルシャ 「プリンス・オブ・ペルシャ」など、 スプライトアニメーションを用意する必要がある場合、 必然的にこういった制御となる。 (プリンスオブペルシャ、1989年)
  191. 191. 3Dゲームの中のAI Halo (HALO、バンジー、2001年) デバッグ画面 The Illusion of Intelligence - Bungie.net Downloads http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
  192. 192. 環境 人工知能とは? 身体 人工知能=人工的な存在(=身体)を環境の中で活動させる 入力(センサー) 行動(アウトプット) 知能
  193. 193. 知能の世界 環境世界 認識の 形成 記憶 意思の 決定 身体 制御 エフェクター・ 身体 運動の 構成 センサー・ 身体 意思決定 モジュール 意思決定 モジュール 意思決定 モジュール 記憶体 情報処理過程 運動創出過程 身体部分 情報 統合 運動 統合
  194. 194. サブサンプション・アーキテクチャ(ロドニー・ブルックス) INPUT OUTPUT 時間 情報抽象度 反射的に行動 少し場合ごとに対応 抽象的に思考 理論的に考える 言語化のプロセス = 自意識の構築化 Subsumpution Architecture 運動の実現のプロセス = 身体運動の生成
  195. 195. 意思決定モデル ステート(状態)ベースAI ゴール(目標)ベースAI ルール(規則)ベースAI ビヘイビア(振る舞い)ベースAI ユーティリティ(効用)ベース AI Rule-based AI State-based AI Behavior-based AI Goal-based AI Utility-based AI 「○○-based AI」とは、○○をAIを構築する基本単位(アトミック)として採用したAIということ。 タスク(仕事)ベース AI Task-based AI リアクティブ 非リアクティブ 意思決定 シミュレーションベース AI Simulation-based AI 実際の静物の意思決定というものは非常に高度で複雑なプロセス。 いくつかの簡易モデルが存在する。
  196. 196. ルールベース意思決定 Rule-based decision making ステート(状態)ベースAI ゴール(目標)ベース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
  197. 197. IF ( 前置宣言文 ) then (後置宣言文) ルールベース意思決定 Rule-based Decision Making ルール ここでは、この形式の制御文をルールと言う。 もちろん、IF ( … IF (.... IF… ) ) ) のような入れ子構造の制御文も ルールベースと呼ぶが、 ルールベースと言えば、基本的には、ルールを1つの単位として、 意思決定を行う、という意味となる。
  198. 198. 推論エンジン 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 が変化して行く様子
  199. 199. ルール制御 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 (動作命令文)
  200. 200. (例) ルール制御 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 (動作命令文)
  201. 201. 応用可能性例 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など
  202. 202. The Sims 3 における応用 街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。 たくさんのAIを「人間らしく」制御しなければならない。 特徴付けにプロダクションルールを採用。 Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  203. 203. Sims3 における応用 あらゆる相互作用を考慮 注目するエージェントの行動範囲だけを考慮 Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
  204. 204. データドリブンなプロダクション・ルール プロダクションルール Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The Sims3 における応用
  205. 205. プロダクションルール プロダクションルールは種類によってランク付けされていて、 最もランクの高いルールが発火する。 ルールが発火すると他のSimは、その特性を理解する。 データドリブンなプロダクション・ルール Sims3 における応用
  206. 206. ステートベース意思決定 State-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
  207. 207. ステートベース ステート 自分の行動を記述する。 ステート ステート 遷移条件 世界と自己の変化を記述する。
  208. 208. ステート・マシン ステート ステート ステート ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。
  209. 209. プレイヤーを待ち構えるAI 2体の敵キャラクターが哨戒していて、一人のプレイヤーが部屋に入って来る。
  210. 210. ステート・マシン ステートマシン(有限状態マシン) ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。 待機 攻撃 パトロール
  211. 211. 警戒 追跡 追いかける 攻撃する 威嚇攻撃 味方に指示 出口をかためる 味方を呼ぶ 味方がいない かつ 戦闘範囲外 味方と合流 味方と合流 味方がいる 見失う 見える 見失う 見つける 巡回する 10秒経つ 物音を 聴く 応答がきた 階層型ステート・マシン
  212. 212. (例) Quake HFSM 状態遷移図を用いる http://ai-depot.com/FiniteStateMachines/FSM-Practical.html
  213. 213. ゴールベース意思決定 Goal-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
  214. 214. ゴールベースAI (Goal-Based AI) ゴール(目標)を単位として構築する方法 ゴール・ファースト=まずゴールを決める。 しかるのちにゴールを達成するための行動をデザインする。 ゴール ゴールを達成するために 必要なことを考える思考 行動
  215. 215. ゴールベース ゴール 世界と自分の状況を記述する。
  216. 216. 2つのゴールベース ゴールベース 連鎖プランニング 階層型ゴール プランニング
  217. 217. ゴールベース ゴール ゴール ゴール ゴール ゴールベースの考え方は、世界の変化の中で、自分の行動を考えて行くこと。 つまり、時間変化に沿ったゴールのシークエンスを考えることで、 世界の状況を変えて行く長期戦略である。
  218. 218. 一つのゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal
  219. 219. ゴールベース意思決定 連鎖プランニング 階層型プラン二ング Goal-based decision making
  220. 220. F.E.A.R.におけるゴール指向プランニング  Genre:Horror FPS  Developer: Monolith Production  Publisher : SIERRA  Hardware: Windows  Year: 2004 Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005) http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt
  221. 221. F.E.A.R のCOMの感覚(センサー) レイキャスト(視線チェック)、パス検索など重たい処理からなる関数 SensorNodeCombat 隠れる、或いは、隠れながら攻撃できる場所を探す。 SensorSeeEnemy 敵が見えるかチェック PassTarget 戦術ポイントまでのパスを見つけ、かつそのパスが敵から安全であることをチェックする。 CoverNode 隠れることができるノード 世界 センサー SensorNodeCombat SensorSeeEnemy PassTarget CoverNode 知識表現 事実形式 センサー = 五感からの情報、及び、五感から得られるはずの情報を模擬する機能 Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005) http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt
  222. 222. 統一事実記述形式 統一事実記述形式 場所 方向 感覚 オブジェクト 情報取得時刻 未公開 場所 (位置、信頼度) 方向(方向、信頼度) 感覚のレベル(感覚の種類、信頼度) オブジェクト(ハンドル、信頼度) 情報取得時刻 キャラクター 事件 欲求任務 パスオブジェクト 全て以下の形式(フォーマット)で記述する。 ノード 全部で本当は16個の属性がある Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005) http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt
  223. 223. 自分の記憶領域に認識した事実を蓄積する Worlking Memory Agent Architecture Considerations for Real-Time Planning in Games (AIIDE 2005) http://web.media.mit.edu/~jorkin/AIIDE05_Orkin_Planning.ppt
  224. 224. プランニングのための知識 シンボル エージェントの認識する世界をもっとシンプルに表現したい 各エージェントについて(Agent-centric) 上記のシンボルは、対象とするエージェントについての情報。 kSymbol_AtNode どのノードにいるか kSymbol_TargetIs AimingAtMe どのノードにいるか kSymbol_ WeaponArmed 武装しているか kSymbol_ WeaponLoaded 装填されているか kSymbol_Target IsSuppressed 威嚇されているか kSymbol_ UsingObject オブジェクトを 使っているか? kSymbol_ TargetIsDead 死んでいるか kSymbol_ RidingVehicle 乗り物に乗っているか kSymbol_AtNodeType どんなタイプのノードにいるか 20個のシンボルで世界を集約して表現する Jeff Orkin, “3 States and a Plan: The AI of F.E.A.R.", http://web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.zip
  225. 225. シンボル kTargetAtme = ture この兵士Bは自分を狙っているkTargetIsDead = ture この兵士Aは死んだ kWeaponIsLoaded = false 私Cの武器は装填済みでない Jeff Orkin, “3 States and a Plan: The AI of F.E.A.R.", http://web.media.mit.edu/~jorkin/gdc2006_orkin_jeff_fear.zip
  226. 226. F.E.A.R.のプランニング② シンボルによる連鎖プランニング ターゲットAが 死んでいる ターゲットAが 死んでいる 攻撃 武器が装填 されている 武器が装填 されている 装填する 武器を 持っている 武器を 持っている 武器を拾う 条件なし プラナー プランニング
  227. 227. ゴールベース意思決定 連鎖プランニング 階層型ゴールプラン二ング Goal-based decision making
  228. 228. 一つのゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal
  229. 229. ゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal Goal Goal Goal Goal Goal
  230. 230. クロムハウンズにおけるプランニング 階層型ゴール指向型プランニング 戦略、戦術から、局所的戦闘までの幅広い戦いが できる必要がある
  231. 231. 階層型ゴール指向型プランニングとは?
  232. 232. 一つのゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal
  233. 233. ゴールはより小さなゴールから組み立てられる Goal Goal Goal Goal Goal Goal Goal Goal Goal
  234. 234. 映画を見たい 映画館に行く 映画を見る 映画館は新宿だ 映画館まで歩く 新宿駅に行く 晴れなら 新宿駅へ歩く 雨なら 電車で新宿へ 駅まで歩く 電車に乗る ゴール指向型プランニングの考え方
  235. 235. クロムハウンズにおける ゴール指向型プランニング パスに沿って 移動する 通信塔を 見つける パスを見つける通信塔 へ行く 通信塔 を占拠 通信塔を 占領する 撃つ 歩く 止まる 通信塔の 周囲に 10秒間いる 戦術、振る舞い 操作 ハウンズ ロボット 身体
  236. 236. クロムハウンズにおける リアルタイムゴール指向型プランニング 通信塔を 占領する Seek Shot Walk Stop 戦略 戦術、振る舞い 操作 ハウンズ 敵が 来 た! パスに沿って 移動する 通信塔を 見つける パスを見つける 通信塔 へ行く 通信塔 を占拠 通信塔の 周囲に 10秒間いる 敵と戦う 撃つ 歩く 止まる ロボット 身体
  237. 237. クロムハウンズにおける リアルタイムゴール指向型プランニング パスに沿って 移動する 通信塔を 見つける パスを見つける通信塔 へ行く 通信塔 を占拠 通信塔を 占領する 撃つ 歩く 止まる 通信塔の 周囲に 10秒間いる 敵を倒し た! Clear! 戦術、振る舞い 操作 ハウンズ ロボット 身体
  238. 238. ゴール指向型AIの開発工程 歩く 撃つ 止まる 2点間を移動 前進しながら戦う 攻撃するパスをたどる 敵を叩く 味方を 守る 操作層 振る舞い層 戦術層 戦略層 通信塔 占拠 その場で静止 周囲を監視 しつつ待機 ゲーム テスト (80回) 問題点を パターンと して抽出 (パターンランゲージによる漸近的成長) 仕様UMLProgram
  239. 239. ゴール指向型プログラム構造 (入れ子構造) Class Goal クリア条件 + Activate() Process() Terminate() Class Goal クリア条件 + Activate() Process() Terminate() Class Goal クリア条件 + Activate() Process() Terminate() Class Goal クリア条件 + Activate() Process() Terminate() Activate … 初期セッティング Process … アクティブな間の行動Terminate … 終 了処理 (関数の内容を全てスクリプトで記述) プログラマーのための実装工程 インスタンス インスタンス
  240. 240. Conquer_Combas_TeamAI.avi ゴール指向プランニングによって 通信塔を占拠するデモ 左上は階層型プランニングのゴール表示 http://www.nicovideo.jp/watch/1306134962
  241. 241. クロムハウンズ 最終的なゴール総合図 歩く 撃つ 止まる 2点間を 移動 歩く、一度 止まる、歩く 攻撃 する パスを たどる 敵を叩く 味方を 守る 操作層 振る舞い層 戦術層 戦略層 通信塔 占拠 静止 する ある地点へ 行く 本拠地 防衛 敵本拠地 破壊 味方を 助ける 巡回 する 敵基地 偵察 近付く 合流 する 巡回 する 逃げる 後退 する 前進 する 敵側面 へ移動
  242. 242. 個々のAIを、自律した知性(エージェント)として作成し、 互いに相互作用させることで、全体として多様な機能を獲得する マルチエージェント・システムの作り方 マルチエージェント Step1 Step2 Step3 個としてのAIを自律した知性として作る。 AI間の協調関係を定義する。 全体を調整する。 全体としての知性
  243. 243. 個としてのAIを自律した知性として作る Step1
  244. 244. 「常に複数の欲求を持ち、知能がその内から最適な行動を選択する」 クロムハウンズAI コンセプト 複数のゴール ゴールを選択する意思決定機構 人間 AI 人間の心理的な葛藤を人工知能に取り込む
  245. 245. クロムハウンズ ゴール総合図 歩く 撃つ 止まる 2点間を 移動 歩く、一度 止まる、歩く 攻撃 する パスを たどる 敵を叩く 味方を 守る 操作層 振る舞い層 戦術層 戦略層 通信塔 占拠 静止 する ある地点へ 行く 本拠地 防衛 敵本拠地 破壊 味方を 助ける 巡回 する 敵基地 偵察 近付く 合流 する 巡回 する 逃げる 後退 する 前進 する 敵側面 へ移動 状況に応じて、戦略を選ぶ知能が必要 複数のゴール ゴールを選択する意思決定機構 選択
  246. 246. COMの自律的な意思決定過程 本拠地 占拠 敵を叩け 通信塔 占拠 本拠地 防衛 味方機を 助けよ 周囲の状況を反映して意思決定する 評価関数法 意志決定機 構 選択戦略 プランニング どれぐらい状況に適しているか、点数をつけて比較する方法
  247. 247. クロムハウンズ 状況により変動する評価値のイメージ 敵を叩く 味方を 守る 戦略層 通信塔 占拠 本拠地 防衛 敵本拠地 破壊 味方を 助ける 巡回 する 敵基地 偵察 状況に応じて、変動する評価地。 その状況に応じて適したものほど高い点数がつくようにする。 複数のゴール ゴールを選択する意思決定機構
  248. 248. エージェントが意思決定をする仕組み その戦略を達成することで得られる 見返り(S; 重要度) と、 それを達成するための リスク(R; 危険度) の兼ね合い 実行評価値(E) = S * ( 1 –R ) S(73) R(57) S(11) R(8) S(89) R(64) S(24) R(4) S(33) R(80) S(33) R(43) S(33) R(2) 本拠地 破壊 通信塔 占拠 1 E = 24 2 E =12 3 E =6 C E = 20 D E = 32 F E = 3 J E = 21
  249. 249. 通信塔の「重要度 S」 3つのファクターから決まる。 (1) 味方司令部との関係 (通信塔- 敵司令部 ) (2) 敵司令部との関係 (通信塔- 味方司令部) (3) 通信塔同士の関係 (通信塔- Combus ) S = W_1 * 味方司令部との距離による関数 + W_2 * 敵司令部との距離による関数 + W_3 * 隣の通信塔の占拠状態からなる関数 W … 重み S = W_EBase * ( Σ F( L_EBase, L_MapScale ) * Est_Base_NonConstFactor + W_SBase * F( L_SBase, L_MapScale ) + W_InComNet * Est_InComNet W_EBase + W_SBase + W_InComNet = 1 Est_InComNet = W_static * Est_Static_Combus + W_dynamic * Est_Dynamic_Combus Est_Static_Combus = (Connectable_Number - Connected_Number) /Max_Connectable_Number Est_Dynamic_Combus = Connected_Number/Max_Connectable_Number W_static + W_dynamic = 1 …
  250. 250. 通信塔の「重要度 S」 3つのファクターから決まる。 (1) 味方司令部との関係 (通信塔- 敵司令部 ) (2) 敵司令部との関係 (通信塔- 味方司令部) (3) 通信塔同士の関係 (通信塔- Combus ) S = W_1 * 味方司令部との距離による関数 + W_2 * 敵司令部との距離による関数 + W_3 * 隣の通信塔の占拠状態からなる関数 W … 重み
  251. 251. 通信塔の「危険度 R」 3つのファクターによる。 (1) 敵ハウンズが通信塔からどれぐらいの距離にいるか。 (2) ザコ敵がどれぐらいの距離にいるか。 (3) 味方ハウンズが通信塔からどれぐらいの距離にいる R = W_1 * 敵ハウンズの通信塔との距離による関数 + W_2 * ザコ敵と通信塔の距離による関数 + W_3 * 味方ハウンズ通信塔との距離の関数 W … 重み パラメーター と関数の形を調整する 意志決定の形やハウンズの個性が決定 テストをくり返しながら 計 100 近くのパラメーターを調整
  252. 252. 意思決定機構のデモ COMが自分で判断をする様子 をご覧ください。
  253. 253. Evaluation_value_2.avi http://www.nicovideo.jp/watch/1306134580
  254. 254. 自律型エージェントの実現 リアルタイム パス検索 × リアルタイム ゴール指向型プランニング × 意思決定機構 第1回セミナー 第2回セミナー 第3回セミナー 自律型エージェント 完成 個としてのAIの完成 チームとしてのAIへ
  255. 255. AI間の協調関係を定義する Step2 Step1 Step2 Step3 個としてのAIを自律した知性として作る。 AI間の協調関係を定義する。 全体を調整する。
  256. 256. 集団における知性 クロムハウンズ メンバーの維持 相手チームに対する 状況的優位を築く ①護衛 ②救援 ③戦闘判断 ④集中砲火 勝利のための 統制された行動 ⑤チームAI 最初はチームAIを入れない。 チーム対戦をくり返しながら、必要なAI技術を導入し調整する。 ゴールによる協調 アルゴリズムによる協調 チームAIによる協調
  257. 257. クロムハウンズにおけるマルチエージェント技術 ① 護衛 一体のエージェントが他のエージェントと移動を共にする。 「護衛する」というゴールを用意する 護衛される対象は戦力が少ないか、 移動速度が遅いハウンドが選ばれやすい
  258. 258. Protect_CB_TeamAI.avi http://www.nicovideo.jp/watch/1306134334
  259. 259. クロムハウンズにおけるマルチエージェント技術 ② 救援 一体のエージェントが窮地にある他のエージェントの戦場に 駆けつける。 「救援する」というゴールを用意する 護衛される対象は体力の残りが少ない ハウンズ 囮に使われる可能性があるので、 あまりに遠かったり、あまりに 体力が少ない場合は、救援に行かない P P P P
  260. 260. 集団における知性 クロムハウンズ メンバーの維持 相手チームに対する 状況的優位を築く ①護衛 ②救援 ③戦闘判断 ④集中砲火 勝利のための 統制された行動 ⑤チームAI ゴールによる協調 アルゴリズムによる協調 新しいAIによる協調
  261. 261. プレイヤーたちの戦力 > 1.4 x エージェントたちの戦力 P プレイヤーたちの戦力 < 1.4 x エージェントたちの戦力 本拠地へ 退却 戦闘! クロムハウンズにおけるマルチエージェント技術 ③ 戦闘判断 エージェントが周りの敵と味方の戦力を計算して 戦うべきか、逃げるべきかを判断する。 P P P P P P P P 戦力比が大きい無駄な戦闘を回避し、常に相手を上回る 戦力を増築してプレイヤーに対抗する デバッグの過程で追加
  262. 262. クロムハウンズにおけるマルチエージェント技術 ④ 集中砲火 複数のエージェントが複数の敵ターゲットに対し ターゲットを統一する その場で戦力が最も低い敵を集中的に攻撃し ダメージの分散を防ぐ P P P 戦闘! その場で戦力が最も低い敵を集中的に攻撃する デバッグの過程で追加
  263. 263. 集団における知性 クロムハウンズ メンバーの維持 相手チームに対する 状況的優位を築く ①護衛 ②救援 ③戦闘判断 ④集中砲火 勝利のための 統制された行動 ⑤チームAI ゴールによる協調 アルゴリズムによる協調 新しいAIによる協調
  264. 264. 「組織としての利益の行動と、個人としての利益の行動は必ずしも一致しない」 組織としての合理性 個人としての合理性 組織と個人 チームAI 人間の組織の葛藤をチームAIに取り込む 個のAI クロムハウンズにおけるマルチエージェント技術 ⑤チームAI を作る クロムハウンズ チームAI コンセプト
  265. 265. 例えば、チームとして こういうことをさせたい 一機だけの戦闘で戦局が 変わることはない。 敵をやっつける時は、なるべく 多 vs 1 になるようにする 実際の戦闘がどうなっているかパターンを集めてみよう 戦力を集中させたい
  266. 266. 例えば、チームとして こういうことをさせたい 勝負が決まり始める後半では、 勝つための方針がばらばらに ならないようにしたい ゲーム後半では、チームAIが 方針を決定する 実際の戦闘がどうなっているかパターンを集めてみよう ゲーム後半では、方針を統一 ゲームメーキング
  267. 267. 例えば、チームとして こういうことをさせたい 敵基地を落とすのは、 火力が必要 1体で行っても、火力が足りない上に 敵が防衛している 本拠地は多数の機体で攻めたい 実際の戦闘がどうなっているかパターンを集めてみよう 勝負をかけるタイミングを あわせたい ゲームメーキング
  268. 268. チームAIの構造 チームAI 意志決定機構 チームとしての戦略 (=勝利条件と同じ) 4つの戦略を持ち、ゲーム全体の状況を反映する 評価関数によって、一つの戦略を決定する。 (評価関数による意思決定 = 個体の意志決定と同じ方法) 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊
  269. 269. チームAIの構造 チームAI 意志決定機構 4つの戦略を持ち、評価関数によって、一つの戦略を決定する。 (評価関数による意思決定 = 個体の意志決定と同じ方法) 本拠地 破壊 本拠地 破壊 本拠地 破壊 一つのチーム戦略は、 各機体への命令からなる 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊
  270. 270. チームAIの構造 = ゴール指向型の拡張 チームAI 意志決定機構 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 本拠地 破壊 本拠地 破壊敵本拠 地破壊 本拠地 破壊 一つのチーム戦略は、 各機体への命令からなるCOM 1 COM 2 COM 3 本拠地 破壊 本拠地 破壊 本拠地 破壊 プランニング COMのゴール指向プランニングの上に、チームAIを積み上げる
  271. 271. 観察すると、チームAIの判断がある時は正しく、 個体AIの方の判断がある時は正しい 何故か? 個体はハウンズは、自分の廻りの局所的な情報を元に判断 チームAIは、戦局全体の情報を元に判断 両方の判断を比較して正しい方を選択するべきだ
  272. 272. チームAI の意思決定と COMの判断 を比較して、最終的に決定する チームAI 意志決定機構 COM 2 本拠地 破壊 通信塔 占拠 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊 組織としての合理性 個としての合理性
  273. 273. チームAI の意思決定と COMの判断 を比較して、最終的に決定する チームAI 意志決定機構 COM 2 本拠地 破壊 通信塔 占拠 実行評価値 :76 実行評価値 :88 × チームAIとCOMの ゴールの評価値を 比較して高い方を選択する。 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊
  274. 274. チームAI の意思決定と COMの判断 を比較して、最終的に決定する チームAI 意志決定機構 COM 2 本拠地 破壊 通信塔 占拠 実行評価値 : 64 実行評価値 : 53 × COMが二つの評価値を 比較して高い方を選択する。 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊
  275. 275. チームAI の意思決定と COMの判断 を比較して、最終的に決定する チームAI 意志決定機構 COM 2 本拠地 破壊 通信塔 占拠 76 88 × COMが二つの評価値を 比較して高い方を選択する。 敵殲滅 本拠地 防衛 敵本拠 地破壊 通信塔 占拠数 で勝つ 敵本拠 地破壊
  276. 276. チームAIの介入の仕方 1.0 0.0 前半 (5分、或いは、 戦場で一機が 撃墜されるま で) 中盤 (前半終了から5 分) 後半 (中盤終了から5 分) comp_idv comp_team 前半はチームAIより個としてのAIの判断を優先、 後半はチームAIの判断を優勢にしたい。 比較のためのチームAIゴール評価値 = ゴール評価値 x comp_team 比較のためのCOM AIゴール評価値 = ゴール評価値 x comp_idv COM優勢 COM、チーム競合 チーム優勢 チームAIを用いてゲームメーキングを行う 1.2
  277. 277. チームAIのデモをご覧ください
  278. 278. Protect_CB_TeamAI.avi http://www.nicovideo.jp/watch/1306134909
  279. 279. クロムハウンズにおけるマルチエージェント 技術まとめ (1) クロムハウンズは、各NPCが役割を持って協調する マルチエージェント構造である。 (2) 各NPCは個体としてはゴール指向プランニングの 思考を持ち、ゴールによって協調する。 (3) 全体の動きはアルゴリズム的な運動によっても制御 される。 (4) ゲーム全体に渡っては、チームAIが制御し、 プレイヤーとのゲームメーキングを行う。
  280. 280. クロムハウンズAI プレイヤたちーとAIたちが対等に争いながら競合する 新しいゲーム空間を創造したい 人間の心の葛藤 人間の組織の葛藤 行動の自由 集団としての自由度 学べたもの 学べなかったもの 柔軟な計画性 … 常に、個人としてもチームとしても 複数のプランを描き、行動している。 暗黙の協調性 … 言葉で伝え合わなくても、意図を伝え合う。 (例) 「おまえがこうやると思ったから」など
  281. 281. m07_001_01_ComvsCom.avi クロムハウンズAI技術デモ http://www.nicovideo.jp/watch/1306134435
  282. 282. m07_001_02_ComvsCom.avi クロムハウンズAI技術デモ http://www.nicovideo.jp/watch/1306134476
  283. 283. m07_001_03_ComvsCom.avi クロムハウンズAI技術デモ http://www.nicovideo.jp/watch/1306134523
  284. 284. ゲームAI入門 (後半)へ 日本デジタルゲーム学会理事 三宅 陽一郎 2018.7.9 @shibuya https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake y.m.4160@gmail.com @miyayou

×