268
ゲーム キャラクターのための人工知能と社会への応用 - 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.

[AI10] ゲームキャラクターのための人工知能と社会への応用 ~ FINAL FANTASY XV を事例として ~

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.

FINAL FANTASY XV とは

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

• リアリティに基づいた

ファンタジー

• RPG

• 車(旅)、仲間、自然

仲間、自然、モンスターたち

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

仲間、自然、モンスターたち

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

FINAL FANTASY XV AI Overview

登場する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.

©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 AI の全体設計

LUMINOUS AI のめざすもの

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

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

ゲームのあらゆる意思決定の要件をツール上で構築できる。

方針

単一の意思決定では十分でない。

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

複数の意思決定を組み合わせる。

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

第八章 まとめ

メタAI

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

©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.

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

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.

キャラクター全体のアーキテクチャ 抽象的な意思決定を行う

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

キャラクター全体のアーキテクチャ

身体の状態を大きく定義 - 「走っている」「ジャンプしている」 「梯子を登っている」のか、などをステートで管理 - 状態ごとに行える行動を制限

- 反射的に行った行動(ダメージリアクションなど)による身体の状態変化を、知能に知らせる

抽象的な意思決定を行う

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

キャラクター全体のアーキテクチャ

身体の状態を大きく定義 - 「走っている」「ジャンプしている」 「梯子を登っている」のか、などをステートで管理 - 状態ごとに行える行動を制限

- 反射的に行った行動(ダメージリアクションなど)による身体の状態変化を、知能に知らせる

抽象的な意思決定を行う

アニメーションデータの再生を管理します。 アニメーション同士のブレンドをアーティストが調整

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

AnimGraph

©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

第八章 まとめ

キャラクター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.

環境

身体 (内部構造)

環境

知能とは?

©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.

環境世界

認識の 形成

記憶

意思の 決定

センサー・身体

意思決定 モジュール

意思決定 モジュール

意思決定 モジュール

記憶体

情報処理過程

情報 統合

©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

第八章 まとめ

キャラクターAI:意思決定 ビヘイビアツリー入門

©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.

root

バトル

撤退

休憩

攻撃

隠れる

逃走する

足止めする

立ち止まる

回復する

トラップ

眠る

回復薬を飲む

弓を放つ

剣を振る

森に潜む

穴を掘る

建物に隠れる

攻撃魔法

氷系

風系 プライオリティ

プライオリティ

シークエンス

シークエンス

ランダム

プライオリティ ランダム

プライオリティ

ランダム

ビヘイビア (末端ノード)

選択ルール

選択ルール

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

1. 視覚センサとターゲットサーチ

• AI Graphでターゲットを登録しているところ

©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

第八章 まとめ

キャラクター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.

ステート・マシン

ステートマシン(有限状態マシン)

ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。 ループ構造により、フィードバック構造はない。

待機

攻撃 パトロール

©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.

本日のコンテンツ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

第一章 FINAL FANTASY XV とは?

第二章 ゲームの知能化

第三章 Luminous AI の全体設計

第四章 メタAI

第五章 キャラクターAI

第一節 意思決定

第一項 ビヘイビアツリー入門

第二項 ステートマシン入門

第二節 AI Graph Editor

第六章 ナビゲーションAI

第一節 戦術位置検索

第二節 モーション解析

第七章 ゲーム内への応用事例

第一節 仲間

第二節 ニフル兵

第三節 モンスター

第四節 NPC

第八章 まとめ

キャラクターAI AI Graph Editorの実装

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

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.

ステートマシン

ビヘイビアツリー 処理の中身がグラフ構造に

なっても良い。

待機

移動

たたかう

移動

攻撃

ハイブリッド型ノードフォーマット

©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.

実行中

実行中

第一階層

第二階層

第三階層

実行中

階層化によるスケーラビリティ

©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グラフの中、または、トレイの中だけで使える変数

ゲーム内共有変数や、キャラクターのステータスなど

ブラックボード

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

宣言

遷移条件に利用できる

ブラックボード

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

トレイの開始時に、値をセット

トレイの終了時に値を戻す

ブラックボード

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

トレイやノードにパラメータとしてリンクすることができる

課題その4

• どのように、コピー&ペーストをせずに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.

バトルの実装だけ

専用のものに変更

オーバーライドによる構造の共有

©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ノード]

どちらか一方が終了するまで、動作を継続する。

並列思考

・階層化への応用

©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.

本日のコンテンツ

©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.

ナビゲーションAI

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ネットワーク上のグラフ検索法

ダイクストラ法

M

F

L

B

A

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

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

O

P

D

C

G

S

V

H

Q X

K

N

J

R

T

W

E I

U

Z

Y

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

FFXV ナビゲーション・メッシュ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

FFXV ナビゲーション・メッシュ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ナビゲーション・メッシュQA

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

• 全マップのナイトリービルド

• キャラクターの大きさごとの、 ナビゲーションメッシュ

• 開発内Webに一覧チェック機能

• 差分表示機能

©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

第八章 まとめ

戦術位置検索システム

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

戦略位置検出システム

• ゲーム内の地形を、

• ゲーム内でリアルタイムで把握して、

• 自分の能力に合わせて、

• 最も適した位置を発見する

システム

©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移動、ステアリング

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

PQS移動とステアリング

• 位置検索システム PQS(Point Query System)

位置クエリーデータで移動先地点を選択して移動する PQSデータだけで様々な移動を作成可能

• ステアリング 動的回避が組み込まれたパスフォローシステム

生物的な回避挙動を実現

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

PQS移動とステアリング

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

PQS移動とステアリング

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

PQS移動とステアリング

• PQSデータ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

複数のフィルタを組み合わせてPQSデータを作る 例. 角度フィルタ = 自分の前方30° 距離フィルタ = 対象から10m以上遠くで、出来るだけ近く ⇒ 相手の周囲をぐるぐる回る移動データが完成

例. PQS距離フィルタとそのプロパティ

PQS移動とステアリング

• ステアリング

©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.

攻撃モーション解析

©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.

移動モーション自動解析システムを使って、 キャラクターの旋回性能、停止性能などを チャート化 チャートから問題のある アニメーションデータを発見し、修正する

移動モーション解析

©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.

FINAL FANTASY XV

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ゲーム内への応用実例

• 仲間

• ニフル兵

• モンスター

• NPC

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ゲーム内への応用実例

• 仲間

• ニフル兵

• モンスター

• NPC

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

仲間に求められたこと 1. イベント演出しているときも、並列思考などの通常AIを動作させたい

2. 仲間同士で協調して動作させたい(メタAI)

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

仲間要件 • イベント演出しているときも、並列思考などの通常AIを動作させたい

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

通常AIの中に、演出用のプリセットAIを埋め込んでおき、外部からのメッセージによってAIを切り替えるようにした。

仲間

外部からのメッセージでプリセットされたAIが起動され、イベント演出を行う様子

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ゲーム内への応用実例

• 仲間

• ニフル兵

• モンスター

• 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.

ゲーム内への応用実例

• 仲間

• ニフル兵

• モンスター

• NPC

©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. 視覚センサとターゲットサーチ

• 視覚センサ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

1. 視覚センサとターゲットサーチ

• ターゲットサーチ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

1. 視覚センサとターゲットサーチ

• AI Graphでターゲットを登録しているところ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

1. 視覚センサとターゲットサーチ

• AI Graphでターゲットを使っているところ

©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システム

• ルールAI

©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.

4. AI Graphオーバーライド

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

Me07ベヒモス

4. AI Graphオーバーライド

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

Me04 カトブレパス

AI Graphオーバーライド

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

AI Graphオーバーライド

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

AI Graphオーバーライド

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

ゲーム内への応用実例

• NPC

• 仲間

• ニフル兵

• モンスター

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

アンビエントAI (街のNPCたち)

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

アンビエント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.

Hunger: -10 Provides: Food

NPCに求められたこと

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

• 会話や食事など、社会的な行動(生活行動)を行う

• 多くのNPCを同時に配置しなければならない

社会行動に特化した、軽量スクリプトシステムと、AI Graph Editorをハイブリッドで動作させる

NPC

軽量スクリプトシステムで行動を選択し、トレイの外部実行の仕組みを使ってアクションする様子

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

スマートロケーション: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

アンビエントAI ビデオ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

スクリプト – 基礎

• 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 ルール セット

二人のNPCの会話

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

座る

©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

アンビエントAI ビデオ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

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

第八章 まとめ

セッションまとめ

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

メモリ使用量

• オンメモリ

AI Graph 20M~

ナビメッシュ 20M~

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

セッションまとめ

• 意思決定入門において、最新の意思決定技術を俯瞰した。

• 多様な要件を満たす、オリジナルの意思決定システムのコンセプトを紹介した。

• グラフベースのAIロジック作成ツールにおける仕様と実装に関する工夫点を紹介した。

• 上記のAI技術が、実際にゲーム内でどのように応用されたのかを紹介した。

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

FFXV における導入技術一覧

©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.

Advanced Technology Division

ご質問

©2017 SQUARE ENIX CO., LTD. All Rights Reserved.

[email protected]

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