要想開(kāi)發(fā)一款優(yōu)秀的游戲,人工智能必不可少。本書精選了Unity3D游戲開(kāi)發(fā)中最關(guān)鍵、最實(shí)用的幾項(xiàng)人工智能關(guān)鍵技術(shù),以實(shí)例的方式由淺入深地講解了深?yuàn)W而強(qiáng)大的人工智能技術(shù)、設(shè)計(jì)原則以及編程實(shí)現(xiàn)方法,并且對(duì)書中的每一個(gè)案例都進(jìn)行了詳細(xì)注釋,所有實(shí)例均運(yùn)行測(cè)試通過(guò)。掌握了書中的技術(shù),可以使游戲角色具有良好的智能,大大增強(qiáng)游戲的可玩性!
Unity3D是近年非常流行的一個(gè)3D游戲開(kāi)發(fā)引擎,已成為手機(jī)游戲開(kāi)發(fā)的主要開(kāi)發(fā)工具之一,也用于計(jì)算機(jī)虛擬現(xiàn)實(shí)領(lǐng)域的模擬飛行、模擬射擊、模擬駕駛等技術(shù)的開(kāi)發(fā)。手機(jī)(或其他平臺(tái))的游戲逐漸高檔化、復(fù)雜化,游戲角色也需要具有更高的“智能”。 本書專門講解了Unity3D游戲人工智能開(kāi)發(fā)的相關(guān)技術(shù)。書中精選了游戲AI中最必要、最實(shí)用的幾項(xiàng)關(guān)鍵技術(shù),用大量Unity3D示例代碼、圖片,以深入淺出的方式講解游戲人工智能理論、設(shè)計(jì)原則和Unity3D編程實(shí)現(xiàn)方法。每個(gè)程序都有詳細(xì)的注釋并運(yùn)行測(cè)試通過(guò)! ∠M緯芙o具備初步Unity3D游戲開(kāi)發(fā)編程能力的讀者在創(chuàng)作“更高智能”游戲角色時(shí)提供系統(tǒng)地、快捷地幫助! ”緯xUnity3D游戲開(kāi)發(fā)中最關(guān)鍵、最實(shí)用的人工智能技術(shù),用大量案例詳細(xì)剖析了人工智能理論、設(shè)計(jì)原則和編程實(shí)現(xiàn)的方法。 每個(gè)程序都進(jìn)行詳細(xì)注釋,并運(yùn)行通過(guò),可以跨版本運(yùn)行! 懽黠L(fēng)格深入淺出,輕松實(shí)現(xiàn)從理論到實(shí)踐的跨越。 主要內(nèi)容 Unity3D人工智能架構(gòu)模型 實(shí)現(xiàn)AI角色的自主移動(dòng)──操控行為 尋找最短路徑并避開(kāi)障礙物──A*尋路 AI角色對(duì)游戲世界的感知 AI角色的自主決策(有限狀態(tài)機(jī)、行為樹(shù)) AI綜合示例──第三人稱射擊游戲 適用讀者: 對(duì)于Unity3D游戲開(kāi)發(fā)愛(ài)好者來(lái)說(shuō),這是一本非常好的AI入門讀物。本書精選游戲AI中的關(guān)鍵技術(shù),始終圍繞AI的精髓展開(kāi),并用最簡(jiǎn)單的方式來(lái)實(shí)現(xiàn),讀者可以通過(guò)運(yùn)行、 Unity3D是近年非常流行的一個(gè)3D游戲開(kāi)發(fā)引擎,已成為手機(jī)游戲開(kāi)發(fā)的主要開(kāi)發(fā)工具之一,也用于計(jì)算機(jī)虛擬現(xiàn)實(shí)領(lǐng)域的模擬飛行、模擬射擊、模擬駕駛等技術(shù)的開(kāi)發(fā)。手機(jī)(或其他平臺(tái))的游戲逐漸高檔化、復(fù)雜化,游戲角色也需要具有更高的“智能”。 本書專門講解了Unity3D游戲人工智能開(kāi)發(fā)的相關(guān)技術(shù)。書中精選了游戲AI中最必要、最實(shí)用的幾項(xiàng)關(guān)鍵技術(shù),用大量Unity3D示例代碼、圖片,以深入淺出的方式講解游戲人工智能理論、設(shè)計(jì)原則和Unity3D編程實(shí)現(xiàn)方法。每個(gè)程序都有詳細(xì)的注釋并運(yùn)行測(cè)試通過(guò)! ∠M緯芙o具備初步Unity3D游戲開(kāi)發(fā)編程能力的讀者在創(chuàng)作“更高智能”游戲角色時(shí)提供系統(tǒng)地、快捷地幫助。 本書精選Unity3D游戲開(kāi)發(fā)中最關(guān)鍵、最實(shí)用的人工智能技術(shù),用大量案例詳細(xì)剖析了人工智能理論、設(shè)計(jì)原則和編程實(shí)現(xiàn)的方法。 每個(gè)程序都進(jìn)行詳細(xì)注釋,并運(yùn)行通過(guò),可以跨版本運(yùn)行! 懽黠L(fēng)格深入淺出,輕松實(shí)現(xiàn)從理論到實(shí)踐的跨越。 主要內(nèi)容 Unity3D人工智能架構(gòu)模型 實(shí)現(xiàn)AI角色的自主移動(dòng)──操控行為 尋找最短路徑并避開(kāi)障礙物──A*尋路 AI角色對(duì)游戲世界的感知 AI角色的自主決策(有限狀態(tài)機(jī)、行為樹(shù)) AI綜合示例──第三人稱射擊游戲 適用讀者: 對(duì)于Unity3D游戲開(kāi)發(fā)愛(ài)好者來(lái)說(shuō),這是一本非常好的AI入門讀物。本書精選游戲AI中的關(guān)鍵技術(shù),始終圍繞AI的精髓展開(kāi),并用最簡(jiǎn)單的方式來(lái)實(shí)現(xiàn),讀者可以通過(guò)運(yùn)行、模仿書中的實(shí)例代碼來(lái)快速實(shí)現(xiàn)“更高智能”的AI角色! (duì)于資深的游戲設(shè)計(jì)師和游戲程序開(kāi)發(fā)人員而言,本書也很有益處。游戲人工智能程序員必須在有限的計(jì)算機(jī)硬件資源(CPU速度、內(nèi)存大。┫鹿ぷ,本書精選了“操控行為”、“A*尋路”、“有限狀態(tài)機(jī)”、“行為樹(shù)”等算法的Unity3D實(shí)現(xiàn)方法,將使讀者對(duì)游戲AI的關(guān)鍵領(lǐng)域有更深入的了解,可以深刻地理解代碼背后的基本原理、特點(diǎn)及適用范圍! ”緯勺鳛閿(shù)字媒體技術(shù)、數(shù)字媒體藝術(shù)等專業(yè)的“游戲人工智能”課程教材,計(jì)算機(jī)科學(xué)與技術(shù)、自動(dòng)化專業(yè)本科、研究生的“人工智能”課程的教材與實(shí)驗(yàn)參考書。對(duì)于游戲開(kāi)發(fā)培訓(xùn)學(xué)校的師生來(lái)說(shuō),本書可作為Unity3D游戲開(kāi)發(fā)的高階教材。本書重視AI技術(shù)的條理性,講解深入淺出,用實(shí)例來(lái)講解深?yuàn)W的AI理論、設(shè)計(jì)原則與實(shí)現(xiàn)方法,便于組織教學(xué)與學(xué)生系統(tǒng)學(xué)習(xí)。
第1章 Unity3D人工智能架構(gòu)模型·1
1.1 游戲AI的架構(gòu)模型3
1.1.1 運(yùn)動(dòng)層4
1.1.2 決策層4
1.1.3 戰(zhàn)略層4
1.1.4 AI架構(gòu)模型的其他部分5
1.2 FPS/TPS游戲中的AI解析5
1.2.1 FPS/TPS中的運(yùn)動(dòng)層6
1.2.2 FPS/TPS中的決策層6
1.2.3 FPS/TPS中的戰(zhàn)略層7
1.2.4 FPS/TPS中AI架構(gòu)模型的支撐部分7
第2章 實(shí)現(xiàn)AI角色的自主移動(dòng)——操控行為·9
2.1 Unity3D操控行為編程的主要基類11
2.1.1 將AI角色抽象成一個(gè)質(zhì)點(diǎn)——Vehicle類12
2.1.2 控制AI角色移動(dòng)——AILocomotion類14
2.1.3 各種操控行為的基類——Steering類16
2.2 個(gè)體AI角色的操控行為17
2.2.1 靠近17
2.2.2 離開(kāi)19
2.2.3 抵達(dá)20
2.2.4 追逐22
2.2.5 逃避25
2.2.6 隨機(jī)徘徊26
2.2.7 路徑跟隨29
2.2.8 避開(kāi)障礙33
2.3 群體的操控行為41
2.3.1 組行為41
2.3.2 檢測(cè)附近的AI角色42
2.3.3 與群中鄰居保持適當(dāng)距離——分離44
2.3.4 與群中鄰居朝向一致——隊(duì)列46
2.3.5 成群聚集在一起——聚集47
2.4 個(gè)體與群體的操控行為組合49
2.5 幾種操控行為的編程解析51
2.5.1 模擬鳥(niǎo)群飛行51
2.5.2 多AI角色障礙賽54
2.5.3 實(shí)現(xiàn)動(dòng)物遷徙中的跟隨領(lǐng)隊(duì)行為56
2.5.4 排隊(duì)通過(guò)狹窄通道64
2.6 操控行為的快速實(shí)現(xiàn)——使用Unity3D開(kāi)源庫(kù)UnitySteer72
2.7 操控行為編程的其他問(wèn)題75
第3章 尋找最短路徑并避開(kāi)障礙物——A*尋路·77
3.1 實(shí)現(xiàn)A*尋路的3種工作方式78
3.1.1 基本術(shù)語(yǔ)78
3.1.2 方式1:創(chuàng)建基于單元的導(dǎo)航圖79
3.1.3 方式2:創(chuàng)建可視點(diǎn)導(dǎo)航圖80
3.1.4 方式3:創(chuàng)建導(dǎo)航網(wǎng)格81
3.2 A*尋路算法是如何工作的83
3.2.1 A*尋路算法的偽代碼84
3.2.2 用一個(gè)實(shí)例來(lái)完全理解A*尋路算法86
3.3 用A*算法實(shí)現(xiàn)戰(zhàn)術(shù)尋路97
3.4 A* Pathfinding Project插件的使用100
3.4.1 基本的點(diǎn)到點(diǎn)尋路100
3.4.2 尋找最近的多個(gè)道具(血包、武器、藥等)106
3.4.3 戰(zhàn)術(shù)尋路——避開(kāi)火力范圍110
3.4.4 在復(fù)雜地形中尋路——多層建筑物中的跨層尋路116
3.4.5 RTS中的小隊(duì)尋路——用操控行為和A*尋路實(shí)現(xiàn)120
3.4.6 使用A* Pathfinding Project插件需要注意的問(wèn)題137
3.5 A*尋路的適用性138
第4章 AI角色對(duì)游戲世界的感知·139
4.1 AI角色對(duì)環(huán)境信息的感知方式141
4.1.1 輪詢方式141
4.1.2 事件驅(qū)動(dòng)方式141
4.1.3 觸發(fā)器142
4.2 常用感知類型的實(shí)現(xiàn)143
4.2.1 所有觸發(fā)器的基類——Trigger類143
4.2.2 所有感知器的基類——Sensor類145
4.2.3 事件管理器146
4.2.4 視覺(jué)感知148
4.2.5 聽(tīng)覺(jué)感知153
4.2.6 觸覺(jué)感知156
4.2.7 記憶感知157
4.2.8 其他類型的感知——血包、寶物等物品的感知159
4.3 AI士兵的綜合感知示例164
4.3.1 游戲場(chǎng)景設(shè)置165
4.3.2 創(chuàng)建AI士兵角色166
4.3.3 創(chuàng)建玩家角色176
4.3.4 顯示視覺(jué)范圍、聽(tīng)覺(jué)范圍和記憶信息179
4.3.5 游戲運(yùn)行結(jié)果182
第5章 AI角色自主決策——有限狀態(tài)機(jī)·184
5.1 有限狀態(tài)機(jī)的FSM圖185
5.1.1 《Pac-Man(吃豆人)》游戲中紅幽靈的FSM圖185
5.1.2 《QuakeⅡ(雷神2)》中Monster怪獸的有限狀態(tài)機(jī)186
5.2 方法1:用Switch語(yǔ)句實(shí)現(xiàn)有限狀態(tài)機(jī)191
5.2.1 游戲場(chǎng)景設(shè)置192
5.2.2 創(chuàng)建子彈預(yù)置體193
5.2.3 創(chuàng)建敵人AI角色194
5.2.4 創(chuàng)建玩家角色及運(yùn)行程序202
5.3 方法2:用FSM框架實(shí)現(xiàn)通用的有限狀態(tài)機(jī)205
5.3.1 FSM框架205
5.3.2 FSMState類——AI狀態(tài)的基類206
5.3.3 AdvancedFSM類——管理所有的狀態(tài)類210
5.3.4 PatrolState類——AI角色的巡邏狀態(tài)213
5.3.5 ChaseState類——AI角色的追逐狀態(tài)215
5.3.6 AttackState類——AI角色的攻擊狀態(tài)217
5.3.7 DeadState類——AI角色的死亡狀態(tài)218
5.3.8 AIController類——?jiǎng)?chuàng)建有限狀態(tài)機(jī),控制AI角色的行為219
5.3.9 游戲場(chǎng)景設(shè)置223
第6章 AI角色的復(fù)雜決策——行為樹(shù)·224
6.1 行為樹(shù)技術(shù)原理226
6.1.1 行為樹(shù)基本術(shù)語(yǔ)226
6.1.2 行為樹(shù)中的葉節(jié)點(diǎn)227
6.1.3 行為樹(shù)中的組合節(jié)點(diǎn)227
6.1.4 子樹(shù)的復(fù)用232
6.1.5 使用行為樹(shù)與有限狀態(tài)機(jī)的權(quán)衡233
6.1.6 行為樹(shù)執(zhí)行時(shí)的協(xié)同(Coroutine)233
6.2 行為樹(shù)設(shè)計(jì)示例236
6.2.1 示例1:有限狀態(tài)機(jī)/行為樹(shù)的轉(zhuǎn)換236
6.2.2 示例2:帶隨機(jī)節(jié)點(diǎn)的戰(zhàn)斗AI角色行為樹(shù)237
6.2.3 示例3:足球球員的AI行為樹(shù)238
6.3 行為樹(shù)的執(zhí)行流程解析——陣地軍旗爭(zhēng)奪戰(zhàn)239
6.3.1 軍旗爭(zhēng)奪戰(zhàn)行為樹(shù)239
6.3.2 軍旗爭(zhēng)奪戰(zhàn)的行為樹(shù)遍歷過(guò)程詳解240
6.4 使用React插件快速創(chuàng)建敵人AI士兵行為樹(shù)248
6.4.1 游戲場(chǎng)景設(shè)置249
6.4.2 創(chuàng)建行為樹(shù)249
6.4.3 編寫腳本實(shí)現(xiàn)行為樹(shù)253
6.4.4 創(chuàng)建敵人AI士兵角色256
6.4.5 創(chuàng)建玩家角色及運(yùn)行程序257
第7章 AI綜合示例——第三人稱射擊游戲·258
7.1 TPS游戲示例總體設(shè)計(jì)258
7.1.1 TPS游戲示例概述258
7.1.2 敵人AI角色行為樹(shù)設(shè)計(jì)259
7.2 TPS游戲示例場(chǎng)景的創(chuàng)建261
7.2.1 游戲場(chǎng)景設(shè)置261
7.2.2 隱蔽點(diǎn)設(shè)置261
7.3 為子彈和武器編寫腳本262
7.3.1 創(chuàng)建子彈預(yù)置體262
7.3.2 為M4槍編寫腳本265
7.4 創(chuàng)建玩家角色268
7.5 創(chuàng)建第三人稱相機(jī)274
7.6 創(chuàng)建敵人AI士兵角色278
7.6.1 用React插件畫出行為樹(shù)278
7.6.2 為行為樹(shù)編寫代碼280
7.6.3 敵人AI士兵角色控制腳本291
7.7 創(chuàng)建GUI用戶界面297
7.8 游戲截圖298
參考文獻(xiàn)·301