本書詳細闡述了與Unity游戲人工智能相關的基本解決方案,主要包括游戲AI的基礎知識、有限狀態機、實現感知系統、尋路方案、群集行為、行為樹、模糊邏輯等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。
本書適合作為高等院校計算機及相關專業的教材和教學參考書,也可作為相關開發人員的自學教材和參考手冊。
Unity向開發人員提供了多種工具,以實現具有人工智能的游戲體驗。Unity的內建API以及特性可有效地實現多種可能性,并構建游戲場景和角色對象。無論開發何種游戲,理解并應用人工智能特性可視為游戲設計的基本因素之一。本書將人工智能技術劃分為多個簡單概念,進而有助于讀者理解這一話題的基礎內容。本書通過大量實例,詳細分析所涉及的概念,并對核心概念予以實現。
第1章 游戲AI的基礎知識 1
1.1 創建生活幻象 1
1.2 利用AI進一步完善游戲 2
1.3 在Unity使用AI 3
1.4 定義主體 3
1.5 有限狀態機概述 3
1.6 通過主體視角查看場景 4
1.7 路徑跟蹤 5
1.7.1 A*尋路 6
1.7.2 使用網格導航 7
1.8 群集方案 9
1.9 行為樹 9
1.10 模糊邏輯 11
1.11 本章小結 12
第2章 有限狀態機 13
2.1 FSM應用 13
2.2 生成狀態機行為 14
2.2.1 生成AnimationController資源 14
2.2.2 Layers項和Parameters項 16
2.2.3 動畫控制查看器 18
2.2.4 行為的圖像化 18
2.2.5 生成第一個狀態 19
2.2.6 狀態間的轉換 19
2.3 創建玩家坦克對象 20
2.4 生成敵方坦克對象 20
2.4.1 選擇轉換 21
2.4.2 實現過程 22
2.5 本章小結 32
第3章 實現感知系統 33
3.1 基本的感知系統 33
3.1.1 視錐 34
3.1.2 基于球體的聽覺、感覺和嗅覺 35
3.1.3 擴展AI 35
3.1.4 感知系統的創新 36
3.2 構建場景 36
3.3 創建玩家坦克 37
3.3.1 實現玩家坦克 38
3.3.2 實現Aspect類 40
3.4 創建AI角色 41
3.5 使用Sense類 43
3.6 視見功能 44
3.7 觸覺系統 46
3.8 測試結果 48
3.9 本章小結 49
第4章 尋路方案 50
4.1 路徑跟蹤 50
4.1.1 路徑腳本 52
4.1.2 使用路徑跟蹤器 53
4.1.3 躲避障礙物 56
4.1.4 添加定制層 57
4.1.5 實現躲避邏輯 58
4.2 A*尋路算法 63
4.2.1 算法回顧 63
4.2.2 算法實現 64
4.3 導航網格 83
4.3.1 構建地圖 83
4.3.2 靜態障礙物 84
4.3.3 導航網格的烘焙 84
4.3.4 使用NavMesh主體對象 87
4.3.5 設置目的地 88
4.3.6 Target類 89
4.3.7 斜面測試 90
4.3.8 區域探索 92
4.3.9 Off Mesh Links連接 94
4.3.10 生成Off Mesh Links 94
4.3.11 設置Off Mesh Links 95
4.4 本章小結 97
第5章 群集行為 98
5.1 群集算法初探 98
5.2 理解群集算法背后的概念 98
5.3 Unity示例中的群集行為 100
5.3.1 模擬個體行為 101
5.3.2 創建控制器 108
5.4 替代方案 110
5.5 使用人群群集算法 118
5.5.1 實現簡單的群集模擬 118
5.5.2 使用CrowdAgent組件 120
5.5.3 添加障礙物 121
5.6 本章小結 124
第6章 行為樹 125
6.1 行為樹的基本概念 125
6.1.1 理解不同的節點類型 126
6.1.2 定義復合節點 126
6.1.3 理解修飾節點 127
6.1.4 描述葉節點 128
6.2 估算現有方案 128
6.3 實現基本的行為樹框架 129
6.3.1 實現Node基類 129
6.3.2 將節點實現于選取器上 130
6.3.3 序列的實現 132
6.3.4 將修飾節點實現為反相器 133
6.3.5 創建通用行為節點 135
6.4 框架測試 136
6.4.1 行為樹的規劃 136
6.4.2 檢查場景構建結果 137
6.4.3 考察MathTree節點 138
6.4.4 執行測試 143
6.5 本章小結 146
第7章 模糊邏輯 147
7.1 定義模糊邏輯 147
7.2 模糊邏輯應用 149
7.2.1 實現簡單的模糊邏輯系統 149
7.2.2 擴展集合 157
7.2.3 數據的逆模糊化 157
7.3 使用觀測數據 158
7.4 模糊邏輯的其他應用 161
7.4.1 加入其他概念 161
7.4.2 創建獨特的體驗 161
7.5 本章小結 162
第8章 整合過程 163
8.1 制定規則 163
8.2 創建高塔對象 164
8.3 構建坦克對象 173
8.4 構建場景環境 177
8.5 測試示例 178
8.6 本章小結 179