《Unity 3D人工智能编程》——导读

简介: 本书旨在帮助你把各种人工智能技术应用到你的游戏中。我们将会讨论决策技术,比如有限状态机和行为树;也将探讨运动、避开障碍和群组行为;还将演示如何跟随一条路径,如何使用A*寻路算法来创建一条路径,以及如何使用导航网格到达目的地。

910a2bca7fbec22b6b939fa9bc0c2b648bec0463

前 言

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

本书内容

第1章讨论什么是人工智能,如何将其应用到游戏中,以及游戏中使用的各种实现人工智能的技术。
第2章讨论人工智能中需要用到的一种简化决策管理的方法。我们使用有限状态机来确定人工智能在特定状态下的行为,以及这种状态下人工智能如何转换为其他状态。
第3章讨论概率论的基础知识,以及如何改变特定输出的概率。然后学习如何给游戏增加随机性,让游戏中的人工智能更难以预测。
第4章介绍怎样让游戏角色在某些情况下能够感知他们周围的世界。当他们具有视觉和听觉时,游戏角色会知道敌人就在附近,他们还会知道何时发起攻击。
第5章讨论多个对象组队同时行进的情况。该章将探讨两种实现群组行为的方式,以及这两种方式是怎样使这些对象同时行进的。
第6章学习人工智能角色如何跟随一条给定的路径到达目的地。我们将了解人工智能角色如何在不知道路径的情况下找到目标,以及如何使其移向目标的同时避开障碍。
第7章讨论一个流行的算法,即寻找从指定位置到目标位置的最优路径。有了A*算法,我们可以扫描地形并找到到达目标的最优路径。
第8章讨论如何利用Unity的能力使寻路更易于实现。通过创建一个导航网格(需要使用Unity Pro版),我们能够更好地表示周围的场景,然后就能使用图块和A*算法。
第9章讲解从有限状态机扩展而来的行为树,即使在最为复杂的游戏中我们也可以使用它。我们将使用免费插件Behave来帮助在Unity中创建并管理行为树。
第10章把我们在本书中所学的各种原理整合在最后一个项目中。在这里你能够应用所学的人工智能原理,设计出一个令人难忘的车辆战斗游戏。

目 录

前 言
第1章 人工智能导论
1.1 人工智能
1.2 游戏中的人工智能
1.3 人工智能技术
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算法
1.4 本章小结

第2章 有限状态机
2.1 玩家的坦克
2.1.1  PlayerTankController类
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.1 AdvanceFSM类
2.6.2 FSMState类
2.6.3 状态类
2.6.4 NPCTankController 类
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.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 本章小结

相关文章
|
2月前
|
Web App开发 人工智能 自然语言处理
【人工智能时代】AI赋能编程 | 自动化工具助力高效办公
【人工智能时代】AI赋能编程 | 自动化工具助力高效办公
【人工智能时代】AI赋能编程 | 自动化工具助力高效办公
|
1月前
|
人工智能 自然语言处理 算法
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
国产新型AI编程助手—DevChat AI插件在VSCode中的应用
|
3月前
|
人工智能 安全 前端开发
Copilot插件:开启AI编程新篇章
Copilot插件:开启AI编程新篇章
228 0
|
1天前
|
人工智能 前端开发 Java
Java语言开发的AI智慧导诊系统源码springboot+redis 3D互联网智导诊系统源码
智慧导诊解决盲目就诊问题,减轻分诊工作压力。降低挂错号比例,优化就诊流程,有效提高线上线下医疗机构接诊效率。可通过人体画像选择症状部位,了解对应病症信息和推荐就医科室。
27 10
|
25天前
|
人工智能 文字识别 安全
谷歌推出通用AI代理:能自动执行600多种动作,游玩复杂3D游戏
谷歌DeepMind的SIMA项目旨在创建一个通用AI代理,该代理能在多种3D环境中执行复杂任务,通过语言指令与环境交互。目标是让AI理解并执行600多种动作,包括导航和建造等。使用多样化的3D环境训练,结合零基础训练和预训练模型,如SPARC和Phenaki,以增强语言理解和行动执行。评估方法多角度,包括人类评估,但也面临效率和成本挑战。项目注重伦理安全,但AI在复杂环境中的性能仍有提升空间。DeepMind将继续优化代理的鲁棒性,扩大研究范围,以推动通用人工智能的发展。
21 2
谷歌推出通用AI代理:能自动执行600多种动作,游玩复杂3D游戏
|
1月前
|
人工智能 API
谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
【2月更文挑战第24天】谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
40 1
谷歌SIMA:一种适用于 3D 虚拟环境的通用 AI 智能体
|
1月前
|
人工智能 自然语言处理 开发者
Stability AI & VAST 强强联手推出开源单图生成3D模型TripoSR
【2月更文挑战第15天】Stability AI & VAST 强强联手推出开源单图生成3D模型TripoSR
48 1
Stability AI & VAST 强强联手推出开源单图生成3D模型TripoSR
|
2月前
|
人工智能 自然语言处理 架构师
AI 编程如何颠覆生产力 | 参与体验免费领取 ArchSummit 架构师峰会专属门票
AI 编程如何颠覆生产力 | 参与体验免费领取 ArchSummit 架构师峰会专属门票
|
2月前
|
机器学习/深度学习 人工智能 自然语言处理
探索Copilot:AI辅助编程的新时代
【2月更文挑战第4天】探索Copilot:AI辅助编程的新时代
92 4
探索Copilot:AI辅助编程的新时代
|
2月前
|
人工智能 自然语言处理 搜索推荐
迈向AI时代:掌握Python编程与ChatGPT的结合
ChatGPT是一种基于自然语言处理技术的模型,它可以理解人类的语言并生成相应的回复。而Python编程则是一种通过编写代码来实现特定功能的技能。将ChatGPT与Python编程相结合,我们可以利用ChatGPT来帮助我们理解编程概念、编写代码以及解决编程问题。
674 2