Unity 人工智能實戰, 2/e (Unity 2018 Artificial Intelligence Cookbook: Over 90 recipes to build and customize AI entities for your games with Unity, 2/e)

Jorge Palacios 童明譯譯

買這商品的人也買了...

商品描述

本書將介紹構建強大的AI的工具,既可以創建更聰明的敵人,改進大boss,也可以構建自定義的AI引擎。
本書旨在成為使用Unity開發人工智能技術的一站式參考。
首先,你將快速瀏覽在遊戲環境中使用agent、編程移動以及導航的基本構建模塊。
接下來,你將通過實例學習如何使用簡單的自定義技術改進agent的決策制定和協調機制。
然後,你將學習如何模擬agent的視覺和聽覺,用於自然和擬人的AI行為,再用圖結構改進agent。
本書還涵蓋了新的導航網格技術,這項技術在Unity 2018中引入,改良了AI和路徑查找工具。
你還可以用決策制定技術加強AI,運用於簡單的諸如井字棋和跳棋的棋類游戲,
以及安排agent之間的協作,使它們像整體一樣工作。

目錄大綱

目錄
譯者序
前言
第1章行為——智能移動1
1.1簡介1
1.2創建行為模板2
1.3追趕和逃跑4
1.4為物理引擎調整agent 6
1.5到達和離開8
1.6朝向物體10
1.7徘徊12
1.8按路徑移動14
1.9避開agent 18
1.10避開牆體20
1.11通過權重混合多個行為21
1.12通過優先級混合多個行為22
1.13射擊拋射體24
1.14預測拋射體的著地點26
1.15鎖定拋射體27
1.16創建跳躍系統28

第2章導航32
2.1簡介32
2.2用網格表示世界33
2.3用可視點法表示世界41
2.4用自製的導航網格表示世界44
2.5用深度優先搜索在迷宮中找到出路47
2.6用廣度優先搜索在網格中找到#短路徑49
2.7用迪傑斯特拉算法找到#短路徑50
2.8用A*找到#優路徑53
2.9改進A*算法的內存佔用:IDA* 56
2.10在多個幀中規劃導航:時間片搜索58
2.11使路徑變得ping滑60

第3章決策制定62
3.1簡介62
3.2通過決策樹做選擇62
3.3實現有限狀態機65
3.4改進有限狀態機:分層的有限狀態機67
3.5實現行為樹69
3.6使用模糊邏輯71
3.7用面向目標的行為製定決策74
3.8實現黑板架構76
3.9嘗試Unity的動畫狀態機78

第4章新的NavMesh API 84
4.1簡介84
4.2初始化NavMesh開發組件84
4.3創建和管理NavMesh,用於多種類型的agent 86
4.4在運行時創建和更新NavMesh數據89
4.5控制NavMesh實例的生命週期90
4.6連接多個NavMesh實例92
4.7創建動態的帶有障礙物的NavMesh 93
4.8用NavMesh API實現某些行為94

第5章協作和戰術97
5.1簡介97
5.2管理隊形98
5.3擴展A*算法用於協作:A* mbush 102
5.4用高度分析路徑點105
5.5用覆蓋性和可見性分析路徑點106
5.6自動化創建路徑點107
5.7將路徑點作為示例用於決策制定110
5.8實現勢力圖111
5.9用淹沒圖改進勢力圖114
5.10用卷積濾波器改進勢力圖118
5.11構建戰鬥循環120

第6章agent感知128
6.1簡介128
6.2基於碰撞系統的視覺函數128
6.3基於碰撞系統的聽覺函數130
6.4基於碰撞系統的嗅覺函數133
6.5基於圖的視覺函數136
6.6基於圖的聽覺函數138
6.7基於圖的嗅覺函數140
6.8在潛行遊戲中創建感知141

第7章棋類游戲和應用的搜索AI 148
7.1簡介148
7.2使用博弈樹類148
7.3實現Minimax算法150
7.4實現Negamax算法152
7.5實現AB Negamax算法154
7.6實現Negascout算法156
7.7實現井字遊戲對手158
7.8實現跳棋遊戲對手161
7.9用UCB1實現石頭剪刀布AI 171
7.10實現無悔匹配算法175

第8章機器學習178
8.1簡介178
8.2使用N元語法預測器預測行動178
8.3改進預測器:分層的N元語法181
8.4學習使用樸素貝葉斯分類器182
8.5實現強化學習184
8.6實現人工神經網絡188

第9章程序化內容生成192
9.1簡介192
9.2用深度優先搜索創建迷宮192
9.3為地下城和群島實現可構造算法195
9.4生成風景199
9.5使用N元語法生成內容201
9.6用進化算法生成敵人204

第10章其他209
10.1簡介209
10.2創建和管理可編寫腳本的對象209
10.3更好地處理隨機數211
10.4構建空氣曲棍球遊戲對手213
10.5實現競速遊戲架構218
10.6使用橡皮筋系統管理競速難度220