Upload
youichiro-miyake
View
439
Download
2
Embed Size (px)
Citation preview
人工知能によってプログラムを有機化する(前篇)
三宅陽一郎
(ゲームAI開発者)
2017.11.26 @CODEFES
https://www.facebook.com/youichiro.miyakehttp://www.slideshare.net/youichiromiyake
経歴
京都大学(数学) 大阪大学(原子核実験物理) 東京大学(エネルギー工学/人工知能)
Works (2006-2016)
AI for Game Titles
Books
©2016 SQUARE ENIX CO., LTD. All Rights Reserved.
• ThinkIT https://thinkit.co.jp/author/10026
• AI最前線の現場から【スクウェア・エニックス】
参考文献
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
三宅陽一郎 「ディジタルゲームにおける人工知能技術の応用の現在」 (20ページ)(人工知能学会誌、2015/1号) (AI書庫から無料でDL可能 http://id.nii.ac.jp/1004/00001730/ )
参考文献
©2017 SQUARE ENIX CO., LTD. All Rights Reserved.
三宅陽一郎 「大規模ゲームにおける人工知能 ─ファイナルファンタジーXV の実例をもとに─」(17ページ) (人工知能学会誌、2017 /2号) (AI書庫から無料でDL可能 http://id.nii.ac.jp/1004/00008567/ )
前置き
• プログラムを支える構造はどこから来るか?
• 人工知能=概念の科学
プログラムの断片
プログラムの断片
プログラムとプログラムをつなげるものは何か?
プログラムの断片
プログラムの断片
有機的な概念構造
プログラムの断片
プログラムの断片
有機的な概念構造
要素として何を扱うか?
プログラムの断片
プログラムの断片
有機的な概念構造
要素として何を扱うか?
アーキテクチャ
プログラムの断片
プログラムの断片
有機的な概念構造
要素として何を扱うか?
アーキテクチャ
要素その関係性それと包む有機的なアーキテクチャ
今日はこの3つをテーマにします。
目次
• 第一章人工知能の作り方• 第二章ソフトウェアの構造• 第三章 人工知能へ• 第四章 知識構造• 第五章 ナビゲーションAI• 第六章 メタAI ゲーム全体の思考• 第七章 思考• 第八章 キャラクターAI(学習)• 第九章 プロシージャル技術(自動生成技術)• 第十章 思考の構造
第一章人工知能の作り方
このAIはどう作るか?
プレイヤーキャラクター
岩 地面
池
例として、次のようなキャラクターのAIをどう作るか考えてみよう。
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
このAIはどう組むか?
こういったAIをゲーム産業では「Scripted AI」と言
います。こういったAIはゲームデザイナーがスクリプト言語で書く場合多いため。
プレイヤー キャラクター
岩 地面
池
A B
、
(例)プレイヤーがAにいればBをうろうろする。
プレイヤーがBにいれば近づいて攻撃する。
http://septieme-ciel.air-nifty.com/nikubanare/2007/08/post_3c38.htmlhttp://dear-croa.d.dooo.jp/download/illust.html
http://piposozai.blog76.fc2.com/
スクリプト
Scripted AI から自律型AIへの変化
ゲームデザイナーの頭の中 ゲームデザイナーの頭の中
知識 思考
Scripted AI 自律型 AI (Autonomous AI)http://piposozai.blog76.fc2.com/
スクリプト
Scripted AI から自律型AIへの変化
ゲームデザイナーの頭の中 ゲームデザイナーの頭の中
知識 思考
Scripted AI 自律型 AI (Autonomous AI)
操り人形(Scripted AI)から、キャラクターが自分で考えて行動する自律型AI(Autonomous AI)になるためには、
ゲームデザイナーが頭の中で持っている知識と思考をAIに埋め込む必要がある。
このAIはどう組むか?
プレイヤーキャラクター
岩 地面
池
地形データ(Way Points)
、
ステップ1:
AIにゲームステージの地形を認識させたい=地形のデータを与える。
AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。
http://dear-croa.d.dooo.jp/download/illust.html
http://piposozai.blog76.fc2.com/
このAIはどう組むか?
地形データ(Way Points)
AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。(ネットワークグラフの問題に帰着)
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://dear-croa.d.dooo.jp/download/illust.html
http://piposozai.blog76.fc2.com/
ナビゲーションAI
このAIはどう組むか?
プレイヤーキャラクター
岩 地面
池
、
ステップ2:
地形データをもとに考える思考を与える。
地形データを用いた思考
地形データ(Way Points)
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
このAIはどう組むか?
AIは地形データによって、自分とプレイヤーの位置関係を知ることができる。(ネットワークグラフの問題に帰着)
地形データ(Way Points)
地形データを用いた思考
最短経路を計算
http://dear-croa.d.dooo.jp/download/illust.html
http://piposozai.blog76.fc2.com/
ナビゲーションAI
このAIはどう組むか?
地形データ(Way Points)
ここの点グループはお互いが見えている。
ここの点グループはお互いが見えている。
地形データを用いた思考
ネットワークグラフに可視判定の情報を埋め込む。
このAIはどう組むか?
ナビゲーションAI
地形データ(Way Points)
ここの点グループはお互いが見えている。
ここの点グループはお互いが見えない。
地形データを用いた思考
ネットワークグラフに可視判定の情報を埋め込む。
このAIはどう組むか?
ナビゲーションAI
地形データ(Way Points)
地形データを用いた思考
プレイヤーからキャラクターが見えていない。
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
このAIはどう組むか?
ナビゲーションAI
地形データ(Way Points)
地形データを用いた思考
プレイヤーから見つけて貰うためにプレイヤーからキャラクターが見えるように動く。
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
このAIはどう組むか?
プレイヤーからキャラクターが見えない位置に動く。
ナビゲーションAI
地形データ(Way Points)
地形データを用いた思考
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
ナビゲーションAI
このAIはどう組むか?
地形データ(Way Points)
攻撃する
意思決定思考
地形データを用いた思考
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
ナビゲーションAI
このAIはどう組むか?
地形データ(Way Points)
攻撃するか? 隠れるか? 牽制するか? を選ぶ思考。= 意思決定思考
意思決定思考
地形データを用いた思考
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
このAIはどう組むか?
プレイヤーキャラクター
岩 地面
池
地形データ(Way
Points)
、
これで、キャラクターを知能化することができた。
地形データを用いた思考
意思決定思考
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
AIを作る
人間
地形データ(Way
Points)
地形データを用いたロジック
オブジェクトを用いたロジック
http://piposozai.blog76.fc2.com/
AIを作る
人間
地形データ(Way
Points)
地形データを用いたロジック
オブジェクトを用いたロジック
ここでキャラクターに知能を与えたプロセスを振り返ってみる。ステップ1: 知識を与えた。ステップ2: 知識の上で操作する思考を与えた。ステップ3: 自分の意志を決定する思考を与えた。
http://piposozai.blog76.fc2.com/
知識 思考
AIを作る
人間
地形データ(Way
Points)
地形データを用いた思考
意思決定の思考
知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考)
AI自身に「知識」と「知識の上の思考」を与えることが知能を作る基本。
http://piposozai.blog76.fc2.com/
思考知識
AIを作る
人間
地形データ(Way
Points)
地形データを用いた思考
オブジェクトデータ
意思決定の思考
自分の身体データ
身体運動の
ロジック
知識を(データ)表現する。(知識) 知識に基づいて思考する。(AI思考)
http://piposozai.blog76.fc2.com/
「知識」と「その上の思考」をどんどん増やして行くことでAIは成長する。
知能
思考知識
AIを作る
人間
地形データ(Way
Points)
地形データを用いた思考
オブジェクトデータ
意思決定の思考
自分の身体データ
身体運動の
ロジック
http://piposozai.blog76.fc2.com/
知能 = 知識 × 思考
知能
思考知識
AIを作る
人間
地形データ(Way
Points)
地形データを用いた思考
オブジェクトデータ
意思決定の思考
自分の身体データ
身体運動の
ロジック
http://piposozai.blog76.fc2.com/
これでキャラクター自身が知能を持つことができた。キャラクターの持つ知能をキャラクターAIと言う。
知能
思考知識
AIを作る
人間
地形データ(Way
Points)
地形データを用いた思考
オブジェクトデータ
意思決定の思考
自分の身体データ
身体運動の
ロジック
http://piposozai.blog76.fc2.com/
この例ではナビゲーションAIとキャラクターAIが連携していた。
目次
• 第一章人工知能の作り方• 第二章ソフトウェアの構造• 第三章 人工知能へ• 第四章 知識構造• 第五章 ナビゲーションAI• 第六章 メタAI ゲーム全体の思考• 第七章 思考• 第八章 キャラクターAI(学習)• 第九章 プロシージャル技術(自動生成技術)• 第十章 思考の構造
第二章ソフトウェアの構造
知識 思考
知識 思考
知識 思考
最小の人工知能の単位
独立に持つ
知識 思考
最小の知能の単位
知識
思考
最小の知能の単位階層型アーキテクチャ
知識
思考
最小の知能の単位階層型アーキテクチャ
ステート・マシン
ステート
ステート ステート
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。ループ構造により、フィードバック構造はない。
プレイヤーを待ち構えるAI
2体の敵キャラクターが哨戒していて、一人のプレイヤーが部屋に入って来る。
http://dear-croa.d.dooo.jp/download/illust.htmlhttp://piposozai.blog76.fc2.com/
ステート・マシン
ステートマシン(有限状態マシン)
ステートに自分への命令、遷移条件に世界と自分の状況の変化を書く。ループ構造により、フィードバック構造はない。
待機
攻撃 パトロール
警戒追跡
追いかける
攻撃する
威嚇攻撃
味方に指示
出口をかためる
味方を呼ぶ
味方がいないかつ戦闘範囲外
味方と合流
味方と合流
味方がいる
見失う
見える
見失う 見つける
巡回する
10秒経つ
物音を聴く
応答がきた
階層型ステート・マシン
(例) Quake HFSM
Ⓒ2015 SQUARE ENIX CO., LTD. All Rights Reserved.
状態遷移図を用いる
http://ai-depot.com/FiniteStateMachines/FSM-Practical.html
知識 思考
知識 思考
知識 思考
メタ思考
思考を選ぶ思考
知識 思考
知識 思考
知識 思考
メタ思考
メタ思考アーキテクチャ
IF ( 前置宣言文 ) then (後置宣言文)
ルールベース意思決定Rule-based Decision Making
ルール
ここでは、この形式の制御文をルールと言います。
もちろん、IF ( … IF (.... IF… ) ) ) のような入れ子構造の制御文もルールベースと呼びますが、
ルールベースと言えば、基本的には、ルールを一つの単位として、意思決定を行う、という意味です。
推論エンジン
A B C D ET F F F FT T F F FT T F T F T T T T FT T T T TF T T T TF F F T T……………………………………………………………………………
T: True F: False
ID 0 : IF A THEN B
ID 1 : IF A && D THEN C
ID 3 : IF C THEN E
ID 4 : IF B THEN D
ID .. :
ID 4 : IF E THEN ~A
ルール内の条件部がtrueの時、そのルールが発火する(fired)すると言います。発火したルールの宣言文は true となり、またそれが別のルールを発火させます。
発火をくり返して、true/Falseが変化して行く様子
ルール制御
ID 0 : IF …. THEN …
ID 1 : IF …. THEN …
ID 3 : IF …. THEN ….
ID 4 : IF …. THEN …
ID .. :
ID 4 : IF …. THEN …
Priority: 3
Priority: 1
Priority: 4
Priority: 5
Priority: 2
ルールに固定、あるいは変動プライオリティ(優先度)をつけて制御を行う。
あるいはランダムにルールをピックアップする場合もある。戦略思考、キャラクターの挙動などでよく使われる。
Priority: -
制御
ルール= IF (行動条件文 ) then (動作命令文)
(例) ルール制御
ID 0 : IF …. THEN …
ID 1 : IF …. THEN …
ID 3 : IF …. THEN ….
ID 4 : IF …. THEN …
ID .. :
ID 5 : IF …. THEN …
Priority: 3
Priority: 1
Priority: 4
Priority: 5
Priority: 2
或いは、状況判断思考によってルールを振り分ける。戦略思考、キャラクターの挙動などでよく使われる。
Priority: -
制御思考
ルール= IF (行動条件文 ) then (動作命令文)
応用可能性例
http://gomibako.symphonic-net.com/vote.cgi?genre=act_b&rating=9
ID 0 : IF (敵確認) THEN (逆方向)
ID 1 : IF (誰もいない) THEN (ランダムウォーク)
ID 2 : IF (フルーツ発見) THEN (フルーツゲット)
ID 3 : IF (パワー発見) THEN (パワーゲット)
ID 0 : IF (敵強い) THEN (サンダガ)
ID 1 : IF (自分弱い) THEN (弱い敵に攻撃)
ID 2 : IF (HP<20) THEN (ケアル)
ID 3 : IF (パワー発見) THEN (パワーゲット)
こうなっているというのではなくて、こういうふうに応用できる例
パックマンなど
RPGなど
The Sims 3 における応用
街全体をソーシャルにシミュレーションして人との関係を楽しむゲーム。たくさんのAIを「人間らしく」制御しなければならない。特徴付けにプロダクションルールを採用。
Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
Sims3 における応用あらゆる相互作用を考慮
注目するエージェントの行動範囲だけを考慮
Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
データドリブンなプロダクション・ルール
プロダクションルール
Sims3 における応用
Richard Evans, "Modeling Individual Personalities in The Sims 3", GDC 2011http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
プロダクションルール
プロダクションルールは種類によってランク付けされていて、最もランクの高いルールが発火する。ルールが発火すると他のSimは、その特性を理解する。
データドリブンなプロダクション・ルール
Sims3 における応用
ユーティリティ・ベース
• ユーティリティ・ベースは高度に抽象的な戦術決定の方法。
• 世界をモデル化し、評価すべき行動群の効用(ユーティリティ)を数値に還元する。
The Sims シリーズのAIの作り方
人をダイナミクス(力学系、動的な数値の仕組み )として動かす。世界を動かす PeerAI(=キャラクターAI) を構築。
Sub
Peer
Meta
Meta
Peer
Sub
[原則] 周囲の対象に対する、あらゆる可能な行動から、ムード(幸せ) 係数を最大化する行動を選択する。
Sims (not under direct player control) choose what to do by selecting, from all of the
possible behaviors in all of the objects, the behavior that maximizes their current happiness.
Will Wright, AI: A Design Perspective (AIIDE 2005) http://www.aaai.org/Papers/AIIDE/2005/AIIDE05-041.ppt
Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example”http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
オブジェクトに仕込むデータ構造
Data (Class, Sate)
Graphics (sprites, z-
buffers) Animations (skeletal)
Sound Effects
Code (Edith)
-Main (object thread)
-External 1
-External 2
-External 3
パラメーター
グラフィックスアニメーション
サウンド
メインスレッド
いろいろなインタラクションの仕方
Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料) ※IEで見てください。
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm
Kenneth Forbus, Will Wright, “Some notes on programming objects in The Sims – Example”http://www.qrg.cs.northwestern.edu/papers/Files/Programming_Objects_in_The_Sims.pdf
The Sims における「モチーフ・エンジン」
Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern University)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm
Data- Needs- Personality- Skills- Relationships Sloppy - Neat
Shy - OutgoingSerious - Playful
Lazy - ActiveMean - Nice
Physical- Hunger- Comfort- Hygiene- Bladder
Mental- Energy- Fun- Social- Room
Motive Engine
CookingMechanical
LogicBodyEtc.
AIの人格モデル
最適(=最大効用)な行動を選択する
Hunger +20Comfort -12Hygiene -30Bladder -75Energy +80Fun +40Social +10Room - 60
Mood +18
Toilet
- Urinate (+40 Bladder)- Clean (+30 Room)- Unclog (+40 Room)
Mood +26
Bathtub
- Take Bath (+40 Hygiene) (+30 Comfort)
- Clean (+20 Room)
Mood +20
[原則] 周囲の対象に対する、あらゆる可能な行動から、総合的な効用 (=Mood) を最大化する行動を選択する。
ムードの計算方法と各パラメーターのウェイトグラフ
Mood = W_Hunger(X_Hunger) * X_Hunger + W_Engergy(X_Energy) * X_Energy + …
-100 0 100 -100 0 100
-100 0 100 -100 0 100
-100 0 100 -100 0 100
-100 0 100 -100 0 100
W_Hunger W_Energy
W_Comfort W_Fun
W_HygieneW_Social
W_Bladder W_Room
効用(Utility)の計算の仕方
W_Hunger
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
効用(Utility)の計算の仕方
W_Hunger
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
Hunger degree at -80 =W_Hunger(-80)*(-80)
Hunger degree at 60 = W_Hunger(60)*(60)
Δ =W_Hunger(60)*(60) - W_Hunger(-80)*(-80)
Utility for hunger
限界効用逓減の法則
X_Hunger
W_Hunger(-80)
-80 60
W_Hunger(60)
Δ(-80 → 60)=W_Hunger(60)*(60) - W_Hunger(-80)*(-80)
Δ (60→90) =W_Hunger(90)*(90) - W_Hunger(60)*(60)
90
W_Hunger(90)
Δ(-80 → 60) is much larger than Δ(60→90)
ある程度満たされたものを満たすより、満たされないものをある程度満たす方が大きな満足をもたらす
Utility for hunger
ビールは一杯目が一番おいしい
The Sims のAIの原理
三宅陽一郎、「Spore におけるゲームAI技術とプロシージャル」 (DiGRA Japan 第14回 月例研究
http://digrajapan.org/?wpdmact=process&did=Ni5ob3RsaW5r
Ken Forbus, “Simulation and Modeling: Under the hood of The Sims” (NorthWerstern大学、講義資料)
http://www.cs.northwestern.edu/%7Eforbus/c95-gd/lectures/The_Sims_Under_the_Hood_files/frame.htm
Richard Evans, Modeling Individual Personalities in The Sims 3, GDC 2010 http://www.gdcvault.com/play/1012450/Modeling-Individual-Personalities-in-The
The Sims 3 では、多くのムードや欲求が準備される。
行動 対象
GDC09 資料 http://www.gdcvault.com/play/1452/(307)-Breaking-the-Cookie-Cutter
知識 思考
知識 思考
知識 思考
レイヤー
知識 思考
知識 思考
知識 思考
レイヤー
レイヤード・アーキテクチャ
The Quake III Arena Bothttp://www.kbs.twi.tudelft.nl/docs/MSc/2001/Waveren_Jean-Paul_van/thesis.pdf
知識 思考
知識 思考
知識 思考
サブサンプション・アーキテクチャ
抑制・解放
抑制・解放
サブサンプション・アーキテクチャ
サブサンプション・アーキテクチャ
INPUT OUTPUT
Time
情報を抽象化
反射的
より抽象的思考
理論的思考
抽象的思考
アクションを生成
古典: 中央集権型(Central domain)
すべての知的プロセスが順番に実行
サブサンプション : 並列 & 多層化
すべての知的プロセスが、並列に実行
Rodney Brooks, A robust layered control system for a mobile robotRobotics and Automation, IEEE Journal of (Volume:2 , Issue: 1 ) 1986
Roomba (iRobot)
http://www.irobot.com/en/us/learn/home/roomba.aspx
Roomba はサブサンプション・アーキテクチャを持つ
サブサンプション・アーキテクチャ
INPUT OUTPUT
Time
Reactive
R
ロボットは障害物をみつけとターン。
サブサンプション・アーキテクチャ
INPUT OUTPUT
Time
Reactive
R
ロボットは崖を見つけると後退する.
サブサンプション・アーキテクチャ
INPUT OUTPUT
Time
Reactive
More Abstract thinking
Abstract thinking
R ロボットは足音を聴くと、とりあえずストップする。
Subsumption Architecture
INPUT OUTPUT
Time
Reactive
More Abstract thinking
Theoretical thinking
Abstract thinking
R
全部掃除が終わると、エネルギーステーションに戻る
Subsumption Architecture
INPUT OUTPUT
Time
Reactive
More Abstract thinking
Theoretical thinking
Abstract thinking
サブサンプションをエージェント・アーキテクチャに適用。
情報を抽象化 アクションを生成
目次
• 第一章人工知能の作り方• 第二章ソフトウェアの構造• 第三章 人工知能へ• 第四章 知識構造• 第五章 ナビゲーションAI• 第六章 メタAI ゲーム全体の思考• 第七章 思考• 第八章 キャラクターAI(学習)• 第九章 プロシージャル技術(自動生成技術)• 第十章 思考の構造
第三章 人工知能へ
世界
情報的・物質的循環
物質
物理的OUTPUT
代謝機能情報INPUTINFORMATION
OUTPUTINFORMATION
情報処理=情報代謝(つまり思考)
生理的代謝機能物理的INPUT
キャラクターの知能を表現する
世界
http://piposozai.blog76.fc2.com/
知能
身体
キャラクターを表現する
世界
記憶
知能
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知能
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・。物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
運動生成
Motion Making
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
運動生成
Motion Making
身体・発話・
情報発信
エフェクター
身体
エージェント・アーキテクチャ
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
運動生成
Motion Making
身体・発話・
情報発信
エフェクター
身体
キャラクターを表現する
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
運動生成
Motion Making
身体・発話・
情報発信
エフェクター
エージェント・アーキテクチャ
インフォメーション・フロー(情報回廊)
身体
世界
記憶五感
身体
言語
知識表現型
センサー・物理
知識生成
KnowledgeMaking
意思決定
DecisionMaking
運動生成
Motion Making
身体・発話・
情報発信
エフェクター
インフォメーション・フロー(情報回廊)
内部循環インフォメーション・フロー(情報回廊)
エージェント・アーキテクチャ
世界 / データ群(Undifined)
センサーエフェクター
知能
エージェント・アーキテクチャ
世界 / データ群(Undifined)
センサーエフェクター
知能
インフォメーション・フロー
エージェント・アーキテクチャ
世界 / データ群(Undefined)
センサーエフェクター
インフォメーション・フロー
知識 思考
エージェント・アーキテクチャ
世界 / データ群(Undefined)
センサーエフェクター
インフォメーション・フロー
エージェント・アーキテクチャ
世界 / データ群(Undefined)
センサーエフェクター
インフォメーション・フロー
エージェント・アーキテクチャ
目次
• 第一章人工知能の作り方• 第二章ソフトウェアの構造• 第三章 人工知能へ• 第四章 知識構造• 第五章 ナビゲーションAI• 第六章 メタAI ゲーム全体の思考• 第七章 思考• 第八章 キャラクターAI(学習)• 第九章 プロシージャル技術(自動生成技術)• 第十章 思考の構造
第四章 知識構造
描画データ
描画データ
http://piposozai.blog76.fc2.com/
http://piposozai.blog76.fc2.com/
衝突モデル(当たりモデル)
キャラクター衝突データ
オブジェクト衝突データ
オブジェクト衝突データ
床
物理的インタラクション
知識表現データ
知識表現データ
http://piposozai.blog76.fc2.com/
http://piposozai.blog76.fc2.com/
知識表現データ
知識表現データ知識表現データ
知識表現データ
知識表現データ
知識表現データ
知識表現データ
知識表現データ
情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。薬草は体力を回復する
(例)私は座標(2.1, 3.4, 5.6)にいる。薬草は体力を回復する
(例)これは岩である。動かすことはできない。側の点に隠れることができる。
http://piposozai.blog76.fc2.com/
知識表現・世界表現
仮想世界の知性=人工知能
WORLD
人工知能は生物のように世界をそのまま認識・解釈できるだろうか?
仮想世界の知性=人工知能
WORLD
AIが世界(物・事・空間など)を解釈できるように、世界をうまく情報表現する= 知識表現 (KR、Knowledge Representation)
知識表現(KR)
ゲーム世界
世界をリアルタイムに解釈
知識表現と作用世界・知覚世界
AIはそのままでは理解できない。
http://piposozai.blog76.fc2.com/
ゲーム世界
世界をリアルタイムに解釈
知識表現と作用世界・知覚世界
AIはそのままでは理解できない。
現在の人工知能のレベルは難しい
http://piposozai.blog76.fc2.com/
ゲーム世界
知識表現
知識表現と作用世界・知覚世界
AIはそのままでは理解できない。
http://piposozai.blog76.fc2.com/
ゲーム世界
知識表現
知識表現と作用世界・知覚世界
AIは知識表現を通して世界を見る。それはAIの主観を決定し、作用世界と知覚世界も決定する。
http://piposozai.blog76.fc2.com/
ゲーム世界
知識表現
知識表現と作用世界・知覚世界
AIはそのままでは理解できない。
作用世界
知覚世界
AIは知識表現を通して世界を見る。それはAIの主観を決定し、作用世界と知覚世界も決定する。
AI
http://piposozai.blog76.fc2.com/
いろいろな知識表現
事実表現(信頼度表現)
意味ネットワーク
敵表現リスト
依存グラフ ルールベース表現
世界表現
Griesemer,J, "The Illusion of Intelligence: The Integration of AI and Level Design in Halo", 2002 http://downloads.bungie.net/presentations/gdc02_jaime_griesemer.ppt
世界表現(知識表現の一つ)
マップ全体に関わる知識表現を世界表現という(ウェイポイント、ナビメッシュを基本とする表現)
World Representation (WR)
(例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone)
Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf
知識表現・世界表現
知識表現
世界表現
いろいろな世界表現
ナビメッシュ-ウェイポイント階層表現
LOS マップ
戦術マップクラスタリング
敵配位マップ テリトリー表現
Tactical Point System
Halo2Killzone
Killzone2Halo Assassin’s Creed
Left 4 Dead
Alex J. Champandard, Remco Straatman, Tim Verweij, "On the AI Strategy for KILLZONE 2's Bots”http://aigamedev.com/open/coverage/killzone2/
Damian Isla,"Building a Better Battle: HALO 3 AI Objectives",http://halo.bungie.net/inside/publications.aspx
Michael Booth, "The AI Systems of Left 4 Dead," Artificial Intelligence and Interactive Digital Entertainment Conference , http://www.valvesoftware.com/company/publications.html
世界表現(知識表現の1つ)
マップ全体に関わる知識表現を世界表現という(ウェイポイント、ナビメッシュを基本とする表現)
World Representation (WR)
(例) 8方向の可視距離の各ポイントに埋め込まれたウェイポイント群 (Killzone)
Straatman, R., Beij, A., Sterren, W.V.D., "Killzone's AI : Dynamic Procedural Combat Tactics", 2005 http://www.cgf-ai.com/docs/straatman_remco_killzone_ai.pdf
Halo2 :世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2 :世界表現
Halo2 :世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2 :世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2: 世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2: 世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2: 世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2: 世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Halo2: 世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
Counter Strike : Navigation Mesh世界表現
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
知識表現・世界表現
知識表現
世界表現オブジェクト表現
オブジェクト表現
車
レバー
ドアの知識表現
位置 x: 3.0 y:.10,0
レバーで開けることが出来る
壊して開けることが出来る
車の知識表現
位置 x: 3.0 y:.2,0
乗って動かすことが出来る。
時速80kmで動く。
レバーの知識表現
位置 x: 5.0 y:.5,0
引くが出来る。
(結果:ドアが開く)
ドア
ドアの知識表現位置 x:3.0 y:10.0
レバーを引くと開く(ルール)
レバーの知識表現位置 x:5.0 y:5.0
引くことができる(アフォーダンス).レバーを引くとドアが開く(ルール)
車の知識表現位置 x:3.0 y:2.0
運転することができる.最大速度: 80km
物に対する表現
オブジェクト表現
これが車であるこの方向に押せば動く
Dude, Where's My Warthog: From Pathfinding to General Spatial Competence, D. Isla, Invited talk, Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2005 http://naimadgames.com/publications.html
アフォーダンス
食べることができる
登ることができる
動かすことができる
http://piposozai.blog76.fc2.com/
作用空間
アフォーダンス
食べることができる
登ることができる
動かすことができる
http://piposozai.blog76.fc2.com/
アフォーダンス
歩くことができる
届く
押すことができる
http://piposozai.blog76.fc2.com/
作用空間
アフォーダンス
歩くことができる
届く
押すことができる
http://piposozai.blog76.fc2.com/
知識表現データ
知識表現データ
知識表現データ
知識表現データ
情報の受け渡し (例)私は座標(2.1, 3.4, 5.6)にいる。薬草は体力を回復する
(例)私は座標(2.1, 3.4, 5.6)にいる。薬草は体力を回復する
(例)これは岩である。動かすことはできない。側の点に隠れることができる。
http://piposozai.blog76.fc2.com/
知識表現知識
表現
知性を豊かにするには?
知識表現知識
表現知識表現知識
表現知識表現知識
表現知識表現
知識表現
世界表現
知識表現・世界表現が思考の足場を与える。
不安定な足場では高い思考を積み上げることはできない。
思考
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
知性を豊かにするには?
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
世界表現世界
表現世界表現世界
表現
知識表現・世界表現が思考の足場を与える。
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
知性を豊かにするには?
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
知識表現知識
表現知識表現知識
表現
世界表現世界
表現世界表現世界
表現
思考思考
思考
知識表現・世界表現が思考の足場を与える。
知識表現
知識表現に応じた思考
最小の知能の単位
知識表現
知識表現に応じた思考
最小の知能の単位
人工知能技術
世界 / データ群(Undefined)
センサーエフェクター
インフォメーション・フロー
知識表現
思考
エージェント・アーキテクチャ
目次
• 第一章人工知能の作り方• 第二章ソフトウェアの構造• 第三章 人工知能へ• 第四章 知識構造• 第五章 ナビゲーションAI• 第六章 メタAI ゲーム全体の思考• 第七章 思考• 第八章 キャラクターAI(学習)• 第九章 プロシージャル技術(自動生成技術)• 第十章 思考の構造
第五章 ナビゲーションAI
ナビゲーション・データ
ウェイポイント・グラフ(点を要素とするネットワークグラフ)
ナビゲーションメッシュ・グラフ(三角形(凸角形)を要素とするネットワークグラフ)
歩くことができる。
フリー素材屋Hoshino http://www.s-hoshino.com/
パス検索=ゲーム内で任意の2点間の経路をゲーム進行中に計算する技術
RTS – Pathfinding A*https://www.youtube.com/watch?v=95aHGzzNCY8
ネットワーク上のグラフ検索法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
QX
K
N
J
R
T
W
EI
U
Z
Y
G
54
6 3
7 23
B C
3
G
D E
3
2 24
L
3
3
5
5 J
F
出発点(S)を中心に、最も短い経路を形成して行く。Gにたどり着いたら終了。
各ノードの評価距離=出発点からの経路
ダイクストラ法
ネットワーク上のグラフ検索法ダイクストラ法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
QX
K
N
J
R
T
W
EI
U
Z
Y
G
54
6 3
7 23
B C
3
G
D E
3
2 24
L
3
3
5
5 J
F
出発点(S)を中心に、最も短い経路を形成して行く。Gにたどり着いたら終了。
各ノードの評価距離=出発点からの経路
ネットワーク上のグラフ検索法A*法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
QX
K
N
J
R
T
W
EI
U
Z
Y
G
54
6 3
7 23
B C
3
3
2 24 3
5
5
出発点(S)を中心に、そのノードまでの最も短い経路を形成して行く。Gにたどり着いたら終了。
ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離)を想定して、トータル距離を取り、それが最少のノードを探索して行く。
各ノードの評価距離=出発点からの経路+ヒューリスティック距離
ヒューリスティック距離(普通ユークリッド距離を取る)
3+14.2 3+13.8
G H3 5+10.5 6+8.4
ネットワーク上のグラフ検索法A*法
M
F
L
B
A
S
O
P
D
C
G
S
V
H
QX
K
N
J
R
T
W
EI
U
Z
Y
G
54
6 3
7 23
B C
3
3
2 24 3
5
5
出発点(S)を中心に、そのノードまでの最も短い経路を形成して行く。Gにたどり着いたら終了。
ゴール地点がわかっている場合、現在のノードとゴールとの推定距離(ヒューリスティック距離)を想定して、トータル距離を取り、それが最少のノードを探索して行く。
各ノードの評価距離=出発点からの経路+ヒューリスティック距離
ヒューリスティック距離(普通ユークリッド距離を取る)
3+14.2 3+13.8
G H3 5+10.5 6+8.4
Counter Strike (2000)におけるナビメッシュ
The Official Counter-Strike Bothttp://aigamedev.com/insider/presentation/official-counter-strike-bot/
Counter Strike (2000)におけるナビメッシュ
The Official Counter-Strike Bothttp://aigamedev.com/insider/presentation/official-counter-strike-bot/
Counter Strike: Path Following (デモ)
The Official Counter-Strike Bothttp://aigamedev.com/insider/presentation/official-counter-strike-bot/
Dragon Age : Way Point
Dragon Age pathfinding program put to the testhttps://www.youtube.com/watch?v=l7YQ5_Nbifo
位置解析システム
TPS (Tactical Point System)
• 戦術位置検索システム
• 目的に応じたポイントをその場で探し出す。
• CryEngineで発想され、2011年ぐらいから実装されている。
• Unreal Engine 4では、EQS(Evaluation Query System)で同じ機能がある。BehaviorTreeや、BluePrintから呼び出して使える。
沼
高台
湖
野原
敵
味方AI(現在位置)
このような状況でAIは次にどこに行くべきか?を自分で考えさせたい。
沼
高台
湖
野原
敵
味方AI(現在位置)
動的にポイントを生成します
沼
高台
湖
野原
敵
味方AI(現在位置)
フィルター1:そもそも足場の悪い点を除外します。
沼
高台
湖
野原
敵
味方AI(現在位置)
フィルター2:敵に近くのポイントも除外します
沼
高台
湖
野原
敵
味方AI(現在位置)
フィルター3:味方に近くのポイントも除外します
沼
高台
湖
野原
敵
味方AI(現在位置)
フィルター4:残ったポイントの中で一番高い場所を選択します。
TPS (Tactical Point System)
ゲーム中(ランタイム)に、グリッドか円形にポイントを生成。
条件を設定して要らないポイントをふるい落とす
条件を設定して要らないポイントをふるい落とす
残ったポイントを評価する
一点だけが残る
(例)クエリー(Query)システム=問い合わせシステム
敵
目的地
味方 味
方
味方
Query(最短パス)
Query(安全パス)
Query(味方合流パス)
Query(武器の届く、高台ポイント)
ポイントを動的に配置して評価する
Matthew Jack, Mika VehkalaSpaces in the Sandbox: Tactical Awareness in Open World Games (GDC2013)http://www.gdcvault.com/play/1018038/Spaces-in-the-Sandbox-Tactical
世界 / データ群(Undefined)
センサーエフェクター
インフォメーション・フロー
知識表現
思考
エージェント・アーキテクチャ