Unity 3D人工智能编程

综合评级:
★★★★★

定价:
¥59.00

作者:
(美)昂.斯尤.基奥 等著,李秉义 译

出版社:
机械工业出版社

出版日期:
2015年6月

页数:
195

字数:
350000

ISBN:
9787111503897

书籍介绍

本书重点关注如何将人工智能技术应用于Unity3D游戏项目。书中从有限状态机开始,接着探讨了如何为你的游戏增加一些随机性,让游戏变得更加难以预测,更加有趣。如何在一个游戏中加入一个感应系统让游戏中的角色可以感知周围的环境,同时使得代码不会随着项目规模的扩大变得难以维护。如何将群组行为用于一组移动的对象,这样可以有效地控制一组移动对象的行为。然后探讨了如何让人工智能角色跟随一条规定的路径进行移动,在此基础上,讲述了如何实现A*寻路算法,以对游戏引擎的寻路原理有更深一层的理解。紧接着介绍了如何在Unity3D中使用导航网格方便快捷地实现寻路。然后讲解了当游戏规模变大,有限状态机的代码变得冗长,难以维护时,使用行为树来解决这个问题,并讲解了如何在Unity3D中使用Behave这个免费插件来实现行为树。最后,用一个车辆战斗游戏将本书中提到的大多数知识点融会贯通,应用于最后这个规模稍大的游戏中。

目录

前言

第1章人工智能导论

1.1人工智能

1.2游戏中的人工智能

1.3人工智能技术

1.3.1有限状态机

1.3.2人工智能中的随机性和概率

1.3.3感应器系统

1.3.4群组、蜂拥和羊群效应

1.3.5路径跟随和引导

1.3.6A*寻路算法

1.3.7导航网格

1.3.8行为树

1.3.9运动

1.3.10Dijkstra算法

1.4本章小结

第2章有限状态机

2.1玩家的坦克

2.1.1PlayerTankController类

2.1.2初始化

2.2子弹类

2.3设置航点

2.4抽象有限状态机类

2.5敌方坦克的人工智能

2.5.1巡逻状态

2.5.2追逐状态

2.5.3攻击状态

2.5.4死亡状态

2.6使用有限状态机框架

2.6.1AdvanceFSM类

2.6.2FSMState类

2.6.3状态类

2.6.4NPCTankController类

2.7本章小结

第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.1Node

7.2.2PriorityQueue

7.2.3GridManager

7.2.4AStar

7.2.5TestCode类

7.3场景设置

7.4测试

7.5本章小结

第8章导航网格

8.1简介

8.2设置地图

8.2.1NavigationStatic

8.2.2烘焙导航网格

8.2.3导航网格代理

8.3有斜坡的场景

8.4NavMeshLayers

8.5分离网格链接

8.5.1生成分离网格链接

8.5.2手动生成分离网格链接

8.6本章小结

第9章行为树

9.1Behave插件

9.2工作流

9.3行为节点

9.4与脚本的接口

9.5装饰节点

9.6Behave调试器

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本章小结

前言

Preface 前 言本书旨在帮助你把各种人工智能技术应用到你的游戏中。我们将会讨论决策技术,比如有限状态机和行为树;也将探讨运动、避开障碍和群组行为;还将演示如何跟随一条路径,如何使用A*寻路算法来创建一条路径,以及如何使用导航网格到达目的地。作为额外收获,你将详细了解随机性和概率,并把这些概念应用到最后一个综合项目中。

  本书内容第1章讨论什么是人工智能,如何将其应用到游戏中,以及游戏中使用的各种实现人工智能的技术。

  第2章讨论人工智能中需要用到的一种简化决策管理的方法。我们使用有限状态机来确定人工智能在特定状态下的行为,以及这种状态下人工智能如何转换为其他状态。

  第3章讨论概率论的基础知识,以及如何改变特定输出的概率。然后学习如何给游戏增加随机性,让游戏中的人工智能更难以预测。

  第4章介绍怎样让游戏角色在某些情况下能够感知他们周围的世界。当他们具有视觉和听觉时,游戏角色会知道敌人就在附近,他们还会知道何时发起攻击。

  第5章讨论多个对象组队同时行进的情况。该章将探讨两种实现群组行为的方式,以及这两种方式是怎样使这些对象同时行进的。

  第6章学习人工智能角色如何跟随一条给定的路径到达目的地。我们将了解人工智能角色如何在不知道路径的情况下找到目标,以及如何使其移向目标的同时避开障碍。

  第7章讨论一个流行的算法,即寻找从指定位置到目标位置的最优路径。有了A*算法,我们可以扫描地形并找到到达目标的最优路径。

  第8章讨论如何利用Unity的能力使寻路更易于实现。通过创建一个导航网格(需要使用Unity Pro版),我们能够更好地表示周围的场景,然后就能使用图块和A*算法。

  第9章讲解从有限状态机扩展而来的行为树,即使在最为复杂的游戏中我们也可以使用它。我们将使用免费插件Behave来帮助在Unity中创建并管理行为树。

  第10章把我们在本书中所学的各种原理整合在最后一个项目中。在这里你能够应用所学的人工智能原理,设计出一个令人难忘的车辆战斗游戏。

  本书要求配置学习本书,要求读者安装Unity 3.5或更高版本。第8章讨论导航网格,顾名思义涉及创建一个导航网格,这需要你安装Unity Pro版本;第9章讨论行为树,要求下载Behave——一个免费的行为树插件,这需要你拥有一个Unity Store账号。不过这些需求都是可选的,因为本书配备的资源中已经为你准备好了导航网格和Behave插件,可登录华章网站下载,网址为www.hzbook.com

  本书的读者对象本书面向任何想要学习将人工智能应用到游戏中的读者,并侧重于之前有Unity使用经验的读者。我们会用C#语言编写代码,所以我们希望你熟悉C#。

  下载示例代码和书中的彩色插图你可以在华章网站的本书页面中下载示例代码文件和书中的彩色插图。

课课家教育

未登录