Upload
decode-2017
View
1.109
Download
1
Embed Size (px)
Citation preview
ゲーム キャラクターのための人工知能と社会への応用 - FINAL FANTASY XV を事例として -
Microsoft Conference de:code 2017
株式会社スクウェア・エニックス
三宅 陽一郎 FFXV リードAIアーキテクト
2017.5.23 @The Prince Park Tower Tokyo
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• Chrome Hounds (SEGA, Fromsoftware, 2006) • Demons’ Souls (SIE, Fromsoftware, 2009) • ぽかぽかアイルー村(CAPCOM、Fromsoftware, 2010) • Orgarythm (AQUIRE, NEILO, 2012) • ARMORED CORE V (Fromsoftware, 2012) • FINAL FANTASY XIV (SQUARE ENIX, 2010-2017) • FINAL FANTASY XV (SQUARE ENIX, 2016)
Works (2006-2016)
AI for Game Titles
Books
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
FINAL FANTASY XV AI Teams • 株式会社スクウェア・エニックス
• 三宅 陽一郎
(AI Graph)白神 陽嗣 、横山 貴規、下川 和也
(モンスターAI)並木 幸介、小松 智希、
(アニメーション)今村 紀之
(ナビゲーションAI)Fabien Gravot、Hendrik Skubch、
Ingimar Holm Gudmundsson、Matthew W. Johnson
(仲間AI、メタAI)Prasertvithyakarn Prasert,上段 達弘
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ(参考文献)
• FINAL FANTASY XV におけるキャラクターAIの意思決定システム
• FINAL FANTASY XV -EPISODE DUSCAE- のアニメーション ~接地感向上のためのとりくみ~
SQUARE ENIX PUBLICATIONS
• http://www.jp.square-enix.com/tech/publications.html
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
参考文献
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」 (17ページ) (人工知能学会誌、2017年 3月 Vol.32 No.2) ※PDFをダウンロードできます。 http://id.nii.ac.jp/1004/00008567/
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
FINAL FANTASY XV とは
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• リアリティに基づいた
ファンタジー
• RPG
• 車(旅)、仲間、自然
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
産業革命
情報革命
ネット革命
知能革命
機械化・自動化(オートメーション化)
電子情報化
オンライン化
知能化
第二次産業革命
電動化
現代は「知能化」の時代に 入りつつある。
ゲーム全体の知能化
ゲーム・ソフトウェア 知能化された
ゲーム・ソフトウェア
ゲームも知能化の時代を迎えようとしている。 では「ゲームの知能化」とはどういうことだろうか? それを見ていこう。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ゲーム全体の知能化
ゲーム・ソフトウェア 知能化された
ゲーム・ソフトウェア
かつてゲームでは人工知能は独立した部分ではなく、 ゲームシステムの中に含まれていた。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AIの分化
ゲームシステム
メタAI
キャラクターAI ナビゲーションAI
3つのAIシステムは序々に分化して独立して行った。 では、今度はナビゲーションAIについてさらに詳しく見てみよう。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールド
3つのAIの連携の例
ナビゲーションAI
メタAI
キャラクターAI
状況を監視し、キーとなる役割を適切なタイミングでエージェントに指示する。
自律的な判断。 仲間同士の協調
地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する
Support
エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• FINAL FANTASY XV とは?
• ゲームの知能化
• Luminous AI の全体設計
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
Luminous Studio
• Luminous AI Luminous Studio(スクウェア・エニックスのオリジナル
エンジン)のAI部分のことを指す。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Game Engine
• ゲームエンジン
= 社内の全ての技術を結晶させる場所
• Luminous AI
= 社内のAI技術を結晶させる場所
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
レベル
ナビゲーションAI
メタAI
キャラクターAI
エージェントを動的に配置 レベル状況を監視 キャラクターに指示 ゲームの流れを作る
自律的な判断 仲間同士の協調 時にチームAIとなる
メタAI, キャラクターAIの為に レベルの認識のためのデータを準備 オブジェクト表現を管理 ナビゲーション・データの管理 パス検索 / 位置解析
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
レベル
Luminous AI Navigation
メタAI
Luminous AI Graph
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ゲームの要件に沿って ゲームの流れを作る
社内のあらゆる ナビゲーションを
集積させ組み合わせる場所
社内のあらゆる 意思決定技術を
集積させ組み合わせる場所
レベル
Luminous AI Navigation
メタAI
Luminous AI Graph
Support
敵キャラクタ-
プレイヤー
頭脳として機能
情報獲得
コントロール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Tool
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
キャラクターの頭の中
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
キャラクターの頭の中を、 GUIツールによってプランナ-、デザイナーがグラフで作る。
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
キャラクターの頭の中を、 GUIツールによってプランナ-、デザイナーがグラフで作る。 エンジニアと非エンジニアの仕事をツールで分化する。
Luminous AI Tool
Luminous AI Runtime (In Game)
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
Luminous AI Tool
イン・ゲーム
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous AI Graph Tool
Luminous Navigation Tool
Luminous AI Graph Runtime
Luminous Navigation Runtime
Luminous
AI Graph
Luminous
Navigation
Luminous AI Tool
イン・ゲーム
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous
AI Graph
Luminous
Navigation
ステート(状態)ベース思考
ゴール(目標)ベース思考 ルール(規則)ベース思考
ビヘイビア(振る舞い)ベース思考 シミュレーションベース思考
ユーティリティ(効用)ベース 思考
タスク(仕事)ベース 思考 知識表現
ナビゲーション(パス検索) (Navigation)
ステアリング(回避・挙動) (Steering System)
戦術位置検索システム(PQS, Point Query System)
ヒートマップシステム(Heat-map System)
学習・進化
知識表現・世界表現
隠れるポイントシステム
ターゲット選択
3次元移動制御
破壊対応
記憶 センサー
ブラックボード
Luminous AI Tool
イン・ゲーム
Luminous AI アーキテクチャ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous
AI Graph
Luminous
Navigation
ステート(状態)ベース思考
ゴール(目標)ベース思考 ルール(規則)ベース思考
ビヘイビア(振る舞い)ベース思考 シミュレーションベース思考
ユーティリティ(効用)ベース 思考
タスク(仕事)ベース 思考
記憶
知識表現
ブラックボード
ナビゲーション(パス検索) (Navigation)
ステアリング(回避・挙動) (Steering System)
戦術位置検索システム(PQS, Point Query System)
ヒートマップシステム(Heat-map System)
学習・進化
知識表現・世界表現
隠れるポイントシステム
ターゲット選択
3次元移動制御
破壊対応
センサー
Luminous AI Graph はAI技術を結ぶ AI Graph をあらゆるAI技術を結ぶ中継点とする
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AI Graph
PQS
パス検索
Heat-map
Animation
Target Selection
Steering
Luminous AI Graph はAI技術を結ぶ AI Graph をあらゆるAI技術を結ぶ中継点とする
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AI Graph
PQS
パス検索
Heat-map
Animation
Target Selection
Steering
ゲームのあらゆる意思決定の要件をツール上で構築できる。
Luminous AI Tool
イン・ゲーム
ステートマシンとビヘイビアツリー
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous
AI Graph
Luminous
Navigation
ステート(状態)ベース思考
ゴール(目標)ベース思考 ルール(規則)ベース思考
ビヘイビア(振る舞い)ベース思考 シミュレーションベース思考
ユーティリティ(効用)ベース 思考
タスク(仕事)ベース 思考 知識表現
ナビゲーション(パス検索) (Navigation)
ステアリング(回避・挙動) (Steering System)
戦術位置検索システム(PQS, Point Query System)
ヒートマップシステム(Heat-map System)
学習・進化
知識表現・世界表現
隠れるポイントシステム
ターゲット選択
3次元移動制御
破壊対応
記憶 センサー
ブラックボード
環境世界
認識の 形成
記憶
意思の 決定
身体 制御
エフェクター・身体
運動の 構成
センサー・身体
意思決定 モジュール
意思決定 モジュール
意思決定 モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報 統合
運動 統合
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステート(状態)ベース思考
ビヘイビア(振る舞い)ベース思考
戦術位置検索システム(PQS)
ナビゲーション(パス検索)
ステアリング(回避・挙動
ヒートマップシステム
記憶 ブラックボード
Luminous AI Tool
イン・ゲーム
これからの Luminous AI の未来
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Luminous
AI Graph
Luminous
Navigation
ステート(状態)ベース思考
ゴール(目標)ベース思考 ルール(規則)ベース思考
ビヘイビア(振る舞い)ベース思考 シミュレーションベース思考
ユーティリティ(効用)ベース 思考
タスク(仕事)ベース 思考 知識表現
ナビゲーション(パス検索) (Navigation)
ステアリング(回避・挙動) (Steering System)
戦術位置検索システム(PQS, Point Query System)
ヒートマップシステム(Heat-map System)
学習・進化
知識表現・世界表現
隠れるポイントシステム
ターゲット選択
3次元移動制御
破壊対応
記憶 センサー
ブラックボード
フィールド
3つのAIの連携の例
ナビゲーションAI
メタAI
キャラクターAI
状況を監視し、キーとなる役割を適切なタイミングでエージェントに指示する。
自律的な判断。 仲間同士の協調
地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する
Support
エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
メタAI
メタAIの機能 ピンチの主人公(左下)にメタAIが仲間(右)にピンチを知らせて 助けるように命令する
メタAI
• 仲間同士で協調して動作させたい
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
仲間全体を統括管理するAI(メタAI)からの指示で行動を切り替える
メタAI • 戦闘の調整
• 各キャラクターは普段は「AI グラフ」で動いているが、インタラプトする。
• プレイヤーと各仲間の状態を監視して、プレイヤーがピンチの時には、一番近くて都合が良い(別の敵に攻撃している最中でないなど)仲間を選んで、最優先で駆けつけるように指令を出す。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
メタAI
戦闘中メタAIが仲間に与える指示としては、
• プレイヤーや仲間のピンチを助けよ • プレイヤーが敵に拘束されているから助けよ • プレイヤーが逃げているから追従せよ • 作戦が発動したのでそれに合わせた行動をせよ
• など。このような指令によって、戦闘を引き締めて、戦闘全体に緩急を与える。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
フィールド
3つのAIの連携の例
ナビゲーションAI
メタAI
キャラクターAI
状況を監視し、キーとなる役割を適切なタイミングでエージェントに指示する。
自律的な判断。 仲間同士の協調
地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する
Support
エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
AIキャラクタ制作に求められたこと
• 合理的で説得力のある行動選択
• 多彩でリアリティのある挙動
• イベント演出とのシームレスな融合
• 多くの種類のキャラクタを作れる量産性
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
柔軟な意思決定ツールが必要!
キャラクター全体のアーキテクチャ
身体の状態を大きく定義 - 「走っている」「ジャンプしている」 「梯子を登っている」のか、などをステートで管理 - 状態ごとに行える行動を制限
- 反射的に行った行動(ダメージリアクションなど)による身体の状態変化を、知能に知らせる
抽象的な意思決定を行う
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
キャラクター全体のアーキテクチャ
身体の状態を大きく定義 - 「走っている」「ジャンプしている」 「梯子を登っている」のか、などをステートで管理 - 状態ごとに行える行動を制限
- 反射的に行った行動(ダメージリアクションなど)による身体の状態変化を、知能に知らせる
抽象的な意思決定を行う
アニメーションデータの再生を管理します。 アニメーション同士のブレンドをアーティストが調整
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
身体制御との連動
• BodyステートマシンとAI Graphの連携
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AIから直接アニメを再生するのではなく、身体制御層(Body)のステートマシンを介してアニメとやりとりする
射撃処理、ダメージ処理などは、Body FSMに組み込んでおいた制御をAIから呼び出す
こうすることで、思考と身体を役割分担し、
AIの肥大化を回避
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
環境
人工知能とは?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
人工知能=人工的な存在(=身体)を環境の中で活動させる
知能
身体 (内部構造)
環境
人工知能とは?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
身体
人工知能=人工的な存在(=身体)を環境の中で活動させる
入力(センサー) 行動(アウトプット)
知能
知能の内部世界
環境世界
エフェクター・身体
センサー・身体
エージェント・アーキテクチャ =世界と知能を分けて考える。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
環境世界
認識の 形成
記憶
意思の 決定
センサー・身体
意思決定 モジュール
意思決定 モジュール
意思決定 モジュール
記憶体
情報処理過程
情報 統合
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
記憶
環境世界
認識の 形成
記憶
意思の 決定
身体 制御
エフェクター・身体
運動の 構成
センサー・身体
意思決定 モジュール
意思決定 モジュール
意思決定 モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報 統合
運動 統合
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
記憶
知能の世界
環境世界
認識の 形成
記憶
意思の 決定
身体 制御
エフェクター・身体
運動の 構成
センサー・身体
意思決定 モジュール
意思決定 モジュール
意思決定 モジュール
記憶体
情報処理過程 運動創出過程
身体部分
情報 統合
運動 統合
エージェント・アーキテクチャ =世界と知能を分けて考える。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
知能の世界
環境世界
認識の 形成
記憶
意思の 決定
身体 制御
エフェクター・身体
運動の 構成
センサー・身体
意思決定 モジュール
意思決定 モジュール
意思決定 モジュール
対象・ 現象
情報の流れ(インフォメーション・フロー)
影響を与える 影響を受ける
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
記憶
意思決定モデル
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステート(状態)ベースAI
ゴール(目標)ベース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
意思決定
Simulation-based AI
参考文献 三宅陽一郎 「ディジタルゲームにおける 人工知能技術の応用の現在」 (19ページ) (人工知能学会誌、2015) ※PDFをダウンロードできます。 http://id.nii.ac.jp/1004/00000517/
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
意思決定モデル
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ゴール(目標)ベース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
意思決定
Simulation-based AI
ステート(状態)ベースAI
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なうち、 最も優先度の高いノードを実行する
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なノードを 順番に実行する。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
この層の中で実行可能なノードを ランダムに一つ実行する。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
root
バトル
撤退
休憩
攻撃
隠れる
逃走する
足止めする
立ち止まる
回復する
トラップ
眠る
回復薬を飲む
弓を放つ
剣を振る
森に潜む
穴を掘る
建物に隠れる
攻撃魔法
氷系
風系 プライオリティ
プライオリティ
シークエンス
シークエンス
ランダム
プライオリティ ランダム
プライオリティ
ランダム
ビヘイビア (末端ノード)
層
層
選択ルール
選択ルール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
意思決定モデル
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ゴール(目標)ベース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
意思決定
Simulation-based AI
ステート(状態)ベースAI
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
ステートベース
ステート 自分の行動を記述する。
ステート ステート 遷移条件
世界と自己の変化を記述する。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステート・マシン
ステート
ステート ステート
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステート・マシン
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。
待機
攻撃 パトロール
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
警戒
追跡
追いかける
攻撃する
威嚇攻撃
味方に指示
出口をかためる
味方を呼ぶ
味方がいない かつ 戦闘範囲外
味方と合流
味方と合流
味方がいる
見失う
見える
見失う 見つける
巡回する
10秒経つ 物音を 聴く
応答がきた
階層型ステート・マシン
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシンとビヘイビアツリー
• ステートマシン=堅実な制御。
• ビヘイビアツリー=適応的な行動の生成
両方の長所を生かしたい。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
AI Graph Editorの実装
• ツール設計における4つの課題
• ゲーム組み込みで求められた機能要件
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AI Graph Editorの実装
• ツール設計における4つの課題
• ゲーム組み込みで求められた機能要件
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ツール設計における4つの課題
1. どのように、ビヘイビアツリーとステートマシンを組み合わせるか?
2. どのように、AIデータの拡張性を確保するか?
3. どのように、ゲーム側とスムーズに情報をやり取りするか?
4. どのように、コピー&ペーストをせずにAIデータを量産するか?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
課題その1
• どのように、ビヘイビアツリーとステートマシンを組み合わせるか?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
グラフ構造のためのノードと、処理の中身を行うノードを分離した。
⇒「ハイブリッド型ノードフォーマット」
ハイブリッド型ノードフォーマット
• 構造の違う2つのグラフを組み合わせて使いたい
• 処理の中身は共有したい
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
待機
移動
たたかう
ビヘイビアツリー
たたかう
移動
待機
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
待機 移動 たたかう
グラフ構造と処理の中身を分離する。
処理の中身
グラフ構造
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ビヘイビアツリー
移動 たたかう
グラフ構造
処理の中身
グラフ構造と処理の中身を分離する。
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
待機 移動 たたかう
ビヘイビアツリー
移動 たたかう
共有できる
処理の中身
処理の中身
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
ビヘイビアツリー 処理の中身がグラフ構造に
なっても良い。
待機
移動
たたかう
移動
攻撃
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
ビヘイビアツリー
ステートマシン 構造の異なるグラフシステムを組み合わせられる
処理の中身がグラフ構造に
なっても良い。
待機
移動
たたかう
移動
攻撃
ハイブリッド型ノードフォーマット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシン
待機 移動
ステートマシン
移動
ビヘイビアツリー
・組み合わせられる
・共有できる
攻撃
たたかう
課題その2
• どのように、AIデータの拡張性を確保するか?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
階層型グラフシステムを導入し、データを適切な粒度で階層化できるようにした。
⇒「階層化によるスケーラビリティ」
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• 組み合わせ爆発によるデータの肥大化は避けたい
• ゲーム要件の増減に速やかに対応したい
階層化によるスケーラビリティ
トレイ単位で階層化(Hierarchy)する仕組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
+データを適切な粒度に分ける
• 組み合わせ爆発によるデータの肥大化は避けたい
• ゲーム要件の増減に速やかに対応したい
階層化によるスケーラビリティ
トレイ単位で階層化(Hierarchy)する仕組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
+データを適切な粒度に分ける
不要な組み合わせ爆発を減らしたり、簡単に状態が追加できるため、拡張性が高くなる。
• 組み合わせ爆発によるデータの肥大化は避けたい
• ゲーム要件の増減に速やかに対応したい
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
攻撃のステート群
攻撃のステートを追加するたびに、各状態への遷移を追加
状態が増えるほど、相互の遷移が増加していく…
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
下位階層にステートを追加しても、上位階層は変化なし
階層化
追加する遷移も
一つだけ
実行中
実行中
第一階層
第二階層
第三階層
実行中
第一階層で状態遷移が発生すると…
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
実行中
第一階層
第二階層
第三階層
終了
終了 終了
下位階層がすべて終了して状態遷移
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
実行中
第一階層
第二階層
第三階層
終了
終了 終了
下位階層がすべて終了して状態遷移
適切な粒度で階層化すると、不要な状態遷移の記述を減らせる (組み合わせ爆発を減らせる)
階層化によるスケーラビリティ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
課題その3
• どのように、ゲーム側とスムーズに情報をやり取りするか?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AIの情報と、ゲームの情報を、柔軟に受け渡せる領域を用意した。
⇒「ブラックボード」
ブラックボード
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ローカルブラックボード
グローバルブラックボード
AIグラフの中、または、トレイの中だけで使える変数
ゲーム内共有変数や、キャラクターのステータスなど
課題その4
• どのように、コピー&ペーストをせずにAIデータを量産するか?
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
トレイを「アセット化」して、処理を共有できるようにした。
トレイを「オーバーライド」して、構造を共有できるようにした。
まとめ
• ハイブリッド型ノードフォーマットによって、構造の異なるグラフシステムを組み合わせて使えるようにした。
• 階層化データ構造によって、データの拡張性を確保できるようにした。
• ブラックボードによって、シンプルにゲームとツールの情報をやり取りできるようにした。
• アセット化とオーバーライドによって、コピー&ペーストせずに、AIデータを量産できるようにした。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
AI Graph Editorの実装
• ツール設計における4つの課題
• ゲーム組み込みで求められた機能要件
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ゲーム組み込みで求められた機能要件
1. ステートやビヘイビアの実行状況、パラメータの値や遷移ログがしっかりと確認できるようにしたい。
2. AIキャラクタにシームレスでイベント演出させたい。
3. より賢いAIにするため、行動している最中に別の行動をしたり、常に別のことを考え続けさせたい。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
機能要件その1
• ステートやビヘイビアの実行状況、パラメータの値や遷移ログがしっかりと確認できるようにしたい。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ツール上で動作を確認できる、「ビジュアルノードデバッガ」と、詳細なログなどを確認できる、「インゲームデバッグウィンドウ」を実装した。
ビジュアルデバッグ機能
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ビジュアルノードデバッガによる動作状況の確認
インゲームデバッグウィンドウによる詳細ログの確認
機能要件その2
• AIキャラクタにシームレスでイベント演出させたい。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
トレイを外部のシステムから起動できるようにして、自由にロジックの割り込み実行をできるようにした。
⇒「トレイの割り込み実行」
トレイの割り込み実行
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ブラックボード経由でパラメータを渡すこともできる。
簡単な行動を記述したトレイを用意する。
(別ファイルでも可)
終了すると、自動的に通常AIに戻る。
トレイの割り込み実行
モンスターが勢いよく走って登場する演出の後、プレイヤーに近づいたら通常AIに戻る様子
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
機能要件その3
• より賢いAIにするため、行動している最中に別の行動をしたり、常に別のことを考え続けさせたい。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ステートマシンでも、ビヘイビアツリーでも、「並列思考」を行える仕組みを導入した。
並列思考 • ステートマシンの場合
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
[Parallel Startノード]
トレイの中に複数のステートマシンを実行させる。
並列思考 • ビヘイビアツリーの場合
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
[Parallelノード]
どちらか一方が終了するまで、動作を継続する。
まとめ
• ビジュアルデバッグ機能によって、動作状況をしっかりと確認できるようにした。
• トレイの割り込み実行により、外部からシームレスにAIキャラクタに演出させられるようにした。
• 並列思考システムによって、より賢いAI表現をできるようにした。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
フィールド
3つのAIの連携の例
ナビゲーションAI
メタAI
キャラクターAI
状況を監視し、キーとなる役割を適切なタイミングでエージェントに指示する。
自律的な判断。 仲間同士の協調
地形を解析する 目的に応じた点を見つけ出す 目的地までのパスを計算する
Support
エージェントが自律的に戦闘・協調しつつ、ナビゲーションAIが 戦術的ポイントを教え、メタAIは、全体の戦闘の流れを作る。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ネットワーク上のグラフ検索法
ダイクストラ法
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
5 4
6 3
7 2 3
B C
3
G
D E
3
2 2 4
L
3
3
5
5 J
F
出発点(S)を中心に、最も短い経路 を形成して行く。Gにたどり着いたら終。
各ノードの評価距離=出発点からの経路
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ネットワーク上のグラフ検索法
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
5 4
6 3
7 2 3
B C
3
3
2 2 4 3
5
5
出発点(S)を中心に、 そのノードまでの 最も短い経路を 形成して行く。
Gにたどり着いたら終了。
ゴール地点がわかっている場合、現在のノードとゴール との推定距離(ヒューリスティック距離)を想定して、 トータル距離を取り、それが最少のノードを探索して行く
各ノードの評価距離=出発点からの経路+ヒューリスティック距離
ヒューリスティック距離 (普通ユークリッド距離を取る)
3+14.2 3+13.8
G H
3
5+10.5 6+8.4
ナビゲーション・メッシュQA
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• 全マップのナイトリービルド
• キャラクターの大きさごとの、 ナビゲーションメッシュ
• 開発内Webに一覧チェック機能
• 差分表示機能
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
戦略位置検出システム
• ゲーム内の地形を、
• ゲーム内でリアルタイムで把握して、
• 自分の能力に合わせて、
• 最も適した位置を発見する
システム
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
戦略位置検出システムの歴史
• Tactical Position Picking
Killzone (2005, Guerrilla)で実装される。
• TPS (Tactical Point System)
CRYENGINE (2010, CRYTEK)でツール化・システム化
• EQS(Environment Query System)
UNREAL ENGINE 4 (2014, Epic games)でツール化・システム化
• PQS (Point Query System)
SQUARE ENIX のFFXVの開発で2014年に開発。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
戦略位置検出システムの原理
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
ポイント生成(Generation) 対象とする領域にポイント群を自動配置する。(例)グリッド状、同心円状など。
フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(1)を指定して、削除して行く。
フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(2)を指定して、削除して行く。
...
フィルタリング(Filtering) 生成したポイントから、目的に合わない条件(N)を指定して、削除して行く。
評価(Evaluation) 残ったポイント群を、評価式によってスコアをつけて、最高スコアの点を選ぶ。
PQS (Point Query System) 弓兵(AI)が次の目的地を発見したい。
(i) ゲーム現状
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
PQS (Point Query System) 弓兵(AI)が次の目的地を発見したい。
(i) ゲーム現状
(ii) AIを中心に点をグリッド状に 生成し配置。(Generation)
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
PQS (Point Query System) 弓兵(AI)が次の目的地を発見したい。
(i) ゲーム現状
(ii) AIを中心に点をグリッド状に 生成し配置。(Generation)
(iii) 足場の悪い点を除く(Filtering) (iv) 敵の近くのポイント、弓が届かな
いポイントを除く 。(Filtering)
(v) 味方の近くを除く (Filtering)
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
PQS (Point Query System) 弓兵(AI)が次の目的地を発見したい。
(i) ゲーム現状
(ii) AIを中心に点をグリッド状に 生成し配置。(Generation)
(iii) 足場の悪い点を除く(Filtering) (iv) 敵の近くのポイント、弓が届かな
いポイントを除く 。(Filtering)
(v) 味方の近くを除く (Filtering)
(vi) 最も高い位置にあるポイントを選択する。
このようにして、自分の最適な戦術位置を自分自身で発見する。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
PQS移動とステアリング
• 位置検索システム PQS(Point Query System)
位置クエリーデータで移動先地点を選択して移動する PQSデータだけで様々な移動を作成可能
• ステアリング 動的回避が組み込まれたパスフォローシステム
生物的な回避挙動を実現
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
PQS移動とステアリング
• PQSデータ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
複数のフィルタを組み合わせてPQSデータを作る 例. 角度フィルタ = 自分の前方30° 距離フィルタ = 対象から10m以上遠くで、出来るだけ近く ⇒ 相手の周囲をぐるぐる回る移動データが完成
例. PQS距離フィルタとそのプロパティ
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
攻撃モーション解析
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• 攻撃モーションの解析
攻撃モーション解析システムを使って、 アニメーション、攻撃コリジョンから自動的に 攻撃が到達する距離、角度を計算する この距離、角度をルールAIや AI Graphから利用 今までは企画が手調整していた部分を、 システムで半自動化することで工数を短縮
移動モーション解析
• 移動モーションの解析
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
移動モーション自動解析システムを使って、 キャラクターの旋回性能、停止性能などを チャート化 チャートから問題のある アニメーションデータを発見し、修正する
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
仲間に求められたこと 1. イベント演出しているときも、並列思考などの通常AIを動作させたい
2. 仲間同士で協調して動作させたい(メタAI)
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
仲間要件 • イベント演出しているときも、並列思考などの通常AIを動作させたい
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
通常AIの中に、演出用のプリセットAIを埋め込んでおき、外部からのメッセージによってAIを切り替えるようにした。
ニフル兵
• 機械的な合理性の表現
–今何ができるのか?
–今何が一番合理的な行動か?
–身体制御との連動
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
モンスター
• リアルな挙動を実現する仕組み
1. 視覚センサとターゲットサーチ
2. PQS移動、ステアリング
• 大量生産するための仕組み
3. ルールAIシステム 4. AI Graphオーバーライド 5. モーション解析の取り組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
モンスター
• リアルな挙動を実現する仕組み
1. 視覚センサとターゲットサーチ
2. PQS移動、ステアリング
• 大量生産するための仕組み
3. ルールAIシステム 4. AI Graphオーバーライド 5. モーション解析の取り組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
1. 視覚センサとターゲットサーチ
AIが本当に認識しているターゲットに対して行動する仕組み
• 視覚センサ AIの視覚をシミュレートして、 AIから今何が見えているか計算する
• ターゲットサーチ 今認識しているターゲットのうち、どれが最も優先すべきターゲットか判別する
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
モンスター
• リアルな挙動を実現する仕組み
1. 視覚センサとターゲットサーチ
2. PQS移動、ステアリング
• 大量生産するための仕組み
3. ルールAIシステム 4. AI Graphオーバーライド 5. モーション解析の取り組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
3. ルールAIシステム
• 条件判定してマッチした行動を実行する モンスター用のルールAI
• Luminous以前から使われていたAIシステム
• AI Graphと共存する形でリファイン
• 自由度は一部制限されるが、データの簡潔さ、メンテナンスのし易さがメリット
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
3. ルールAIシステム
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• ルールAI処理フロー
AI Graph 基本ロジック実行 ルール実行
AI Graph 行動テンプレート実行
3. ルールAIシステム
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• ルールAI処理例
たたかう 接近して攻撃
接近移動する 行動テンプレート
モンスター
• リアルな挙動を実現する仕組み
1. 視覚センサとターゲットサーチ
2. PQS移動、ステアリング
• 大量生産するための仕組み
3. ルールAIシステム 4. AI Graphオーバーライド 5. モーション解析の取り組み
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
4. AI Graphオーバーライド
• ベースAIデータを派生AIデータで上書きする仕組み
• C++のクラス継承を、データでも出来るようにしたもの
• ベースロジックは共通化しつつ、 一部のロジックだけモンスター個別に上書きする
• 共通化することでデータの二重化を回避し、 無駄なデータ量を削減
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
古典的なスマートオブジェクト
• スマートオブジェクト: 情報を発する
• インタラクションに必要なデータを持つ: – アニメーション – AI ステートマシン – サウンド – など
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Hunger: -10 Provides: Food
NPCに求められたこと
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• 会話や食事など、社会的な行動(生活行動)を行う
• 多くのNPCを同時に配置しなければならない
社会行動に特化した、軽量スクリプトシステムと、AI Graph Editorをハイブリッドで動作させる
スマートロケーション:2つの椅子と机
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
インタラクション・タイプ: 休める
Has: 2 Chairs, 1 Table
Multiple Smart Objects
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
情報提供: 「休めます」
情報提供: 表面
情報提供: 「休めます」
スマートオブジェクトから スマートロケーションへ
• スマートオブジェクトを一般化Generalize SmartObjects to SmartLocations
– 「椅子」をスマートにするのではなく
– 透明なオブジェクトが「椅子」と「テーブル」を持ち、かつ
– スマートである。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Scripts
Emitters
スクリプト – 基礎
• STRIPS (Stanford Research Institute Problem Solver)
• Tuple Space (対象空間を表現)
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
スクリプト – 基礎
• STRIPS
–プランニングのためのシンボル言語
– GOAP の基礎でもある
–現在の状態、アクション、ゴールからなる。
– 1971年
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
シンボルによる連鎖プランニング
ターゲットAが
死んでいる
ターゲットAが
死んでいる
攻撃
武器が装填
されている
武器が装填
されている
装填する
武器を
持っている 武器を
持っている
武器を拾う
条件なし
プラナー
プランニング
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
スクリプト – 基礎
• タプルスペース – ブラックボードの一種
– 1985年
– 一つタプルは、一つ操作と結びついている。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
スクリプト – 基礎
• タプルスペース
– ここでは、
–ゲーム内のそれぞれのオブジェクトと、それに対する複数の操作の集合を指します。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
全体設計
• Tuple Space 上に複数のルールがある。
• それぞれのNPC がルールを一つ一つチェック • それぞれのルールはアクションを引き起こし、Tuple Space に変化を及ぼす.
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Tuple Space ルール セット
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X)
• アクションはステートマシンかビヘイビアツリーに対応します
• ブロッキング: NPCはルールが実行されている時は、
他の制御を受け付けません。
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: chair(X)
スマート・ロケーションかそのオブジェクトについてプッシュされる情報です。
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me)
距離についていくつかのオプションの変数を記入します。
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me)
距離についていくつかのオプションの変数を記入します。
このシンボルはロード時に 解決されます。
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y)
予約 – タプルスペースで、変数が予約されていないかをチェック
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y)
距離についていくつかのオプションの変数を記入します。
新しいシンボルを導入しました!
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y) Add: reserved(X,me)
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y) Add: reserved(X,me) Add-Deferred: sitting(me) & timeToGetUp(now+rand(10,15)*minute,me)
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y) Add: reserved(X,me) Add-Deferred: sitting(me) & timeToGetUp(now+rand(10,15)*minute,me)
アクションが終わったあとに、
追加される情報
• NPCの身体状態を記述する
• 実行するタイムスタンプを設定する
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y) Add: reserved(X,me) Add-Deferred: sitting(me) & timeToGetUp(now+rand(10,15)*minute,me)
No term manipulation: この関数は直ちに評価されます
座る
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 1: Action: sit(X) Pre: closestOf(chair,X,me) & !reserved(X,Y) Add: reserved(X,me) Add-Deferred: sitting(me) & timeToGetUp(now+rand(10,15)*minute,me) Next State: sitting
内部状態: 糖衣構文によって前提条件文はコンパクトになっています。
話す
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 2: State: sitting Action: – Pre: !talker(X) & any(Y) & sitting(Y) Add: talker(Y)
誰も話していない状態。座っているNPCは、ランダムに、同じく
座っているNPCに話しかけます。
話す
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 3: State: sitting Action: talk(X) Pre: talker(me) & anyOther(X) & sitting(X) Del-Deferred: talker(me)
ルールによって選択された座っているキャラクターに話しかける
話す
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Rule 4: State: sitting Action: listen(X) Pre: talker(X) & X != me
ルールによって選択された座っているキャラクターに話しかける
エディタ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
The complete script for the conversation example:
• ルールを一行に書く 簡潔な表現
• デザイナーは使い勝手が良い。
• XMLで読み書きしています。
• 拡張性がる。
エディタ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
The complete script for the conversation example:
• With some Python
コンパイラ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
XML Parser ANTLR Formula
Parser
XML Input
Intermediate Model
Validation
Binary Debug Data
Vocabulary
ランタイムデバッガ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Debug View:
• Pausing
• Stepping
• Tuple Space Inspection
FFXV: Culture
• インタラクションによる表現
• 適当的なスクリプトのよるシンプルな工程
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
本日のコンテンツ
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
第一章 FINAL FANTASY XV とは?
第二章 ゲームの知能化
第三章 Luminous AI の全体設計
第四章 メタAI
第五章 キャラクターAI
第一節 意思決定
第一項 ビヘイビアツリー入門
第二項 ステートマシン入門
第二節 AI Graph Editor
第六章 ナビゲーションAI
第一節 戦術位置検索
第二節 モーション解析
第七章 ゲーム内への応用事例
第一節 仲間
第二節 ニフル兵
第三節 モンスター
第四節 NPC
第八章 まとめ
セッションまとめ
• 意思決定入門において、最新の意思決定技術を俯瞰した。
• 多様な要件を満たす、オリジナルの意思決定システムのコンセプトを紹介した。
• グラフベースのAIロジック作成ツールにおける仕様と実装に関する工夫点を紹介した。
• 上記のAI技術が、実際にゲーム内でどのように応用されたのかを紹介した。
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
参考文献
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」 (17ページ) (人工知能学会誌、2017年 3月 Vol.32 No.2) ※PDFをダウンロードできます。 http://id.nii.ac.jp/1004/00008567/
ご質問
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
• Twitter: @miyayou
• Facebook: https://www.facebook.com/youichiro.miyake
Credit
• CRYENGINE is a trademark or registered trademark of Crytek GmbH.
• UNREAL ENGINE is a trademark or registered trademark of Epic Games Inc.
• Killzone is a trademark or registered trademark of Sony Computer Entertainment Europe.
• All other trademarks are the property of their respective owners.
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Credit
• Chrome Hounds is a trademark or registered trademark of SEGA and Fromsoftware.
• Demons’ Souls is a trademark or registered trademark of Sony Interactive Entertainment Inc.
• Monster Hunter Diary: Poka Poka Airou Village is a trademark or registered trademark of CAPCOM.
• Orgarythm is a trademark or registered trademark of AQUIRE and NEILO.
• ARMORED CORE V is a trademark or registered trademark of NBGI and Fromsoftware.
• All other trademarks are the property of their respective owners.
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
Chrome Hounds (SEGA, Fromsoftware, 2006)
Demons’ Souls (SIE, Fromsoftware, 2009)
ぽかぽかアイルー村(CAPCOM、Fromsoftware, 2010) Orgarythm (AQUIRE, NEILO, 2012)
ARMORED CORE V (Fromsoftware, 2012)
FINAL FANTASY XIV (SQUARE ENIX, 2010-2017)
FINAL FANTASY XV (SQUARE ENIX, 2016)