Skip to main content
ゲームエンジンの知能化の実装
-人工知能化するゲームエンジンの実装プラン-
三宅 陽一郎 @miyayou
(日本デジタルゲーム学会)
2019.3.4
https://www.facebook.com/youichiro.miyake
http://www.slideshare.net/youichiromiyake
y.m.4160@gmail.com
予稿集 http://digrajapan.org/conf9th/
前回の発表 https://www.slideshare.net/youichiromiyake/ss-112526191
前々回発表 https://www.slideshare.net/youichiromiyake/ss-89419731
ゲームエンジン世代
ゲームエンジン 第1世代 フレームワーク
ゲームエンジン 第0世代 ライブラリ群
ゲームエンジン 第2世代 統合エンジン
ゲームエンジン 第3世代 統合開発環境
?
1999
1995
2007
2010
現在
現在の段階
コンセプト
設計
プロトタイプ実装テスト
背景
(1)大規模、小規模なゲーム開発にかかわらず、また商業、イン
ディーズを問わず、ゲームエンジンの上で開発がされることが通常化し
ている.(Ex.)Unity3D, Unreal Engine 4
(2)ゲーム会社がオリジナルのゲームエンジンが作る場合もあれば、
市販のゲームエンジンも圧倒的なシェアを伸ばしている。
今給黎 隆(2016) ゲームエンジンの歴史概要 日本デジタルゲーム学会大会予稿集 pp. 87-90.
(3)ゲームエンジンの歴史、設計についても研究が進められている
ジェイソン・グレゴリー(2015) ゲームエンジン・アーキテクチャ SBクリエイティブ
三宅陽一郎(2016) タスクシステムの起源について 日本デジタルゲーム学会大会予稿集 pp. 83-86.
背景
(4)開発ワークフローにおいて人工知能を導入する例、たとえば品質
管理に人工知能を導入する例などは少しずつ増えている.
ROBERT MASELLA (2017) AUTOMATED TESTING FOR MULTIPLAYER GAME-AI IN SEA OF
THIEVES, GAME AI NORTH 2017 http://gameainorth.com/2017/#talk3
(5)ゲームエンジンに直接、人工知能の導入する事例は少ない.
本発表では、ゲームエンジンに人工知能を導入するとはどのようなこ
とかを理論的な設計案を提示する.
設計案に基づいたソフトウェア設計を提示する
ソフトウェア設計に基づいて実装する
これからのゲームエンジンが解決すべき課題
• ゲームエンジン自体は進化している。機能、安定性。
• ゲームエンジンなしの開発に比べて圧倒的に負荷が軽減されたものの、
しかしゲーム開発を使う人間の側の負担は未だに大きい部分がある。ま
たこれまで含まれていなかった問題もある
• 解決に課題
膨大なアセット管理
ゲームデバッグ・安定性の確立
開発工程管理
ゲーム開発状況の把握
ゲームエンジンの人工知能を導入する意義
ゲーム開発の情報のすべてはゲームエンジン上にある
ゲームエンジンにゲーム開発状況を認識させたい
ゲーム開発マネージメント・品質保証を人工知能にさせたい
開発会社 システム 詳細 参照
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
2016
「FINAL FANTASY Record Keeper」
における自動プレイ
ニューロエボリューションによるプレイヤーAIの作成 AIによるゲームアプリ運用の課題解決へのアプローチ
https://cedil.cesa.or.jp/cedil_sessions/view/1511
強化学習を利用した自律型GameAIの取り組み ~高速自動プレイによる
ステージ設計支援
©2018 SQUARE ENIX CO., LTD. All Rights Reserved.
ゲームエンジンの人工知能を導入する意義
ゲーム開発の情報のすべてはゲームエンジン上にある
ゲームエンジンにゲーム開発状況を認識させたい
ゲーム開発マネージメント・品質保証を人工知能にさせたい
ゲームエンジン世代
ゲームエンジン 第1世代 フレームワーク
ゲームエンジン 第0世代 ライブラリ群
ゲームエンジン 第2世代 統合エンジン
ゲームエンジン 第3世代 統合開発環境
?
1999
1995
2007
2010
現在
ゲームの中、ゲームの外
ゲーム周辺AI
(外=開発、現実)
ゲームAI
(中=コンテンツ)
メタAI
キャラクター
AI
ナビゲーション
AI
開発支援
AI
QA-AI
自動バランス
AI
インターフェース
上のAI
データ
マイニング
©2018 SQUARE ENIX CO., LTD. All Rights Reserved.
シミュレーショ
ン技術ゲーム
可視化
ユーザーの
生体信号
プロシー
ジャルAI
ゲームの
中の
人工知能
を含む
ゲーム
エンジン
開発工程
まで含む
人工知能
を含む
ゲーム
エンジン
ゲームエンジンの人工知能化
ゲーム
エンジン
人 使う
これまで:人がゲームエンジンを使う
ゲームエンジンの人工知能化
ゲーム
エンジン
(人工知能)
人 使う
これから:ゲームエンジンが人を使ってゲームを完成させる
ゲームエンジンがゲームを知っている
ゲームエンジン・
エージェント部
開発者
開発者
開発者
開発者
ゲーム
エンジン部
報告監視
コミッ
ト
コミッ
ト
ゲームエンジ
ンAI概略図
開発工程など管理
ゲーム部分
(1)ゲームを理解できる
(2)ゲーム開発状況を認識できる。
コード、アセットのスケジュールと理解・評価
(3)ゲームの開発案件を理解できる
(仕様、データアセットリスト、ルール)
ゲーム開発全体の知識表現
(4)ゲーム開発をマネージメントできる。
開発者の役割の定義、チャットの監視、
プランニング、スケジューリング、タスク管理
テキストマイニングによる開発状況の把握
(5)ゲーム開発全体の可視化
ソーシャルグラフ、議事録の自動作成、
ゲームエンジンの人工知能化に求められる
要件
抽象的な認識能力
先行研究
• [1] 三宅陽一郎(2016) タスクシステムの起源について、日本デジタ
ルゲーム学会大会予稿集 pp. 83-86.
• [2] 今給黎 隆(2016) ゲームエンジンの歴史概要 日本デジタルゲー
ム学会大会予稿集 pp. 87-90.
• [3] ROBERT MASELLA (2017) AUTOMATED TESTING FOR
MULTIPLAYER GAME-AI IN SEA OF THIEVES, GAME AI NORTH
2017 http://gameainorth.com/2017/#talk3
• [4] 三宅陽一郎(2018) ゲームエンジンの知能化の設計-ゲームエン
ジンにおける人工知能の導入- 日本デジタルゲーム学会大会予稿集
pp. 47-50
• [5] 三宅陽一郎(2018)ゲームエンジンの知能化のための
ソフトウェアデザイン 日本デジタルゲーム学会 夏季研究大会予稿集
自律型人工知能としての
ゲームエンジン
メタ・ゲームエンジン
通常のゲームエンジン
ゲーム本体
ゲーム開発者
ゲームエンジン概念<階層図>
自律型人工知能としてのゲームエンジン
ゲーム開発状態
エフェクターセンサー
ゲーム本体 ゲーム開発者
自律型人工知能としてのゲームエンジン
ゲーム開発状態
認識の
形成
意思の
決定
エフェクター
作用の
構成
センサー
記憶
ゲーム本体 ゲーム開発者
エージェント・アーキテクチャ
ゲームのデータ、プログラムの状態。ユーザの状態。プロジェ
クト全体の進捗状態など。
認識
修正指示を出すか、進捗を促すか、ゲームの内側から開発
者に向けて問題点を決定し、指示を出す、会話する。或いはゲーム
を自動的に起動してテストする、など、自己診断を行う決定をする
指示を開発者に伝える、適切な命令をゲーム本体に伝える、会話する
行動
意思決定
ゲームエンジンに求められる人工知能技術
開発者
アセット
プログラム
コンテンツ
各レイヤー
の認識
開発者の進捗、仕事のログ
⇒開発進捗
ゲームの完成度
⇒アセットの質、アセット進捗
ゲームコンテンツの把握、ゲーム仕様
の理解 ⇒ゲームの質、完成度
従来のゲームAI技術
(キャラクター、メタAI技術)
自律型人工知能としてのゲームエンジン
ゲーム開発状態
認識の
形成
意思の
決定
エフェクター
作用の
構成
センサー
記憶
ゲーム本体 ゲーム開発者
開発者
アセット・
プログラム
コンテンツ
開発者
アセット・
プログラム
コンテンツ
センサー
知的機能
モジュール
ゲーム
世界
知識
表現
認識の
形成
知的機能
モジュール
知的機能
モジュール
知識
表現
知識
表現
モジュール型アーキテクチャ
開発者
アセット・
プログラム
コンテンツ
ゲームエンジンのアクション
自律型人工知能としてのゲームエンジン
ゲーム開発状態
認識の
形成
意思の
決定
エフェクター
作用の
構成
センサー
記憶
ゲーム本体 ゲーム開発者
開発者
アセット・
プログラム
コンテンツ
開発者
アセット・
プログラム
コンテンツ
ゲームエンジンのアクション(エフェクタ)
コミュニケーション手法 技術
キャラクターAI,メタAIを通じて シミュレーション、動作テスト
クエリー、管理インターフェー
スを通じて
データ、プログラム
インターフェース
メッセージングを通じて 自然言語エンジン
開発者
アセット・
プログラム
コンテンツ
ソフトウェア設計
ゲームエンジン
クラス 知的機能クラス
0…* has
知識表現クラス
1
1
has
sensor
クラス設計
ゲーム、ゲームエンジン、
メタゲームエンジンの構造
(1) ゲームエンジンとそれを内包するメタゲームエンジンの
二重構造である
(2) ゲームはゲームエンジンに内包される
(3) 全体としては現実(ゲーム開発者)、メタゲームエンジ
ン、ゲームエンジン、ゲームの四層構造となる。
(4) メタゲームエンジンは開発者を含む開発環境そのものを
内包するエンジンであり、開発を認識して、開発者に実行を促す
(5) ゲームエンジンは人工知能であり、自分自身が内包する
世界について認識を持ち、自己診断機能を持つ。またメタAIを通じて
ユーザを認識する。
g
メタ・ゲームエンジン
ゲームエンジン
ゲーム
ゲーム
開発者
現実空間
• メタゲームエンジン 開発者、開発環境、開発過程
• ゲームエンジン ゲームの枠
• ゲーム ゲームの中身
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
1 開発者とその行動を認識する
2 開発者へゲームの開発状況を可視化して知らせる
3 開発者のアクションを受け付けて実行する
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
1 開発者とその行動を認識する
2 開発者へゲームの開発状況を可視化して知らせる
3 開発者のアクションを受け付けて実行する
最終的なゲームの形成へ向けてデータ、プログラム、さらに
それらを認識する知識表現の三種類をメンテナンスする。
オントロジー(知識表現の一つ)
• 概念体系
オントロジーをゲームエンジンとゲームに埋め込む
埋め込めるような仕組みをゲームエンジンに導入する
オントロジーはゲームに骨格を入れること
骨格があるから、AIが理解できるようになる
魔法
回復・補助魔法 攻撃魔法 時間魔法
蘇生
魔法
回復
魔法
状態変
化魔法
水系
魔法
水系
魔法
雷系
魔法
リ
ア
ラ
イ
ブ
ケ
ホ
イ
ル
ゲ
ケ
ホ
イ
ル
デ
ポ
イ
ゾ
フ
ァ
イ
ラ
ル
ウ
オ
ラ
ル
サ
ン
ダ
ル
ク
ロ
ノ
リ
ア
ス
ト
ッ
プ
ゲ
フ
ァ
イ
ラ
ル
24 6 12 7 9 4 8 5 20 12
消費魔法力
魔法
回復・補助魔法 攻撃魔法 時間魔法
蘇生
魔法
回復
魔法
状態変
化魔法
水系
魔法
水系
魔法
雷系
魔法
リ
ア
ラ
イ
ブ
ケ
ホ
イ
ル
ゲ
ケ
ホ
イ
ル
デ
ポ
イ
ゾ
フ
ァ
イ
ラ
ル
ウ
オ
ラ
ル
サ
ン
ダ
ル
ク
ロ
ノ
リ
ア
ス
ト
ッ
プ
ゲ
フ
ァ
イ
ラ
ル
24 6 12 7 9 4 8 5 20 12
消費魔法力魔法のオントロ
ジ(概念体系)
魔法
回復・補助魔法 攻撃魔法 時間魔法
蘇生
魔法
回復
魔法
状態変
化魔法
水系
魔法
水系
魔法
雷系
魔法
リ
ア
ラ
イ
ブ
ケ
ホ
イ
ル
ゲ
ケ
ホ
イ
ル
デ
ポ
イ
ゾ
フ
ァ
イ
ラ
ル
ウ
オ
ラ
ル
サ
ン
ダ
ル
ク
ロ
ノ
リ
ア
ス
ト
ッ
プ
ゲ
フ
ァ
イ
ラ
ル
24 6 12 7 9 4 8 5 20 12
消費魔法力魔法のオントロ
ジ(概念体系)
7 27 2 7 1 55 7 13 32 15
魔法
回復・補助魔法 攻撃魔法 時間魔法
蘇生
魔法
回復
魔法
状態変
化魔法
水系
魔法
水系
魔法
雷系
魔法
リ
ア
ラ
イ
ブ
ケ
ホ
イ
ル
ゲ
ケ
ホ
イ
ル
デ
ポ
イ
ゾ
フ
ァ
イ
ラ
ル
ウ
オ
ラ
ル
サ
ン
ダ
ル
ク
ロ
ノ
リ
ア
ス
ト
ッ
プ
ゲ
フ
ァ
イ
ラ
ル
24 6 12 7 9 4 8 5 20 12
消費魔法力魔法のオントロ
ジ(概念体系)
7 27 2 7 1 55 7 13 32 15
使用回数
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
ビジュアリゼー
ション
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
知識表現知識表現上の
ゲームログ
ビジュアリゼー
ション
開発者の
知識表現
ビジュアリゼー
ション
g
メタ・ゲームエンジン
ゲームエンジン
ゲームゲーム
開発者
現実空間
Mモジュール Dモジュール
実行
結果
実行物理的に実行
結果
可視化
開発の
知識表現
ゲーム認識
のための
知識表現
開発の
ゲーム認識
知識表現知識表現上の
ゲームログ
ビジュアリゼー
ション
開発者の
知識表現
ビジュアリゼー
ション
EXPOSE
現在の実装 ~ これからの予定
ゲームループから別のプログラムから読み出している(現段階~夏)
知識表現の拡充
実行ファイルとして分ける (ダイナミックに監視)
ビジュアリゼーション