作者 |
豪尔赫·帕拉西奥斯 刘向群 |
丛书名 |
游戏开发与设计技术丛书 |
出版社 |
机械工业出版社 |
ISBN |
9782101121723 |
简要 |
简介 |
内容简介书籍计算机书籍 ---------------------------Unity人工智能实战(原书第2版)--------------------------- 本书将介绍构建强大的AI的工具,既可以创建更聪明的敌人,改进大 boss,也可以构建自定义的AI引擎。本书旨在成为使用Unity开发人工智能技术的一站式参考。首先,你将快速浏览在游戏环境中使用agent、编程移动以及导航的基本构建模块。接下来,你将通过实例学习如何使用简单的自定义技术改进agent的决策制定和协调机制。然后,你将学习如何模拟agent的视觉和听觉,用于自然和拟人的AI行为,再用图结构改进agent。本书还涵盖了新的导航网格技术,这项技术在Unity 2018中引入,改良了AI和路径查找工具。你还可以用决策制定技术加强AI,运用于简单的诸如井字棋和跳棋的棋类游戏,以及安排agent之间的协作,使它们像整体一样工作。 ---------------------------VR/AR/MR开发实战——基于Unity与UE4引擎--------------------------- 本书由Unity官方教材作者亲自打造,既适合艺术设计类专业的学生,又适合计算机技术类专业及综合应用类专业学生学习,通过各个章节的理论结合实例工程的结构,在每个实例中切入核心功能点,引导学生一边阅读、一边动手,通过实际操作来掌握学习内容,使学生快速掌握Unity和UE4引擎的使用方法,通过各章节的学习,终掌握虚拟现实交互应用及游戏应用的开发。 |
目录 |
---------------------------Unity人工智能实战(原书第2版)--------------------------- 译者序 前 言 第1章 行为——智能移动 1 1.1 简介 1 1.2 创建行为模板 2 1.3 追赶和逃跑 4 1.4 为物理引擎调整agent 6 1.5 到达和离开 8 1.6 朝向物体 10 1.7 徘徊 12 1.8 按路径移动 14 1.9 避开agent 18 1.10 避开墙体 20 1.11 通过权重混合多个行为 21 1.12 通过优先级混合多个行为 22 1.13 射击抛射体 24 1.14 预测抛射体的着地点 26 1.15 锁定抛射体 27 1.16 创建跳跃系统 28 第2章 导航 32 2.1 简介 32 2.2 用网格表示世界 33 2.3 用可视点法表示世界 41 2.4 用自制的导航网格表示世界 44 2.5 用深度优先搜索在迷宫中找到出路 47 2.6 用广度优先搜索在网格中找到最短路径 49 2.7 用迪杰斯特拉算法找到最短路径 50 2.8 用A*找到最优路径 53 2.9 改进A*算法的内存占用:IDA* 56 2.10 在多个帧中规划导航:时间片搜索 58 2.11 使路径变得平滑 60 第3章 决策制定 62 3.1 简介 62 3.2 通过决策树做选择 62 3.3 实现有限状态机 65 3.4 改进有限状态机:分层的有限状态机 67 3.5 实现行为树 69 3.6 使用模糊逻辑 71 3.7 用面向目标的行为制定决策 74 3.8 实现黑板架构 76 3.9 尝试Unity的动画状态机 78 第4章 新的NavMesh API 84 4.1 简介 84 4.2 初始化NavMesh开发组件 84 4.3 创建和管理NavMesh,用于多种类型的agent 86 4.4 在运行时创建和更新NavMesh数据 89 4.5 控制NavMesh实例的生命周期 90 4.6 连接多个NavMesh实例 92 4.7 创建动态的带有障碍物的NavMesh 93 4.8 用NavMesh API实现某些行为 94 第5章 协作和战术 97 5.1 简介 97 5.2 管理队形 98 5.3 扩展A*算法用于协作:A* mbush 102 5.4 用高度分析路径点 105 5.5 用覆盖性和可见性分析路径点 106 5.6 自动化创建路径点 107 5.7 将路径点作为示例用于决策制定 110 5.8 实现势力图 111 5.9 用淹没图改进势力图 114 5.10 用卷积滤波器改进势力图 118 5.11 构建战斗循环 120 第6章 agent感知 128 6.1 简介 128 6.2 基于碰撞系统的视觉函数 128 6.3 基于碰撞系统的听觉函数 130 6.4 基于碰撞系统的嗅觉函数 133 6.5 基于图的视觉函数 136 6.6 基于图的听觉函数 138 6.7 基于图的嗅觉函数 140 6.8 在潜行游戏中创建感知 141 第7章 棋类游戏和应用的搜索AI 148 7.1 简介 148 7.2 使用博弈树类 148 7.3 实现Minimax算法 150 7.4 实现Negamax算法 152 7.5 实现AB Negamax算法 154 7.6 实现Negascout算法 156 7.7 实现井字游戏对手 158 7.8 实现跳棋游戏对手 161 7.9 用UCB1实现石头剪刀布AI 171 7.10 实现无悔匹配算法 175 第8章 机器学习 178 8.1 简介 178 8.2 使用N元语法预测器预测行动 178 8.3 改进预测器:分层的N元语法 181 8.4 学习使用朴素贝叶斯分类器 182 8.5 实现强化学习 184 8.6 实现人工神经网络 188 第9章 程序化内容生成 192 9.1 简介 192 9.2 用深度优先搜索创建迷宫 192 9.3 为地下城和群岛实现可构造算法 195 9.4 生成风景 199 9.5 使用N元语法生成内容 201 9.6 用进化算法生成敌人 204 第10章 其他 209 10.1 简介 209 10.2 创建和管理可编写脚本的对象 209 10.3 更好地处理随机数 211 10.4 构建空气曲棍球游戏对手 213 10.5 实现竞速游戏架构 218 10.6 使用橡皮筋系统管理竞速难度 220 ---------------------------VR/AR/MR开发实战——基于Unity与UE4引擎--------------------------- 前言 本书赞誉 第1章 认识VR 1 1.1 VR的定义 1 1.2 VR的特性 2 1.3 VR行业格局 2 1.4 VR的发展——下一代计算平台 3 1.5 VR的应用领域 5 1.5.1 VR+游戏 6 1.5.2 VR+社交 8 1.5.3 VR+购物 8 1.5.4 VR+直播 9 1.5.5 VR+影视 10 1.5.6 VR+医疗 10 1.5.7 VR+教育 11 1.5.8 VR+航天 13 1.5.9 VR+军事 13 1.5.10 VR+工业 14 1.5.11 VR+旅游 16 1.5.12 VR+应急演练 16 1.5.13 VR+艺术创作 17 1.5.14 VR+主题乐园 18 1.6 增强现实 20 1.6.1 增强现实的定义 20 1.6.2 虚拟现实与增强现实的关系 22 1.7 混合现实和介导现实 23 1.7.1 混合现实 23 1.7.2 介导现实 24 1.8 VR内容构成类型 25 1.9 虚拟现实开发工具与技术 25 1.9.1 3D引擎 25 1.9.2 图形库 28 1.9.3 虚拟现实编程语言 29 1.9.4 资源生成工具 29 1.10 本书约定 32 第2章 虚拟现实硬件交互设备 34 2.1 VR头戴显示设备 34 2.1.1 PC主机端头显 34 2.1.2 移动端头显 35 2.1.3 VR一体机 37 2.2 AR头戴显示设备 37 2.2.1 Microsoft HoloLens 38 2.2.2 Magic Leap 38 2.2.3 Meta Glass 39 2.3 交互设备 40 2.3.1 VR手柄 40 2.3.2 手势识别——Leap Motion 40 2.3.3 VR数据手套 41 2.3.4 动作捕捉衣 42 2.3.5 触觉及力学反馈设备 43 2.3.6 Virtuix-Omni跑步机 44 第3章 美术基础——资源的诞生 46 3.1 3D资源篇综述 46 3.1.1 模型制作的原则及规范 46 3.1.2 模型布线的重要性 53 3.1.3 UV坐标 60 3.1.4 材质规范 62 3.2 网游规格模型制作流程 64 3.2.1 制作模型——古代建筑 64 3.2.2 UV坐标编辑 80 3.2.3 贴图纹理——古代建筑 88 3.3 基于PBR框架相对于传统次世代3D资源的优势 99 3.3.1 PBR材质的关键技术 102 3.3.2 PBR材质和传统次世代材质的区别 106 3.3.3 基于PBR框架的贴图与传统次世代贴图的对比 108 3.3.4 高精度模型制作的必要性 109 3.3.5 基于PBR框架的模型以及贴图工作流程 112 3.4 基于PBR渲染流程的枪械制作 114 3.4.1 基础模型、计算模型和高精度模型(中、低、高)的制作 114 3.4.2 UV编辑 132 3.4.3 导出模型 150 3.4.4 xNormal烘焙法线贴图及AO贴图的流程 157 3.4.5 用Quixel_SUITE软件生成符合PBR标准的纹理贴图 168 第4章 基于手机移动端VR头盔的全景漫游制作 228 4.1 VR全景拍摄器材准备 228 4.1.1 GoPro Hero5(7目)全景拍摄设备的硬件周边配置准备 228 4.1.2 GoPro Hero5(7目)全景拍摄设备的平台搭建组装前的准备 231 4.2 VR全景素材拍摄流程 233 4.3 VR全景素材Kolor Autopano Giga后期缝合 234 4.3.1 资源文件整理 234 4.3.2 Kolor Autopano Giga全景照片后期缝合制作 235 4.4 VR全景素材后期漫游制作 256 4.4.1 关于Kolor Panotour Pro漫游制作软件 256 4.4.2 Kolor Panotour Pro全景漫游制作 256 4.4.3 基于三星Gear VR全景漫游制作 273 第5章 开发平台——游戏引擎 278 5.1 VR开发常用游戏引擎 278 5.2 Unity和Unreal两大游戏引擎的特点 279 5.3 引擎编辑器界面对比 283 5.4 部分术语对比 284 第6章 Unity游戏引擎 285 6.1 软件安装 285 6.2 Unity常见术语 292 6.3 界面功能 293 6.3.1 导航窗口 294 6.3.2 界面布局 296 6.3.3 菜单栏 297 6.3.4 工具栏 303 6.3.5 Project(项目)视图 308 6.3.6 Scene(场景)视图 310 6.3.7 Game(游戏)视图 315 6.3.8 Hierarchy(层级)视图 318 6.3.9 Inspector(检视)视图 320 6.3.10 Console(控制台)视图 321 6.3.11 其他工作视图 321 6.4 资源导入导出流程 330 6.4.1 外部资源创建工具介绍 330 6.4.2 模型、材质贴图及动画资源导出前的工作 332 6.4.3 三维软件中导出模型、材质贴图及动画的流程 335 6.4.4 导入模型、材质贴图及动画的流程 341 6.4.5 导入外部资源的方法 349 6.4.6 图片、音频及视频资源类型的设定 351 6.4.7 导入、导出unitypackage(资源包) 364 6.4.8 Asset Store资源商店的应用方法 367 第7章 Unity程序 373 7.1 设置脚本编辑器 373 7.2 Unity之C#基础 374 7.2.1 Unity创建C#脚本 374 7.2.2 变量和常量 374 7.2.3 基础数据类型和类型转换 376 7.2.4 运算符和表达式 378 7.2.5 语句和函数 379 7.2.6 访问修饰符 383 7.2.7 数组、链表和字典 384 7.2.8 注释和代码折叠 389 7.2.9 Unity脚本生命周期 390 7.2.10 访问游戏对象和组件 393 7.2.11 实例化游戏对象 396 7.3 Unity常用的类和API 397 7.3.1 Transform类 397 7.3.2 Vector类 399 7.3.3 Input类 401 7.3.4 Time类 407 7.3.5 Mathf类 408 7.3.6 Random类 409 7.3.7 Coroutine协同程序 410 7.3.8 WWW类 411 7.4 Unity之C#进阶 413 7.4.1 C#中的结构体和枚举 413 7.4.2 C#类和继承 415 7.4.3 C#多态 417 7.4.4 C#重写与重载 422 7.4.5 C#委托和事件 423 7.4.6 单例模式 428 7.5 文件读写 429 7.5.1 TXT的写入和读取 429 7.5.2 XML的写入和读取 431 7.6 脚本调试与优化 435 7.6.1 脚本调试 435 7.6.2 优化建议 438 第8章 Unreal Engine 4(UE4)游戏引擎 441 8.1 软件安装 441 8.2 Unreal常见术语 446 8.3 UE4硬件及系统环境需求 447 8.4 关卡编辑器界面 448 8.4.1 虚幻项目浏览器 448 8.4.2 关卡编辑器——界面综述 451 8.4.3 关卡编辑器——菜单栏 453 8.4.4 关卡编辑器——工具栏 457 8.4.5 关卡编辑器——视口操作 458 8.4.6 关卡编辑器——视口 459 8.4.7 关卡编辑器——内容浏览器 477 8.4.8 关卡编辑器——世界大纲视图 484 8.4.9 关卡编辑器——图层 485 8.4.10 关卡编辑器——细节 486 8.4.11 关卡编辑器——模式 487 8.4.12 关卡编辑器——运行&模拟 492 8.5 外部资源导出、导入流程 495 8.5.1 模型、材质贴图以及动画资源导出前的工作 497 8.5.2 导入外部资源的通用方法 501 8.5.3 导入网格体 501 8.5.4 纹理贴图 509 8.5.5 音频文件 515 8.5.6 视频文件 516 8.5.7 APEX可破坏资源 522 8.5.8 IES光域网文件 524 第9章 Unity汽车定制体验系统 527 9.1 基于HTC VIVE的VR产品开发 527 9.1.1 SteamVR安装与设置 527 9.1.2 HTC VIVE的Unity开发工具 528 9.2 资源导入 529 9.2.1 汽车模型资源导入 529 9.2.2 SteamVR插件包导入 529 9.2.3 其他资源导入 531 9.3 场景构建 532 9.3.1 模板选择 532 9.3.2 搭建场景 533 9.4 制作UI界面系统 536 9.4.1 打包UI图集 536 9.4.2 创建Canvas和欢迎界面 538 9.4.3 创建车辆选择界面 540 9.4.4 创建主功能界面 542 9.5 脚本功能开发 547 9.5.1 窗口基类和UI单例类 547 9.5.2 欢迎界面功能开发 550 9.5.3 车辆选择功能开发 553 9.5.4 主界面功能开发 560 9.5.5 UI界面优化 577 9.6 发布输出 582 第10章 Unity之Leap Motion开发 584 10.1 Leap Motion概述 584 10.2 驱动安装 585 10.3 资源导入 587 10.3.1 模型资源和UI导入 587 10.3.2 Leap Motion开发工具包下载并导入 588 10.4 场景搭建 590 10.5 UI界面 593 10.5.1 界面搭建 593 10.5.2 创建界面动画 596 10.6 程序开发 604 10.6.1 抓起物体模块 604 10.6.2 创建小球模块 610 10.6.3 游戏管理模块 611 10.6.4 开始界面模块 614 10.6.5 状态统计模块 615 10.6.6 游戏结束模块 617 10.7 发布输出 620 第11章 Unity之AR开发 621 11.1 AR概述 621 11.2 资源下载及导入 622 11.2.1 SDK下载和识别图制作 622 11.2.2 模型资源和UI导入 625 11.3 场景搭建 628 11.3.1 开始场景 628 11.3.2 AR场景 631 11.4 程序开发 637 11.4.1 开始界面模块 637 11.4.2 UI管理模块 639 11.4.3 动物模块 640 11.5 发布输出 647 第12章 Unity之HoloLens开发 649 12.1 HoloLens概述 649 12.2 HoloLens特性 649 12.3 开发环境搭建 650 12.4 资源导入 651 12.5 场景搭建 653 12.6 程序开发 654 12.6.1 凝视提示 654 12.6.2 响应 655 12.7 实战演练 657 12.8 发布输出 665 第13章 VR硬件——基于惯性传感手势交互 668 13.1 动捕设备简介 668 13.2 应用场景 669 13.3 开发概要 669 13.3.1 API的使用 669 13.3.2 手臂模型的替换 673 13.3.3 增加对HTC头盔的定位支持 675 第14章 Unreal Engine 4打造室内案例 676 14.1 将模型资源以合并网格的方式导入 676 14.2 场景搭建 682 14.3 材质调节 683 14.3.1 创建透明的玻璃窗材质 683 14.3.2 创建简单的带有折射效果的玻璃材质 689 14.3.3 创建简单的大理石桌面材质 693 14.3.4 创建简单的金属材质 695 14.3.5 创建简单木地板材质 701 14.3.6 创建简单织物材质 706 14.4 创建光源 709 14.4.1 室内光照 709 14.4.2 局部光照 713 14.5 Steam VR开发 714 14.5.1 使用Steam VR 714 14.5.2 运动控制器组件设置 720 14.6 制作UI界面 723 14.7 切换材质的功能开发 731 14.8 构建场景光照效果 735 14.8.1 将模型资源以独立网格的方式导入 735 14.8.2 快速搭建独立网格场景 737 14.8.3 场景光照的构建 737 14.9 发布输出 746 第15章 虚拟现实MR视频制作教程 749 15.1 基于HTC Vive虚拟演播MR视频 749 15.2 HTC Vive虚拟演播MR视频关键步骤 750 15.3 MR视频制作硬件和软件 750 15.4 MR视频制作步骤 751 15.4.1 开启MR模式 751 15.4.2 组装第三个手柄(定位手柄)及摄像机 752 15.4.3 调整视频合成直播软件 753 |