本書將介紹構建強大的AI的工具,既可以創(chuàng)建更聰明的敵人,改進大 boss,也可以構建自定義的AI引擎。本書旨在成為使用Unity開發(fā)人工智能技術的一站式參考。首先,你將快速瀏覽在游戲環(huán)境中使用agent、編程移動以及導航的基本構建模塊。接下來,你將通過實例學習如何使用簡單的自定義技術改進agent的決策制定和協(xié)調機制。然后,你將學習如何模擬agent的視覺和聽覺,用于自然和擬人的AI行為,再用圖結構改進agent。本書還涵蓋了新的導航網(wǎng)格技術,這項技術在Unity 2018中引入,改良了AI和路徑查找工具。你還可以用決策制定技術加強AI,運用于簡單的諸如井字棋和跳棋的棋類游戲,以及安排agent之間的協(xié)作,使它們像整體一樣工作。
譯者序
前 言
第1章 行為——智能移動 1
1.1 簡介 1
1.2 創(chuàng)建行為模板 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 通過優(yōu)先級混合多個行為 22
1.13 射擊拋射體 24
1.14 預測拋射體的著地點 26
1.15 鎖定拋射體 27
1.16 創(chuàng)建跳躍系統(tǒng) 28
第2章 導航 32
2.1 簡介 32
2.2 用網(wǎng)格表示世界 33
2.3 用可視點法表示世界 41
2.4 用自制的導航網(wǎng)格表示世界 44
2.5 用深度優(yōu)先搜索在迷宮中找到出路 47
2.6 用廣度優(yōu)先搜索在網(wǎng)格中找到最短路徑 49
2.7 用迪杰斯特拉算法找到最短路徑 50
2.8 用A*找到最優(yōu)路徑 53
2.9 改進A*算法的內存占用:IDA* 56
2.10 在多個幀中規(guī)劃導航:時間片搜索 58
2.11 使路徑變得平滑 60
第3章 決策制定 62
3.1 簡介 62
3.2 通過決策樹做選擇 62
3.3 實現(xiàn)有限狀態(tài)機 65
3.4 改進有限狀態(tài)機:分層的有限狀態(tài)機 67
3.5 實現(xiàn)行為樹 69
3.6 使用模糊邏輯 71
3.7 用面向目標的行為制定決策 74
3.8 實現(xiàn)黑板架構 76
3.9 嘗試Unity的動畫狀態(tài)機 78
第4章 新的NavMesh API 84
4.1 簡介 84
4.2 初始化NavMesh開發(fā)組件 84
4.3 創(chuàng)建和管理NavMesh,用于多種類型的agent 86
4.4 在運行時創(chuàng)建和更新NavMesh數(shù)據(jù) 89
4.5 控制NavMesh實例的生命周期 90
4.6 連接多個NavMesh實例 92
4.7 創(chuàng)建動態(tài)的帶有障礙物的NavMesh 93
4.8 用NavMesh API實現(xiàn)某些行為 94
第5章 協(xié)作和戰(zhàn)術 97
5.1 簡介 97
5.2 管理隊形 98
5.3 擴展A*算法用于協(xié)作:A* mbush 102
5.4 用高度分析路徑點 105
5.5 用覆蓋性和可見性分析路徑點 106
5.6 自動化創(chuàng)建路徑點 107
5.7 將路徑點作為示例用于決策制定 110
5.8 實現(xiàn)勢力圖 111
5.9 用淹沒圖改進勢力圖 114
5.10 用卷積濾波器改進勢力圖 118
5.11 構建戰(zhàn)斗循環(huán) 120
第6章 agent感知 128
6.1 簡介 128
6.2 基于碰撞系統(tǒng)的視覺函數(shù) 128
6.3 基于碰撞系統(tǒng)的聽覺函數(shù) 130
6.4 基于碰撞系統(tǒng)的嗅覺函數(shù) 133
6.5 基于圖的視覺函數(shù) 136
6.6 基于圖的聽覺函數(shù) 138
6.7 基于圖的嗅覺函數(shù) 140
6.8 在潛行游戲中創(chuàng)建感知 141
第7章 棋類游戲和應用的搜索AI 148
7.1 簡介 148
7.2 使用博弈樹類 148
7.3 實現(xiàn)Minimax算法 150
7.4 實現(xiàn)Negamax算法 152
7.5 實現(xiàn)AB Negamax算法 154
7.6 實現(xiàn)Negascout算法 156
7.7 實現(xiàn)井字游戲對手 158
7.8 實現(xiàn)跳棋游戲對手 161
7.9 用UCB1實現(xiàn)石頭剪刀布AI 171
7.10 實現(xiàn)無悔匹配算法 175
第8章 機器學習 178
8.1 簡介 178
8.2 使用N元語法預測器預測行動 178
8.3 改進預測器:分層的N元語法 181
8.4 學習使用樸素貝葉斯分類器 182
8.5 實現(xiàn)強化學習 184
8.6 實現(xiàn)人工神經(jīng)網(wǎng)絡 188
第9章 程序化內容生成 192
9.1 簡介 192
9.2 用深度優(yōu)先搜索創(chuàng)建迷宮 192
9.3 為地下城和群島實現(xiàn)可構造算法 195
9.4 生成風景 199
9.5 使用N元語法生成內容 201
9.6 用進化算法生成敵人 204
第10章 其他 209
10.1 簡介 209
10.2 創(chuàng)建和管理可編寫腳本的對象 209
10.3 更好地處理隨機數(shù) 211
10.4 構建空氣曲棍球游戲對手 213
10.5 實現(xiàn)競速游戲架構 218
10.6 使用橡皮筋系統(tǒng)管理競速難度 220