天天看點

《Unity 3D人工智能程式設計》——導讀

《Unity 3D人工智能程式設計》——導讀

本書旨在幫助你把各種人工智能技術應用到你的遊戲中。我們将會讨論決策技術,比如有限狀态機和行為樹;也将探讨運動、避開障礙和群組行為;還将示範如何跟随一條路徑,如何使用a*尋路算法來建立一條路徑,以及如何使用導航網格到達目的地。作為額外收獲,你将詳細了解随機性和機率,并把這些概念應用到最後一個綜合項目中。

第1章讨論什麼是人工智能,如何将其應用到遊戲中,以及遊戲中使用的各種實作人工智能的技術。

第2章讨論人工智能中需要用到的一種簡化決策管理的方法。我們使用有限狀态機來确定人工智能在特定狀态下的行為,以及這種狀态下人工智能如何轉換為其他狀态。

第3章讨論機率論的基礎知識,以及如何改變特定輸出的機率。然後學習如何給遊戲增加随機性,讓遊戲中的人工智能更難以預測。

第4章介紹怎樣讓遊戲角色在某些情況下能夠感覺他們周圍的世界。當他們具有視覺和聽覺時,遊戲角色會知道敵人就在附近,他們還會知道何時發起攻擊。

第5章讨論多個對象組隊同時行進的情況。該章将探讨兩種實作群組行為的方式,以及這兩種方式是怎樣使這些對象同時行進的。

第6章學習人工智能角色如何跟随一條給定的路徑到達目的地。我們将了解人工智能角色如何在不知道路徑的情況下找到目标,以及如何使其移向目标的同時避開障礙。

第7章讨論一個流行的算法,即尋找從指定位置到目标位置的最優路徑。有了a*算法,我們可以掃描地形并找到到達目标的最優路徑。

第8章讨論如何利用unity的能力使尋路更易于實作。通過建立一個導航網格(需要使用unity pro版),我們能夠更好地表示周圍的場景,然後就能使用圖塊和a*算法。

第9章講解從有限狀态機擴充而來的行為樹,即使在最為複雜的遊戲中我們也可以使用它。我們将使用免費插件behave來幫助在unity中建立并管理行為樹。

第10章把我們在本書中所學的各種原理整合在最後一個項目中。在這裡你能夠應用所學的人工智能原理,設計出一個令人難忘的車輛戰鬥遊戲。

前 言

<a href="https://yq.aliyun.com/articles/107436">第1章 人工智能導論</a>

<a href="https://yq.aliyun.com/articles/107440">1.1 人工智能</a>

<a href="https://yq.aliyun.com/articles/107441">1.2 遊戲中的人工智能</a>

<a href="https://yq.aliyun.com/articles/107449">1.3 人工智能技術</a>

1.3.1 有限狀态機

1.3.2 人工智能中的随機性和機率

1.3.3 感應器系統

1.3.4 群組、蜂擁和羊群效應

1.3.5 路徑跟随和引導

1.3.6 a*尋路算法

1.3.7 導航網格

1.3.8 行為樹

1.3.9 運動

1.3.10 dijkstra算法

<a href="https://yq.aliyun.com/articles/107452">1.4 本章小結</a>

<a href="https://yq.aliyun.com/articles/107455">第2章 有限狀态機</a>

<a href="https://yq.aliyun.com/articles/107461">2.1 玩家的坦克</a>

2.1.1  playertankcontroller類

2.1.2 初始化

<a href="https://yq.aliyun.com/articles/107476">2.2 子彈類</a>

<a href="https://yq.aliyun.com/articles/107482">2.3 設定航點</a>

<a href="https://yq.aliyun.com/articles/107487">2.4 抽象有限狀态機類</a>

<a href="https://yq.aliyun.com/articles/107500">2.5 敵方坦克的人工智能</a>

2.5.1 巡邏狀态

2.5.2 追逐狀态

2.5.3 攻擊狀态

2.5.4 死亡狀态

<a href="https://yq.aliyun.com/articles/107511">2.6 使用有限狀态機架構</a>

2.6.1 advancefsm類

2.6.2 fsmstate類

2.6.3 狀态類

2.6.4 npctankcontroller 類

<a href="https://yq.aliyun.com/articles/107514">2.7 本章小結</a>

第3章 随機性和機率

3.1 随機性

3.2 機率的定義

3.2.1 獨立與關聯事件

3.2.2 條件機率

3.3 人物個性

3.4 有限狀态機和機率

3.5 動态人工智能

3.6 示例老虎機

3.6.1  随機老虎機

3.6.2 權重機率

3.7 本章小結

第4章 感應器的實作

4.1 基本的感覺系統

4.2 場景設定

4.3 玩家的坦克與切面

4.3.1 玩家的坦克

4.3.2 切面

4.4 人工智能角色

4.4.1 感觀

4.4.2 視覺

4.4.3 觸覺

4.5 測試

4.6 本章小結

第5章 群組行為

5.1 島嶼示例中的群組行為

5.1.1 個體的行為

5.1.2 控制器

5.2 替代實作

5.3 本章小結

第6章 路徑跟随和引導行為

6.1 跟随一條路徑

6.1.1 路徑腳本

6.1.2 路徑跟随

6.2 避開障礙物

6.2.1 添加定制圖層

6.2.2 避開障礙

6.3 本章小結

第7章 a*尋路算法

7.1 回顧a*尋路算法

7.2 實作

7.2.1 node

7.2.2 priorityqueue

7.2.3 gridmanager

7.2.4 astar

7.2.5 testcode類

7.3 場景設定

7.4 測試

7.5 本章小結

第8章 導航網格

8.1 簡介

8.2 設定地圖

8.2.1 navigation static

8.2.2 烘焙導航網格

8.2.3 導航網格代理

8.3 有斜坡的場景

8.4 navmeshlayers

8.5 分離網格連結

8.5.1 生成分離網格連結

8.5.2 手動生成分離網格連結

8.6 本章小結

第9章 行為樹

9.1 behave插件

9.2 工作流

9.3 行為節點

9.4 與腳本的接口

9.5 裝飾節點

9.6 behave調試器

9.7 順序節點

9.8 探索behave的結果

9.9 選擇節點

9.10 優先級選擇節點

9.11 并行節點

9.12 引用

9.13 機器人與外星人項目

9.14 本章小結

第10章 融會貫通

10.1 場景設定

10.2 車輛

10.2.1 玩家控制的車輛

10.2.2 人工智能車輛控制器

10.2.3 有限狀态機

10.3 武器

10.3.1 槍

10.3.2 子彈

10.3.3 發射器

10.3.4 飛彈

10.4 本章小結

繼續閱讀