Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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)

Slide 5

Slide 5 text

http://ainow.ai/2018/10/24/149359/

Slide 6

Slide 6 text

No content

Slide 7

Slide 7 text

英語文献

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

ゲームAIを学ぶ3冊

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

第零章 序論

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

フィールド 3つのAIの連携の例 ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。

Slide 18

Slide 18 text

ゲーム外AI • 開発工程を助けるAI プロシージャル機能 • バランス調整するAI 遺伝的アルゴリズム、ニューラルネット • QAのためのAI QA-AI • メタAI バランス調整、ゲームメーキング • インターフェース上のAI 音声解析、言語解析、ゼスチャー認識 • データマイニングするAI ロギング&アナライジング • シミュレーション技術 パラメーター生成 • データビジュアリゼーション ゲームを可視化する

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

フィールド ゲームの中のAI ナビゲーション AI メタAI キャラクターAI 状況を監視し、キーとなる役割を 適切なタイミングでエージェントに 指示する。 自律的な判断。 仲間同士の協調 地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する Support エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。

Slide 23

Slide 23 text

歴史 キャラクターAI 1995 2000 ナビゲーションAI 2007 メタAI 2015 ゲームの外のAI

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

ゲーム外AI • 開発工程を助けるAI プロシージャル機能 • バランス調整するAI 遺伝的アルゴリズム、ニューラルネット • QAのためのAI QA-AI • メタAI バランス調整、ゲームメーキング • インターフェース上のAI 音声解析、言語解析、ゼスチャー認識 • データマイニングするAI ロギング&アナライジング • シミュレーション技術 パラメーター生成 • データビジュアリゼーション ゲームを可視化する

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

テスターをAIに置き換える AI https://www.irasutoya.com

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

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

Slide 30

Slide 30 text

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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

開発会社 システム 詳細 参照 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の取り組み ~高速自動プレイによる ステージ設計支援

Slide 33

Slide 33 text

コンシューマ モバイル ゲームの外から ゲームの中から ゲーム自動プレイング ゲームバランシング Grimm’s Note の 例 オセロニア AIプレイ ヤー DOOM 自動 プレイ 龍が如く リプレイ FFRK ゲーム自動 プレイ DQMP デバッグ Horizon の自動プ レイ例 Sea of Thieves の 例 Assassin ’s Creed の例 Battlefiel d 1リプレ イ FGO リプレイ

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

第一章 さまざまな学習事例

Slide 36

Slide 36 text

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

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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 ニューラルネットワークの応用

Slide 39

Slide 39 text

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 ニューラルネットワークの応用

Slide 40

Slide 40 text

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 ニューラルネットワークの応用

Slide 41

Slide 41 text

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)

Slide 42

Slide 42 text

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

Slide 43

Slide 43 text

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

Slide 44

Slide 44 text

世界 五感 身体 言語 知識表 現型 知識 生成 Knowledge Making 意思決定 Decision Making 身体 運動 生成 Motion Making インフォメーション・フロー(情報回廊) 記憶 キャラクターにおける学習の原理 行動の表現 結果の表現 意思決定

Slide 45

Slide 45 text

強化学習(例) 強化学習 (例)格闘ゲーム Tao Feng における実験(2004) キック パン チ 波動 R_0 : 報酬=ダメージ http://piposozai.blog76.fc2.com/ http://dear-croa.d.dooo.jp/download/illust.html

Slide 46

Slide 46 text

強化学習 (例)格闘ゲーム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/

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

遺伝的アルゴリズムの仕組み 遺伝子 遺伝子 次世代 親① 親② 母集団から優秀な親を 2体ピックアップ 遺伝子を掛け合わせる 次世代の子供を産み出す (selection) (crossover) (production) 現世代 このサイクルをくり返すことで世代を進めて、望ましい集団を産み出す 遺伝子 遺伝子

Slide 50

Slide 50 text

(例)① GA Racer 遺伝的アルゴリズムによって、遠くまで到達できるレーサーを作成する。 最初はここまでしか たどり着けないけど… だんだんと遠くまで、 たどりつけるようにする。 Mat Buckland, "Building Better Genetic Algorithm", 11.4., AI Game Programming Wisdom 2 (CD-ROMにソースコードと実行ファイルがあります) 最初の世代 新世代(100~世代後)

Slide 51

Slide 51 text

(例)③ムーンランディング(月着陸) 3世代 20世代 35世代 落下法則(物理法則)のもとで降下ポイントから台座に垂直に着陸する操作を見出す 最初は全く見当違い。 だんだんと近付いて来る。 Mat Buckland, Andre Lamothe, “Moon Landings Made Easy ”, chapter.6., AI techniques for game programming, Premier Press (2002) (CD-ROMにソースコードと実行ファイルがあります) 着陸地点 降下開始ポイント 降下開始ポイント 降下開始ポイント

Slide 52

Slide 52 text

森川幸人, 「テレビゲームへの人工知能技術の利用」, 人工知能学会誌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 に準拠します。 以下の解説は 詳細は以下の資料へ

Slide 53

Slide 53 text

(例)④アストロノーカ 最初はすぐに罠にかかるが、 だんだんと罠にかからないようになる MuuMuu, PlayStation®用ソフト「アストロノーカ」(Enix, 1998) http://dlgames.square-enix.com/jp/psga/2008/astronoka/ http://www.muumuu.com/product.html 新世代(5~世代後) 最初の世代 野菜 食べたい 世界最高峰の遺伝的アルゴリズムを使ったゲーム (AIをどうゲームに使うか、という手本のようなゲーム)

Slide 54

Slide 54 text

全体の流れ トラップを配置する 1日の始まり トラップバトル開始 トラップバトル終了 トラップ成績算出 各個体の成績算出 順位を決定 下位2体を削除 適応度に応じて親を選択 子供2体を生成 新しい世代を生成 規定世代に達した? 1日の終了 世代交代数を修正 突然変異率を修正

Slide 55

Slide 55 text

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)]

Slide 56

Slide 56 text

(C)1998 Muu Muu co.,Ltd./SYSTEM SACOM corp./ENIX アストロノーカ(muumuu、森川幸人)

Slide 57

Slide 57 text

ゲームシステムとしての工夫 全体の適応度の平均値 1日の適応度の伸び 世代交代数 工夫その① 遺伝的アルゴリズムは集団に対するアルゴリズム 一体のトラップバトルの裏で他の20体も同じトラップバトルをして、 全体として世代交代をさせている。 工夫その② 遺伝的アルゴリズムは進化のスピードがプレイヤーに体感させるには遅い プレイヤーには「1世代の変化」と言っているが、 実はだいたい1日5世代分進化させている。 工夫その③ プレイヤーから見て 毎日、同じ適応度の 上昇になるように、 世代交代数を調整している

Slide 58

Slide 58 text

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 つなぎ方を定義する遺伝子 ニューロンを定義する遺伝子 入力 出力

Slide 59

Slide 59 text

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 によってリンク、ニュー ロンを全遺伝子共通の管理する。 無効 入力 出力

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

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 子供=新しいニューラルネットワーク

Slide 62

Slide 62 text

エージェント・アーキテクチャー 身体 センサー エフェクター NPCの知能部分 ゲーム世界 相互作用 時間 時間 知覚する 行動する 機体 制御 交配の中で発展して行く

Slide 63

Slide 63 text

第3世代 第929世代 第1368世代 左は俯瞰図(赤は衝突してしまっている) 右は適応度ベスト4のニューラルネット

Slide 64

Slide 64 text

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

Slide 65

Slide 65 text

弾幕自動生成 • Applying Evolutionary Algorithms to the Galactic Arms Race • http://aigamedev.com/open/interviews/galactic-arms-race/ https://www.youtube.com/watch?v=N8q2uOwWcFc

Slide 66

Slide 66 text

強化学習とは? 行動選択 =ポリシー (π) 環境(Env) 行動(a) 状態(S) 報酬 報酬 関数 環境のモデルはよくわからない。 でも、行動をして、それに対する結果(=報酬)が環境から返って来る。 その報酬から、現在の状態と行動の評価を見直して、 行動選択の方針を変えて行くことを強化学習という。

Slide 67

Slide 67 text

機械学習 (例)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

Slide 68

Slide 68 text

機械学習 (例)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

Slide 69

Slide 69 text

機械学習 (例)FORZA MOTORSPORT におけるドライビング学習 • 揺らぎ • ライン – コーナーやそのコンビネーションに対し て、どれぐらいスムーズに車をガイドするか。 • コーナーへの突入スピードとブレーキを踏むタイ ミングと。保守的か過激か。 • コーナーの頂点にどれぐらい近づくか、どれぐら いの速度でそこを抜けるか? • コーナーを抜ける時のスピードとコーナーを回る 時のスピード。 Drivatar がプレイヤーのコントロールから学習するもの Microsoft Research Drivatar™ in Forza Motorsport http://research.microsoft.com/en-us/projects/drivatar/forza.aspx

Slide 70

Slide 70 text

機械学習 (例)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 プレイヤーの特性を解析する 特徴となる数値をドライブモデルに渡す

Slide 71

Slide 71 text

機械学習 (例)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 レーシングラインを事前に構築する。生成というよりテーブルから組み合わせる。

Slide 72

Slide 72 text

機械学習 (例)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 レーシングラインを事前に構築する。生成というよりテーブルから組み合わせる。

Slide 73

Slide 73 text

機械学習 (例)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 レーシングラインに沿わせるのではなく、理想とする位置とスピードから コントローラーの制御を計算して、物理制御によって車を運転する。

Slide 74

Slide 74 text

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/

Slide 75

Slide 75 text

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

Slide 76

Slide 76 text

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

Slide 77

Slide 77 text

第三章 品質保証におけるAI①

Slide 78

Slide 78 text

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

Slide 79

Slide 79 text

Assassin’s Creed Origin の事例

Slide 80

Slide 80 text

No content

Slide 81

Slide 81 text

No content

Slide 82

Slide 82 text

配置テスト項目

Slide 83

Slide 83 text

スクリプトによるテスト

Slide 84

Slide 84 text

データ解析によるテスト

Slide 85

Slide 85 text

No content

Slide 86

Slide 86 text

No content

Slide 87

Slide 87 text

No content

Slide 88

Slide 88 text

メタ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

Slide 89

Slide 89 text

No content

Slide 90

Slide 90 text

No content

Slide 91

Slide 91 text

No content

Slide 92

Slide 92 text

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

Slide 93

Slide 93 text

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

Slide 94

Slide 94 text

第四章 品質保証におけるAI②

Slide 95

Slide 95 text

Thief における Unreal Engine 上の自動テスト • AUTOMATED TESTING FOR MULTIPLAYER GAME-AI IN SEA OF THIEVES • ROBERT MASELLA • RARE — MICROSOFT GAME STUDIOS • http://gameainorth.com/2017/

Slide 96

Slide 96 text

Sea of Thieves

Slide 97

Slide 97 text

Testing AI • Automated testing not widely used in game development • AI Unique challenges for testing AI • Multiplayer

Slide 98

Slide 98 text

Test Types • Unit • Integration • Behaviour Tree • Multiplayer Integration

Slide 99

Slide 99 text

Running Tests • Run tests in Unreal Editor Automation window

Slide 100

Slide 100 text

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 ); }

Slide 101

Slide 101 text

Integration Tests • Mostly used Unreal Blueprint system: • https://docs.unrealengine.com/latest/INT/Engine/Blueprints/

Slide 102

Slide 102 text

Integration Tests • Levels with limited game scenario • Most look for success criteria, or time out and fail

Slide 103

Slide 103 text

Line of Sight integration test • SkeletonAI_WhenLosesLineOfSightToTarget_MovesToPositionToRegainLineOfSight

Slide 104

Slide 104 text

Line of Sight integration test

Slide 105

Slide 105 text

Line of Sight integration test • Failing version

Slide 106

Slide 106 text

Line of Sight integration test

Slide 107

Slide 107 text

Line of Sight integration test • Failing version • Assertion: Test Timed Out

Slide 108

Slide 108 text

Line of Sight integration test • Passing version

Slide 109

Slide 109 text

Line of Sight integration test

Slide 110

Slide 110 text

Line of Sight integration test • Passing version

Slide 111

Slide 111 text

Example Behaviour Tree Node • Node that triggers an input

Slide 112

Slide 112 text

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; }

Slide 113

Slide 113 text

Node Testing II • Test that checks that decorator fails if health is lower than expected

Slide 114

Slide 114 text

‘Walking Dead’ Multiplayer Integration Test • SkeletonAI_Dies_DoesNotMoveDuringDeathOnClient_MP1

Slide 115

Slide 115 text

‘Walking Dead’ Multiplayer Integration Test • Failing version • Assertion failed: ‘check velocity is low in dead state’

Slide 116

Slide 116 text

‘Walking Dead’ Multiplayer Integration Test • Passing version

Slide 117

Slide 117 text

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

Slide 118

Slide 118 text

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

Slide 119

Slide 119 text

第五章 品質保証における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

Slide 120

Slide 120 text

Test Strategy Goals

Slide 121

Slide 121 text

Session-based exploratory testing

Slide 122

Slide 122 text

Not just testing

Slide 123

Slide 123 text

Tools – In Engine

Slide 124

Slide 124 text

Examples of debug views and tools

Slide 125

Slide 125 text

External Tools

Slide 126

Slide 126 text

Interactive bug map demo

Slide 127

Slide 127 text

No content

Slide 128

Slide 128 text

Test Automation

Slide 129

Slide 129 text

Apollo – Autonomous Automated Autobots

Slide 130

Slide 130 text

Trophy Unlocked!

Slide 131

Slide 131 text

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

Slide 132

Slide 132 text

第六章 品質保証における強化学習 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

Slide 133

Slide 133 text

No content

Slide 134

Slide 134 text

No content

Slide 135

Slide 135 text

No content

Slide 136

Slide 136 text

No content

Slide 137

Slide 137 text

No content

Slide 138

Slide 138 text

No content

Slide 139

Slide 139 text

No content

Slide 140

Slide 140 text

No content

Slide 141

Slide 141 text

No content

Slide 142

Slide 142 text

• 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

Slide 143

Slide 143 text

No content

Slide 144

Slide 144 text

No content

Slide 145

Slide 145 text

No content

Slide 146

Slide 146 text

No content

Slide 147

Slide 147 text

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

Slide 148

Slide 148 text

第七章 QA-AI ゲームバランシング

Slide 149

Slide 149 text

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

Slide 150

Slide 150 text

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/

Slide 151

Slide 151 text

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/

Slide 152

Slide 152 text

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/

Slide 153

Slide 153 text

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

Slide 154

Slide 154 text

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

Slide 155

Slide 155 text

Gameplay Data Analysis: Asking the Right Questions Ian Thomas (Epic Games) http://www.gdcvault.com/play/1015482/Gameplay-Data-Analysis-Asking-the

Slide 156

Slide 156 text

No content

Slide 157

Slide 157 text

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

Slide 158

Slide 158 text

第八章 QA-AI ゲームテスト

Slide 159

Slide 159 text

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

Slide 160

Slide 160 text

ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) ゲームの中、ゲームの外 ゲームはより動的なものになる (自律型AI,動的コンテンツ先生)

Slide 161

Slide 161 text

ゲーム周辺AI (外=開発、現実) ゲームAI (中=コンテンツ) ゲームの中、ゲームの外 メタAI キャラクター AI ナビゲーション AI インターフェース 上のAI データ マイニング シミュレーショ ン技術 ゲーム 可視化 開発支援 AI QA-AI 自動バランス AI ゲーム(内): 人工知能によってより自律的、 より動的なコンテンツへ ゲーム開発(外): より科学的(分析、検証)、 アルゴリズムによる調整へ

Slide 162

Slide 162 text

ゲームの外の研究の問題点 • 先行研究が少ない • アカデミックな知識を援用する場合が多い。 • 個別課題が多い • 統一的に解決したいが、研究期間が必要 • 共通フレームワークがない

Slide 163

Slide 163 text

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

Slide 164

Slide 164 text

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

Slide 165

Slide 165 text

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

Slide 166

Slide 166 text

ご質問 • [email protected] • Twitter: @miyayou • Facebook: https://www.facebook.com/youichiro.miyake