定 價:59 元
叢書名:游戲開發(fā)與設(shè)計技術(shù)叢書
- 作者:(美) 昂·斯尤·基奧, 克利福德·彼得斯, 斯特·奈·斯瑞著
- 出版時間:2015/6/1
- ISBN:9787111503897
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP311.5
- 頁碼:195
- 紙張:膠版紙
- 版次:1
- 開本:16K
本書重點關(guān)注如何將人工智能技術(shù)應(yīng)用于Unity3D游戲項目。書中從有限狀態(tài)機(jī)開始,接著探討了如何為你的游戲增加一些隨機(jī)性,讓游戲變得更加難以預(yù)測,更加有趣。如何在一個游戲中加入一個感應(yīng)系統(tǒng)讓游戲中的角色可以感知周圍的環(huán)境,同時使得代碼不會隨著項目規(guī)模的擴(kuò)大變得難以維護(hù)。如何將群組行為用于一組移動的對象,這樣可以有效地控制一組移動對象的行為。然后探討了如何讓人工智能角色跟隨一條規(guī)定的路徑進(jìn)行移動,在此基礎(chǔ)上,講述了如何實現(xiàn)A*尋路算法,以對游戲引擎的尋路原理有更深一層的理解。緊接著介紹了如何在Unity3D中使用導(dǎo)航網(wǎng)格方便快捷地實現(xiàn)尋路。然后講解了當(dāng)游戲規(guī)模變大,有限狀態(tài)機(jī)的代碼變得冗長,難以維護(hù)時,使用行為樹來解決這個問題,并講解了如何在Unity3D中使用Behave這個免費插件來實現(xiàn)行為樹。最后,用一個車輛戰(zhàn)斗游戲?qū)⒈緯刑岬降拇蠖鄶?shù)知識點融會貫通,應(yīng)用于最后這個規(guī)模稍大的游戲中。
如何使游戲中的角色看上去像真實的人或動物,如何讓游戲更驚險、刺激、有趣味性,使人玩不釋手
《Unity 3D人工智能編程》通過大量的示例項目,詳細(xì)展示如何將人工智能技術(shù)應(yīng)用到Unity3D游戲,系統(tǒng)講解如何使游戲角色更具智能性,增強游戲的可玩性
人工智能技術(shù)在游戲開發(fā)中起著至關(guān)重要的作用,游戲角色的智能水平直接影響著游戲的驚險性、刺激性、趣味性。本書以實例方式詳細(xì)講解如何在Unity 3D中實現(xiàn)不同的人工智能技術(shù),如何應(yīng)用Unity 3D內(nèi)置的特性,以及如何使用Unity 3D資源商店中的腳本和插件,涵蓋有限狀態(tài)機(jī)、路徑尋找、跟隨、在圖中導(dǎo)航,以及行為樹等技術(shù),并且對于所有的算法,書中都給出了C# 實現(xiàn)代碼。
通過閱讀《Unity 3D人工智能編程》,你將學(xué)到:
構(gòu)建有限狀態(tài)機(jī)。
實現(xiàn)一個感應(yīng)系統(tǒng)。
將群組行為應(yīng)用于飛翔的對象。
在Unity 3D中運行A*尋路算法。
在游戲中應(yīng)用概率和隨機(jī)性技巧。
使用Unity 3D專業(yè)版中的特性來在圖中導(dǎo)航,進(jìn)行尋路。
學(xué)習(xí)行為樹以及Behave插件。
在最后的項目中,實現(xiàn)一個人工智能車輛戰(zhàn)斗游戲。
本書旨在幫助你把各種人工智能技術(shù)應(yīng)用到你的游戲中。我們將會討論決策技術(shù),比如有限狀態(tài)機(jī)和行為樹;也將探討運動、避開障礙和群組行為;還將演示如何跟隨一條路徑,如何使用A*尋路算法來創(chuàng)建一條路徑,以及如何使用導(dǎo)航網(wǎng)格到達(dá)目的地。作為額外收獲,你將詳細(xì)了解隨機(jī)性和概率,并把這些概念應(yīng)用到最后一個綜合項目中。
本書內(nèi)容第1章討論什么是人工智能,如何將其應(yīng)用到游戲中,以及游戲中使用的各種實現(xiàn)人工智能的技術(shù)。
第2章討論人工智能中需要用到的一種簡化決策管理的方法。我們使用有限狀態(tài)機(jī)來確定人工智能在特定狀態(tài)下的行為,以及這種狀態(tài)下人工智能如何轉(zhuǎn)換為其他狀態(tài)。
第3章討論概率論的基礎(chǔ)知識,以及如何改變特定輸出的概率。然后學(xué)習(xí)如何給游戲增加隨機(jī)性,讓游戲中的人工智能更難以預(yù)測。
第4章介紹怎樣讓游戲角色在某些情況下能夠感知他們周圍的世界。當(dāng)他們具有視覺和聽覺時,游戲角色會知道敵人就在附近,他們還會知道何時發(fā)起攻擊。
第5章討論多個對象組隊同時行進(jìn)的情況。該章將探討兩種實現(xiàn)群組行為的方式,以及這兩種方式是怎樣使這些對象同時行進(jìn)的。
第6章學(xué)習(xí)人工智能角色如何跟隨一條給定的路徑到達(dá)目的地。我們將了解人工智能角色如何在不知道路徑的情況下找到目標(biāo),以及如何使其移向目標(biāo)的同時避開障礙。
第7章討論一個流行的算法,即尋找從指定位置到目標(biāo)位置的最優(yōu)路徑。有了A*算法,我們可以掃描地形并找到到達(dá)目標(biāo)的最優(yōu)路徑。
第8章討論如何利用Unity的能力使尋路更易于實現(xiàn)。通過創(chuàng)建一個導(dǎo)航網(wǎng)格(需要使用Unity Pro版),我們能夠更好地表示周圍的場景,然后就能使用圖塊和A*算法。
第9章講解從有限狀態(tài)機(jī)擴(kuò)展而來的行為樹,即使在最為復(fù)雜的游戲中我們也可以使用它。我們將使用免費插件Behave來幫助在Unity中創(chuàng)建并管理行為樹。
第10章把我們在本書中所學(xué)的各種原理整合在最后一個項目中。在這里你能夠應(yīng)用所學(xué)的人工智能原理,設(shè)計出一個令人難忘的車輛戰(zhàn)斗游戲。
本書要求配置學(xué)習(xí)本書,要求讀者安裝Unity 3.5或更高版本。第8章討論導(dǎo)航網(wǎng)格,顧名思義涉及創(chuàng)建一個導(dǎo)航網(wǎng)格,這需要你安裝Unity Pro版本;第9章討論行為樹,要求下載Behave——一個免費的行為樹插件,這需要你擁有一個Unity Store賬號。不過這些需求都是可選的,因為本書配備的資源中已經(jīng)為你準(zhǔn)備好了導(dǎo)航網(wǎng)格和Behave插件,可登錄華章網(wǎng)站下載。
本書的讀者對象本書面向任何想要學(xué)習(xí)將人工智能應(yīng)用到游戲中的讀者,并側(cè)重于之前有Unity使用經(jīng)驗的讀者。我們會用C#語言編寫代碼,所以我們希望你熟悉C#。
下載示例代碼和書中的彩色插圖你可以在華章網(wǎng)站的本書頁面中下載示例代碼文件和書中的彩色插圖。
Aung Sithu Kyaw,Rival Edge公司聯(lián)合創(chuàng)始人,有豐富的軟件開發(fā)經(jīng)驗,并曾在多家公司從事游戲編程工作。他主要感興趣的領(lǐng)域包括游戲編程、創(chuàng)業(yè)、寫作以及分享知識。此外,他還參與撰寫《Irrlicht 1.7 Realtime 3D Engine Beginner's Guide》一書。
Clifford Peters,是一位程序員和計算機(jī)科學(xué)家,并且是一些Unity圖書的評審專家。
Thet Naing Swe,Rival Edge公司聯(lián)合創(chuàng)始人、首席創(chuàng)意官,目前在Rival Edge負(fù)責(zé)數(shù)字媒體交互咨詢項目。
李秉義,資深軟件工程師,擁有豐富的軟件開發(fā)經(jīng)驗。目前關(guān)注數(shù)據(jù)存儲與傳輸,網(wǎng)絡(luò)加速等領(lǐng)域的技術(shù),熱衷于研究開源系統(tǒng)。
前 言
第1章 人工智能導(dǎo)論 1
1.1 人工智能 1
1.2 游戲中的人工智能 2
1.3 人工智能技術(shù) 3
1.3.1 有限狀態(tài)機(jī) 3
1.3.2 人工智能中的隨機(jī)性和概率 5
1.3.3 感應(yīng)器系統(tǒng) 6
1.3.4 群組、蜂擁和羊群效應(yīng) 7
1.3.5 路徑跟隨和引導(dǎo) 8
1.3.6 A*尋路算法 9
1.3.7 導(dǎo)航網(wǎng)格 16
1.3.8 行為樹 18
1.3.9 運動 20
1.3.10 Dijkstra算法 23
1.4 本章小結(jié) 23
第2章 有限狀態(tài)機(jī) 24
2.1 玩家的坦克 24
2.1.1 PlayerTankController類 25
2.1.2 初始化 26
2.2 子彈類 29
2.3 設(shè)置航點 31
2.4 抽象有限狀態(tài)機(jī)類 32
2.5 敵方坦克的人工智能 34
2.5.1 巡邏狀態(tài) 36
2.5.2 追逐狀態(tài) 38
2.5.3 攻擊狀態(tài) 38
2.5.4 死亡狀態(tài) 40
2.6 使用有限狀態(tài)機(jī)框架 42
2.6.1 AdvanceFSM類 42
2.6.2 FSMState類 43
2.6.3 狀態(tài)類 44
2.6.4 NPCTankController 類 46
2.7 本章小結(jié) 48
第3章 隨機(jī)性和概率 49
3.1 隨機(jī)性 50
3.2 概率的定義 52
3.2.1 獨立與關(guān)聯(lián)事件 53
3.2.2 條件概率 53
3.3 人物個性 56
3.4 有限狀態(tài)機(jī)和概率 57
3.5 動態(tài)人工智能 59
3.6 示例老虎機(jī) 60
3.6.1 隨機(jī)老虎機(jī) 60
3.6.2 加權(quán)概率 63
3.7 本章小結(jié) 68
第4章 感應(yīng)器的實現(xiàn) 70
4.1 基本的感覺系統(tǒng) 71
4.2 場景設(shè)置 72
4.3 玩家的坦克與切面 73
4.3.1 玩家的坦克 74
4.3.2 切面 75
4.4 人工智能角色 76
4.4.1 感觀 77
4.4.2 視覺 78
4.4.3 觸覺 80
4.5 測試 82
4.6 本章小結(jié) 83
第5章 群組行為 84
5.1 島嶼示例中的群組行為 84
5.1.1 個體的行為 85
5.1.2 控制器 90
5.2 替代實現(xiàn) 92
5.3 本章小結(jié) 99
第6章 路徑跟隨和引導(dǎo)行為 100
6.1 跟隨一條路徑 100
6.1.1 路徑腳本 102
6.1.2 路徑跟隨 103
6.2 避開障礙物 106
6.2.1 添加定制圖層 107
6.2.2 避開障礙 108
6.3 本章小結(jié) 113
第7章 A*尋路算法 114
7.1 回顧A*尋路算法 114
7.2 實現(xiàn) 116
7.2.1 Node 116
7.2.2 PriorityQueue 117
7.2.3 GridManager 118
7.2.4 AStar 123
7.2.5 TestCode類 126
7.3 場景設(shè)置 128
7.4 測試 131
7.5 本章小結(jié) 132
第8章 導(dǎo)航網(wǎng)格 133
8.1 簡介 134
8.2 設(shè)置地圖 134
8.2.1 Navigation Static 135
8.2.2 烘焙導(dǎo)航網(wǎng)格 135
8.2.3 導(dǎo)航網(wǎng)格代理 136
8.3 有斜坡的場景 139
8.4 NavMeshLayers 141
8.5 分離網(wǎng)格鏈接 144
8.5.1 生成分離網(wǎng)格鏈接 145
8.5.2 手動生成分離網(wǎng)格鏈接 146
8.6 本章小結(jié) 148
第9章 行為樹 149
9.1 Behave插件 149
9.2 工作流 151
9.3 行為節(jié)點 153
9.4 與腳本的接口 155
9.5 裝飾節(jié)點 158
9.6 Behave調(diào)試器 160
9.7 順序節(jié)點 160
9.8 探索Behave的結(jié)果 162
9.9 選擇節(jié)點 163
9.10 優(yōu)先級選擇節(jié)點 166
9.11 并行節(jié)點 168
9.12 引用 169
9.13 機(jī)器人與外星人項目 170
9.14 本章小結(jié) 173
第10章 融會貫通 174
10.1 場景設(shè)置 175
10.2 車輛 177
10.2.1 玩家控制的車輛 178
10.2.2 人工智能車輛控制器 180
10.2.3 有限狀態(tài)機(jī) 182
10.3 武器 187
10.3.1 槍 187
10.3.2 子彈 189
10.3.3 發(fā)射器 191
10.3.4 導(dǎo)彈 193
10.4 本章小結(jié) 195