ML15_2019_1_26_public.pdf

E876ea77f9fb4d686befb6e69eec9a7e?s=47 miyayou
January 26, 2019

 ML15_2019_1_26_public.pdf

E876ea77f9fb4d686befb6e69eec9a7e?s=128

miyayou

January 26, 2019
Tweet

Transcript

  1. デジタルゲームにおける学習の応用 三宅 陽一郎 2019.1.26 @Machine Learning 15minutes https://www.facebook.com/youichiro.miyake http://www.slideshare.net/youichiromiyake y.m.4160@gmail.com

  2. My Works (2004-2017) AI for Game Titles Books

  3. • 人工知能学会誌の編集委員(表紙担当など)もしています • 人工知能学会誌は、Amazonから注文したり、Kindle でも読めます。無料の記事もWEB「AI書庫」にたくさんあります。 https://jsai.ixsq.nii.ac.jp/ej/ パックマン、 全仕様書、 公開

  4. https://ipsj.ixsq.nii.ac.jp/ej/?action=pages_view_main&active_action=repository_view_main_item_detail&item_id =71306&item_no=1&page_id=13&block_id=8 池畑 望 , 伊藤 毅志 Nozomu Ikehata ,

    Takeshi Ito ゲームプログラミングワークショップ2010 論文集,2010(12),1-8 (2010-11-12)
  5. http://ainow.ai/2018/10/24/149359/

  6. None
  7. 英語文献

  8. ゲームAI技術 ゲームAI技術 AI技術 プロシージャル 技術 コンテンツ自動生成技術 (PCG, Procedural Contents Generation

  9. ゲームAIを学ぶ3冊

  10. 参考文献 GAME AI PRO 3 (2017/6) 世界中から集められた記事をもとに2年ごとに発行される

  11. 参考文献 三宅陽一郎 「 ディジタルゲームにおける人工知能技術の応用の現在」 (20ページ) (人工知能学会誌、2015/1号) (AI書庫から無料でDL可能 http://id.nii.ac.jp/1004/00001730/ )

  12. 参考文献 三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」 (17ページ) (人工知能学会誌、2017 /2号) (AI書庫から無料でDL可能 http://id.nii.ac.jp/1004/00008567/

  13. ゲーム×AIの議論の場を育てたい 今後について Google Group: game-ai https://goo.gl/4dVN2o Slack: game-ai-ja https://goo.gl/jqEgLf

  14. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  15. 第零章 序論

  16. ゲームの中、ゲームの外 ゲーム周辺 (外=開発、現実) ゲーム (中=コンテンツ)

  17. フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。

    仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  18. ゲーム外AI • 開発工程を助けるAI プロシージャル機能 • バランス調整するAI 遺伝的アルゴリズム、ニューラルネット • QAのためのAI QA-AI

    • メタAI バランス調整、ゲームメーキング • インターフェース上のAI 音声解析、言語解析、ゼスチャー認識 • データマイニングするAI ロギング&アナライジング • シミュレーション技術 パラメーター生成 • データビジュアリゼーション ゲームを可視化する
  19. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  20. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  21. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  22. フィールド ゲームの中のAI ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。

    仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
  23. 歴史 キャラクターAI 1995 2000 ナビゲーションAI 2007 メタAI 2015 ゲームの外のAI

  24. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  25. ゲーム外AI • 開発工程を助けるAI プロシージャル機能 • バランス調整するAI 遺伝的アルゴリズム、ニューラルネット • QAのためのAI QA-AI

    • メタAI バランス調整、ゲームメーキング • インターフェース上のAI 音声解析、言語解析、ゼスチャー認識 • データマイニングするAI ロギング&アナライジング • シミュレーション技術 パラメーター生成 • データビジュアリゼーション ゲームを可視化する
  26. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  27. テスターをAIに置き換える AI https://www.irasutoya.com

  28. ゲームAI (中=コンテンツ) ゲーム周辺AI (外=開発、現実) 人力 (All Script) 人力

  29. ゲームAI (中=コンテンツ) ゲーム周辺AI (外=開発、現実) AI技術 人力 人力

  30. ゲームAI (中=コンテンツ) ゲーム周辺AI (外=開発、現実) AI技術 人力 AI技術 人力

  31. 品質保証のための人工知能事例

  32. 開発会社 システム 詳細 参照 Ubi 2018 Assassin’s Creed Origin の

    レベルアセット自動検証 スクリプトによるオブジェクト同士の干渉テスト キャラクターの生成ポイントと配置オブジェクトの干渉 テスト / スクリプトによるテスト ‘Assassin’s Creed Origins‘: Monitoring and Validation of World Design Data Nicholas Routhier Ubisoft Montreal http://www.gdcvault.com/play/1025054/-Assassin-s-Creed-Origins Guerrilla 2018 Horizon Zero Down の自動プ レイ 毎晩、自動的にAIキャラクターがゲームをプレイ ‘Horizon Zero Dawn’: A QA Open World Case Study Ana Barbuta https://www.gdcvault.com/play/1025326/-Horizon-Zero-Dawn-A EA 2018 Battlefield1における模倣学習 による自動プレイ 模倣学習によるキャラクターがゲーム内で戦い合う https://www.ea.com/seed/news/seed-imitation-learning-concurrent- actions https://www.ea.com/seed/news/self-learning-agents-play-bf1 SEGA 2018 「龍が如く」~「北斗が如く」に おける自動プレイ ログからの自動リプレイシステム 無料で始める!「龍が如く」を面白くするための高速デバッグログ分析と 自動化https://cedil.cesa.or.jp/cedil_sessions/view/1621 RARE 2017 Thief における Unreal Engine 上のキャラクタービヘイビア の自動テスト テストがクエリーの形でリスト化されて、毎晩テストさ れる AUTOMATED TESTING FOR MULTIPLAYER GAME-AI IN SEA OF THIEVES ROBERT MASELLA RARE — MICROSOFT GAME STUDIOS http://gameainorth.com/2017/ DELiGHT WORKS 2017 Fate/Grand Orderにおける自 動リプレイ サーバーを経由したログの収集とコマンド関数列の 再現 Fate/Grand Orderにおける自動リプレイを用いたQA改善への挑戦 http://cedil.cesa.or.jp/cedil_sessions/view/1716 DeNA 2017 「逆転オセロニア」における自 動ゲームプレイ 強化学習を用いて機械学習させる DeNA TechCon2018 ゲーム体験を支えるための強化学習 https://www.slideshare.net/juneokumura/dena-techcon2018 SQUARE ENIX 2017 「グリムノーツ」における自動 ゲームバランス 遺伝的アルゴリズムを用いてプレイヤーAI群を進化さ せてゲームバランスを調査する 遺伝的アルゴリズムによる人工知能を用いたゲームバランス調整 http://cedil.cesa.or.jp/cedil_sessions/view/1655 DeNA 「FINAL FANTASY Record Keeper」における自動プレイ ニューロエボリューションによるプレイヤーAIの作成 AIによるゲームアプリ運用の課題解決へのアプローチ https://cedil.cesa.or.jp/cedil_sessions/view/1511 強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによる ステージ設計支援
  33. コンシューマ モバイル ゲームの外から ゲームの中から ゲーム自動プレイング ゲームバランシング Grimm’s Note の 例

    オセロニア AIプレイ ヤー DOOM 自動 プレイ 龍が如く リプレイ FFRK ゲーム自動 プレイ DQMP デバッグ Horizon の自動プ レイ例 Sea of Thieves の 例 Assassin ’s Creed の例 Battlefiel d 1リプレ イ FGO リプレイ
  34. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  35. 第一章 さまざまな学習事例

  36. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用

  37. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用

  38. 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 ニューラルネットワークの応用
  39. 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 ニューラルネットワークの応用
  40. 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 ニューラルネットワークの応用
  41. 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)
  42. ニューラルネットワークの応用 Black & White (Lionhead,2000) クリーチャーを育てていくゲーム。 クリーチャーは自律的に行動するが、 訓練によって学習させることができる。 http://www.youtube.com/watch?v=2t9ULyYGN-s http://www.lionhead.com/games/black-white/

    14:20-
  43. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用

  44. 世界 五感 身体 言語 知識表 現型 知識 生成 Knowledge Making

    意思決定 Decision Making 身体 運動 生成 Motion Making インフォメーション・フロー(情報回廊) 記憶 キャラクターにおける学習の原理 行動の表現 結果の表現 意思決定
  45. 強化学習(例) 強化学習 (例)格闘ゲーム Tao Feng における実験(2004) キック パン チ 波動

    R_0 : 報酬=ダメージ http://piposozai.blog76.fc2.com/ http://dear-croa.d.dooo.jp/download/illust.html
  46. 強化学習 (例)格闘ゲーム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/
  47. キャラクターにおける様々な学習・進化 (1) ニューラルネットワークの応用 (2) 機械学習の応用 (3) 強化学習の応用 (4) 遺伝的アルゴリズムの応用

  48. 遺伝的アルゴリズムの応用 集団を一定の方向に進化させる方法 最初の世代 新世代(100~世代後) … 世代を経て進化させる 1つの世代が次の世代を交配によって産み出す

  49. 遺伝的アルゴリズムの仕組み 遺伝子 遺伝子 次世代 親① 親② 母集団から優秀な親を 2体ピックアップ 遺伝子を掛け合わせる 次世代の子供を産み出す

    (selection) (crossover) (production) 現世代 このサイクルをくり返すことで世代を進めて、望ましい集団を産み出す 遺伝子 遺伝子
  50. (例)① GA Racer 遺伝的アルゴリズムによって、遠くまで到達できるレーサーを作成する。 最初はここまでしか たどり着けないけど… だんだんと遠くまで、 たどりつけるようにする。 Mat Buckland,

    "Building Better Genetic Algorithm", 11.4., AI Game Programming Wisdom 2 (CD-ROMにソースコードと実行ファイルがあります) 最初の世代 新世代(100~世代後)
  51. (例)③ムーンランディング(月着陸) 3世代 20世代 35世代 落下法則(物理法則)のもとで降下ポイントから台座に垂直に着陸する操作を見出す 最初は全く見当違い。 だんだんと近付いて来る。 Mat Buckland, Andre

    Lamothe, “Moon Landings Made Easy ”, chapter.6., AI techniques for game programming, Premier Press (2002) (CD-ROMにソースコードと実行ファイルがあります) 着陸地点 降下開始ポイント 降下開始ポイント 降下開始ポイント
  52. 森川幸人, 「テレビゲームへの人工知能技術の利用」, 人工知能学会誌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 に準拠します。 以下の解説は 詳細は以下の資料へ

  53. (例)④アストロノーカ 最初はすぐに罠にかかるが、 だんだんと罠にかからないようになる MuuMuu, PlayStation®用ソフト「アストロノーカ」(Enix, 1998) http://dlgames.square-enix.com/jp/psga/2008/astronoka/ http://www.muumuu.com/product.html 新世代(5~世代後) 最初の世代

    野菜 食べたい 世界最高峰の遺伝的アルゴリズムを使ったゲーム (AIをどうゲームに使うか、という手本のようなゲーム)
  54. 全体の流れ トラップを配置する 1日の始まり トラップバトル開始 トラップバトル終了 トラップ成績算出 各個体の成績算出 順位を決定 下位2体を削除 適応度に応じて親を選択

    子供2体を生成 新しい世代を生成 規定世代に達した? 1日の終了 世代交代数を修正 突然変異率を修正
  55. 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)]
  56. (C)1998 Muu Muu co.,Ltd./SYSTEM SACOM corp./ENIX アストロノーカ(muumuu、森川幸人)

  57. ゲームシステムとしての工夫 全体の適応度の平均値 1日の適応度の伸び 世代交代数 工夫その① 遺伝的アルゴリズムは集団に対するアルゴリズム 一体のトラップバトルの裏で他の20体も同じトラップバトルをして、 全体として世代交代をさせている。 工夫その② 遺伝的アルゴリズムは進化のスピードがプレイヤーに体感させるには遅い

    プレイヤーには「1世代の変化」と言っているが、 実はだいたい1日5世代分進化させている。 工夫その③ プレイヤーから見て 毎日、同じ適応度の 上昇になるように、 世代交代数を調整している
  58. 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 つなぎ方を定義する遺伝子 ニューロンを定義する遺伝子 入力 出力
  59. 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 によってリンク、ニュー ロンを全遺伝子共通の管理する。 無効 入力 出力
  60. 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 9 5 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
  61. 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 9 5 4 Innovation ID 交 叉 2 1 3 9 5 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 子供=新しいニューラルネットワーク
  62. エージェント・アーキテクチャー 身体 センサー エフェクター NPCの知能部分 ゲーム世界 相互作用 時間 時間 知覚する

    行動する 機体 制御 交配の中で発展して行く
  63. 第3世代 第929世代 第1368世代 左は俯瞰図(赤は衝突してしまっている) 右は適応度ベスト4のニューラルネット

  64. https://arxiv.org/pdf/1410.7326.pdf

  65. 弾幕自動生成 • Applying Evolutionary Algorithms to the Galactic Arms Race

    • http://aigamedev.com/open/interviews/galactic-arms-race/ https://www.youtube.com/watch?v=N8q2uOwWcFc
  66. 強化学習とは? 行動選択 =ポリシー (π) 環境(Env) 行動(a) 状態(S) 報酬 報酬 関数

    環境のモデルはよくわからない。 でも、行動をして、それに対する結果(=報酬)が環境から返って来る。 その報酬から、現在の状態と行動の評価を見直して、 行動選択の方針を変えて行くことを強化学習という。
  67. 機械学習 (例)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
  68. 機械学習 (例)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
  69. 機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 • 揺らぎ • ライン – コーナーやそのコンビネーションに対し

    て、どれぐらいスムーズに車をガイドするか。 • コーナーへの突入スピードとブレーキを踏むタイ ミングと。保守的か過激か。 • コーナーの頂点にどれぐらい近づくか、どれぐら いの速度でそこを抜けるか? • コーナーを抜ける時のスピードとコーナーを回る 時のスピード。 Drivatar がプレイヤーのコントロールから学習するもの Microsoft Research Drivatar™ in Forza Motorsport http://research.microsoft.com/en-us/projects/drivatar/forza.aspx
  70. 機械学習 (例)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 プレイヤーの特性を解析する 特徴となる数値をドライブモデルに渡す
  71. 機械学習 (例)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 レーシングラインを事前に構築する。生成というよりテーブルから組み合わせる。
  72. 機械学習 (例)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 レーシングラインを事前に構築する。生成というよりテーブルから組み合わせる。
  73. 機械学習 (例)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 レーシングラインに沿わせるのではなく、理想とする位置とスピードから コントローラーの制御を計算して、物理制御によって車を運転する。
  74. Forza motorsports (EA) Jeffrey Schlimmer, "Drivatar and Machine Learning Racing

    Skills in the Forza Series" http://archives.nucl.ai/recording/drivatar-and-machine-learning-racing-skills-in-the-forza-series/
  75. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  76. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  77. 第三章 品質保証におけるAI①

  78. Assassin’s Creed Origin の事例 • スクリプトによるオブジェクト同士の干渉テスト • キャラクターの生成ポイントと配置オブジェクトの干渉テスト • スクリプトによるテスト

    'Assassin's Creed Origins': Monitoring and Validation of World Design Data Nicholas Routhier Ubisoft Montreal http://www.gdcvault.com/play/1025054/-Assassin-s-Creed-Origins
  79. Assassin’s Creed Origin の事例

  80. None
  81. None
  82. 配置テスト項目

  83. スクリプトによるテスト

  84. データ解析によるテスト

  85. None
  86. None
  87. None
  88. メタAIの活用事例 • メタAI = ゲーム全体を制御する人工知能 = 夜中にゲームとキャラクターを動かして負荷などのテスト Virtual Insanity: Meta

    AI on 'Assassin's Creed: Origins' Charles Lefebvre Ubisoft Montreal http://www.gdcvault.com/play/1025410/Virtual-Insanity-Meta-AI-on
  89. None
  90. None
  91. None
  92. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  93. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  94. 第四章 品質保証におけるAI②

  95. Thief における Unreal Engine 上の自動テスト • AUTOMATED TESTING FOR MULTIPLAYER

    GAME-AI IN SEA OF THIEVES • ROBERT MASELLA • RARE — MICROSOFT GAME STUDIOS • http://gameainorth.com/2017/
  96. Sea of Thieves

  97. Testing AI • Automated testing not widely used in game

    development • AI Unique challenges for testing AI • Multiplayer
  98. Test Types • Unit • Integration • Behaviour Tree •

    Multiplayer Integration
  99. Running Tests • Run tests in Unreal Editor Automation window

  100. Unit Tests • Run without creating or ticking world •

    Unit tests can have test fixture for boilerplate code #define IMPLEMENT_AIENTITY_TEST( TestName ) IMPLEMENT_UNIT_TEST( TestName, "AIEntity", AIEntityTestFixture ) IMPLEMENT_AIENTITY_TEST( UpdateTarget_OneEnemyEntitySeen_TargetSetToEntity ) { auto* AIEntity = SpawnTestAIEntity(); auto* EnemyEntity = SpawnEnemyEntity(); AIEntity->AddSeenEntity( EnemyEntity ); AIEntity->UpdateTarget(); TestEqual( AIEntity->GetTargetEntity(), EnemyEntity ); }
  101. Integration Tests • Mostly used Unreal Blueprint system: • https://docs.unrealengine.com/latest/INT/Engine/Blueprints/

  102. Integration Tests • Levels with limited game scenario • Most

    look for success criteria, or time out and fail
  103. Line of Sight integration test • SkeletonAI_WhenLosesLineOfSightToTarget_MovesToPositionToRegainLineOfSight

  104. Line of Sight integration test

  105. Line of Sight integration test • Failing version

  106. Line of Sight integration test

  107. Line of Sight integration test • Failing version • Assertion:

    Test Timed Out
  108. Line of Sight integration test • Passing version

  109. Line of Sight integration test

  110. Line of Sight integration test • Passing version

  111. Example Behaviour Tree Node • Node that triggers an input

  112. Behaviour Tree Node Testing • Add node to a minimal

    behaviour tree created in code • Created environment required for coded behaviour tree in fixture • Also created helper functions for adding nodes virtual void OnBeforeTest() override { BehaviorTree = CreateTreeRootWithSequence(); } UBTTask_TriggerInput* CreateTriggerInputTaskNodeAttachedToNode( UBTCompositeNode* ParentNode, UNotificationInputId NotificationId ) { auto* TestTask = NewObject< UBTTask_TriggerInput >(); TestTask->NotificationId = NotificationId; ParentNode->AddChild( TestTask ); return TestTask; }
  113. Node Testing II • Test that checks that decorator fails

    if health is lower than expected
  114. ‘Walking Dead’ Multiplayer Integration Test • SkeletonAI_Dies_DoesNotMoveDuringDeathOnClient_MP1

  115. ‘Walking Dead’ Multiplayer Integration Test • Failing version • Assertion

    failed: ‘check velocity is low in dead state’
  116. ‘Walking Dead’ Multiplayer Integration Test • Passing version

  117. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  118. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  119. 第五章 品質保証におけるAI③ HORIZON ZERO DAWN: AN OPEN WORLD QA CASE

    STUDY Ana Barbuta; Game Developers Conference 2018, San Francisco, USA 23 March 2018 https://www.guerrilla-games.com/read/horizon-zero-dawn-an-open-world-qa-case-study
  120. Test Strategy Goals

  121. Session-based exploratory testing

  122. Not just testing

  123. Tools – In Engine

  124. Examples of debug views and tools

  125. External Tools

  126. Interactive bug map demo

  127. None
  128. Test Automation

  129. Apollo – Autonomous Automated Autobots

  130. Trophy Unlocked!

  131. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  132. 第六章 品質保証における強化学習 SEED - Deep Learning IMITATION LEARNING WITH CONCURRENT

    ACTIONS IN 3D GAMES https://www.ea.com/seed/news/seed-imitation-learning-concurrent-actions Deep Learning SELF-LEARNING AGENTS PLAY BATTLEFIELD 1 https://www.ea.com/seed/news/self-learning-agents-play-bf1
  133. None
  134. None
  135. None
  136. None
  137. None
  138. None
  139. None
  140. None
  141. None
  142. • https://www.ea.com/seed/news/self-learning-agents-play- bf1 https://www.ea.com/seed/news/seed-imitation-learning-concurrent-actions https://www.ea.com/seed/news/self-learning-agents-play-bf1 https://www.youtube.com/watch?v=ZZsSx6kAi6Y

  143. None
  144. None
  145. None
  146. None
  147. ゲームの中、ゲームの外 ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号 プロシー ジャルAI
  148. 第七章 QA-AI ゲームバランシング

  149. 第十章 データ解析・学習によるオンラインゲームのサポート

  150. A Brief History of Matchmaking in Heroes of the Storm

    Alex Zook, Blizzard Entertainment https://archives.nucl.ai/recording/a-brief-history-of-matchmaking-in-heroes-of-the-storm/
  151. A Brief History of Matchmaking in Heroes of the Storm

    Alex Zook, Blizzard Entertainment https://archives.nucl.ai/recording/a-brief-history-of-matchmaking-in-heroes-of-the-storm/
  152. A Brief History of Matchmaking in Heroes of the Storm

    Alex Zook, Blizzard Entertainment https://archives.nucl.ai/recording/a-brief-history-of-matchmaking-in-heroes-of-the-storm/
  153. Tom Mathews Making "Big Data" Work for 'Halo': A Case

    Study http://ai-wiki/wiki/images/d/d8/AI_Seminar_177th.pdf
  154. Tom Mathews Making "Big Data" Work for 'Halo': A Case

    Study http://ai-wiki/wiki/images/d/d8/AI_Seminar_177th.pdf
  155. Gameplay Data Analysis: Asking the Right Questions Ian Thomas (Epic

    Games) http://www.gdcvault.com/play/1015482/Gameplay-Data-Analysis-Asking-the
  156. None
  157. 目次 • 第一章 序論 • 第二章 さまざまな学習事例 • 第三章 品質保証におけるAI①

    • 第四章 品質保証におけるAI② • 第五章 品質保証におけるAI③ • 第六章 品質保証における強化学習 • 第七章 QA-AI ゲームバランシング • 第八章 QA-AI ゲームテスト
  158. 第八章 QA-AI ゲームテスト

  159. ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) ゲームの中、ゲームの外 メタAI キャラクター AI ナビゲーション AI

    開発支援 AI QA-AI 自動バランス AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 ユーザーの 生体信号
  160. ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) ゲームの中、ゲームの外 ゲームはより動的なものになる (自律型AI,動的コンテンツ先生)

  161. ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) ゲームの中、ゲームの外 メタAI キャラクター AI ナビゲーション AI

    インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 開発支援 AI QA-AI 自動バランス AI ゲーム(内): 人工知能によってより自律的、 より動的なコンテンツへ ゲーム開発(外): より科学的(分析、検証)、 アルゴリズムによる調整へ
  162. ゲームの外の研究の問題点 • 先行研究が少ない • アカデミックな知識を援用する場合が多い。 • 個別課題が多い • 統一的に解決したいが、研究期間が必要 •

    共通フレームワークがない
  163. コミュニティ アカデミック 産業間 ゲームの外のAI 共同研究しやすい (対象としてのゲーム) 品質保証なので、 直接は競合しない ゲームの中のAI 難しい点がある

    (商品であること、機密 情報が多い) 商品なので競合
  164. コミュニティ アカデミック 産業間 ゲームの外のAI 共同研究しやすい (対象としてのゲーム) 品質保証なので、 直接は競合しない ゲームの中のAI 難しい点がある

    (商品であること、機密 情報が多い) 商品なので競合 産業・アカデミックで皆で連携して推進したい
  165. ゲーム×AIの議論の場を育てたい 今後について Google Group: game-ai https://goo.gl/4dVN2o Slack: game-ai-ja https://goo.gl/jqEgLf

  166. ご質問 • miyakey@square-enix.com • Twitter: @miyayou • Facebook: https://www.facebook.com/youichiro.miyake