描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787121386770
通过阅读本书,将获得如下知识。
●理解UE4组件和开发环境
●掌握UE4从源数据到发布应用程序的通道
●认识并适应UE4与传统可视化和渲染技术之间的差异
●通过UE4的基于物理渲染(PBR)的材质、光照和后期处理管线来实现惊人的逼真程度
●通过交互式的实时材质编辑器创建产品级的材质
●快速地建立项目,导入庞大的数据集,使用精确的可视化数据填充世界
●为建筑可视化开发明亮、温暖的光照
●使用Sequencer创建预渲染动画
●使用蓝图(Blueprint)可视化脚本创建复杂的交互,而无须编写一行代码
●适应并避免UE4的局限性,利用其优势实现您的愿景
本书作者是著名的虚幻引擎专家,有着丰富的可视化开发经验。他在本书中介绍了如何使用虚幻引擎4(Unreal Engine 4,UE4)创造可视化内容。首先,本书将告诉你使用UE4开发可视化内容的优势所在,并介绍了UE4的基本功能。然后,通过实例由浅入深地演示了使用UE4开发可视化项目的完整过程。
第1 部分 虚幻引擎4 总览
第1 章 虚幻引擎4 入门 3
1.1 虚幻引擎4 是什么 4
1.2 虚幻引擎简史 4
1.3 虚幻引擎4 简介 5
1.4 虚幻引擎4 可视化的亮点 6
1.5 使用虚幻引擎4 进行交互式可视化开发 7
1.5.1 UE4 给可视化带来了什么 7
1.5.2 UE4 开发的注意事项 10
1.5.3 识别适合的UE4 项目 11
1.6 虚幻引擎4 的开发需求 12
1.7 虚幻引擎4 中的团队合作 13
1.7.1 源代码管理概述 13
1.7.2 UE4 内置的版本控制支持 13
1.8 虚幻引擎4 开发的成本 14
1.8.1 硬件 14
1.8.2 开发时间 14
1.8.3 测试和QA 15
1.9 节省虚幻引擎4 的成本 15
1.10 资源和培训 15
1.10.1 社区支持 16
1.10.2 商城 16
1.10.3 社区活动和会议 16
1.11 总结 17
第2 章 使用虚幻引擎4 19
2.1 虚幻引擎4 的组件 20
2.1.1 Epic.Games 启动器 20
2.1.2 UE4 引擎 21
2.1.3 UE4 编辑器 22
2.1.4 UE4 项目 23
2.1.5 源艺术 24
2.2 项目文件夹结构 25
2.2.1 Config 25
2.2.2 Saved 26
2.2.3 Plugins(可选项) 26
2.2.4 Content 26
2.2.5 Intermediate 26
2.3 认识.uasset 文件 27
2.4 虚幻引擎4 内容通道 27
2.4.1 建立一个新项目 27
2.4.2 构建内容 28
2.4.3 导出内容 28
2.4.4 导入内容到UE4 28
2.4.5 使用内容填充关卡 28
2.4.6 添加互动性(编程!) 28
2.4.7 测试和改进 29
2.4.8 打包 29
2.4.9 发布 29
2.4.10 提供支持 30
2.5 总结 30
第3 章 内容通道 .31
3.1 内容通道概述 32
3.2 3D 场景设置 33
3.2.1 单位 34
3.2.2 统计信息 34
3.2.3 背面剔除与法线 34
3.3 为虚幻引擎4 准备几何体 35
3.3.1 建筑和道具网格体 35
3.3.2 命名 35
3.3.3 UV 映射 37
3.3.4 细节层次(LOD) 40
3.3.5 碰撞 41
3.3.6 枢轴点 42
3.4 FBX 网格体通道 42
3.4.1 导出设置 43
3.4.2 导出多个网格体 44
3.4.3 重新导入 44
3.4.4 FBX 文件的存放位置 45
3.5 纹理和材质的工作流程 45
3.5.1 纹理 45
3.5.2 多个材质 47
3.6 导入内容库 47
3.6.1 开始导入 47
3.6.2 网格体导入选项 47
3.6.3 纹理选项 49
3.7 摄像机工作流程 49
3.8 总结 50
第4 章 光照和渲染 51
4.1 理解虚幻引擎的基于物理的渲染(PBR) 52
4.1.1 底色 52
4.1.2 粗糙度(Roughness) 53
4.1.3 金属度 53
4.1.4 充分利用PBR 54
4.2 虚幻引擎4 中的光照 54
4.3 理解光源的移动性 55
4.3.1 可移动光源 55
4.3.2 固定光源 56
4.3.3 静态光源 58
4.4 实时反射 59
4.4.1 反射探头 59
4.4.2 后期处理反射 59
4.5 后期处理 60
4.5.1 抗锯齿 61
4.5.2 泛光、辉光和镜头眩光 61
4.5.3 眼部适应(自动曝光) 62
4.5.4 景深 62
4.5.5 电影效果 63
4.5.6 运动模糊 64
4.5.7 屏幕空间环境光遮蔽 64
4.5.8 屏幕空间反射 64
4.5.9 屏幕百分比 65
4.5.10 后期处理材质 65
4.6 总结 66
第5 章 材质 67
5.1 材质概述 68
5.1.1 创建材质 68
5.1.2 应用材质 69
5.1.3 更改材质 69
5.2 虚幻引擎4 材质编辑器 69
5.2.1 打开材质编辑器 69
5.2.2 编辑器UI 69
5.2.3 放置节点 70
5.2.4 使用预览视口 70
5.2.5 编译着色器 71
5.2.6 保存 71
5.3 虚幻引擎的材质如何工作 71
5.3.1 像素和顶点着色器 71
5.3.2 材质是数学 72
5.3.3 材质函数 74
5.4 表面类型 75
5.4.1 不透明的 75
5.4.2 蒙版的 75
5.4.3 半透明的 75
5.5 材质实例 76
5.5.1 材质参数 77
5.5.2 继承 77
5.5.3 覆写参数 77
5.5.4 组织 77
5.5.5 主材质 77
5.6 一个简单的材质 78
5.6.1 放置参数节点 78
5.6.2 制作材质实例 79
5.6.3 添加粗糙度贴图 80
5.6.4 添加法线贴图 82
5.6.5 理解底色贴图 83
5.7 总结 84
第6 章 蓝图 85
6.1 蓝图概述 86
6.2 对象、类和Actor 86
6.2.1 对象 86
6.2.2 类 87
6.2.3 Actor 87
6.3 玩家 87
6.4 玩家控制器 87
6.4.1 输入处理 88
6.4.2 玩家数据 88
6.4.3 旋转 88
6.4.4 鼠标接口 88
6.4.5 其他控制器 89
6.5 Pawn 89
6.6 世界 89
6.7 关卡 90
6.8 组件 90
6.9 变量和它们的类型 90
6.10 Tick 91
6.11 类的继承 91
6.12 生成和销毁 92
6.12.1 构造脚本 92
6.12.2 Begin.Play 事件 93
6.13 蓝图通信 93
6.13.1 直接蓝图通信 93
6.13.2 事件调度器 93
6.13.3 蓝图接口 93
6.13.4 蓝图转换 94
6.14 编译脚本 94
6.15 总结 94
第2 部分 你的第一个虚幻引擎4 项目
第7 章 建立项目 97
7.1 项目范围 98
7.2 从启动器创建一个新项目 98
7.3 总结 100
第8 章 填充世界 101
8.1 制作和保存一个新的空关卡 102
8.2 放置和修改资源 102
8.2.1 移动、缩放和旋转 103
8.2.2 使用细节面板 103
8.2.3 对齐 104
8.2.4 复制 104
8.2.5 从类浏览器中添加Actor 105
8.3 “要有光” 105
8.3.1 太阳 105
8.3.2 大气雾 105
8.3.3 将太阳分配到大气层 106
8.3.4 天空光源 107
8.4 在场景中自由移动 108
8.4.1 游戏风格 108
8.4.2 以对象为中心 108
8.5 构造建筑 108
8.6 为你的建筑添加细节 109
8.6.1 放置道具 109
8.6.2 放置灯源 110
8.6.3 添加IES 描述文件 111
8.7 总结 112
第9 章 使用蓝图实现交互 113
9.1 搭建项目 114
9.2 按下Play 按钮 114
9.2.1 运行模式 114
9.2.2 默认GameMode 115
9.3 创建Pawn 115
9.3.1 设置玩家的视点高度 117
9.3.2 设置移动速度 118
9.4 输入映射 119
9.4.1 动作和轴映射 120
9.4.2 建立映射 120
9.4.3 输入设备灵活性 120
9.5 创建玩家控制器类 120
9.6 使用蓝图添加输入 121
9.7 旋转视图(观察) 122
9.8 玩家移动 123
9.8.1 引用Pawn 123
9.8.2 有效性 123
9.8.3 添加移动输入 124
9.9 GameMode 127
9.9.1 创建GameMode 127
9.9.2 指定项目的GameMode 128
9.10 放置玩家起始点Actor 129
9.11 总结 130
第10 章 打包和发布 131
10.1 打包构建与编辑器构建 132
10.2 项目打包 132
10.2.1 内容烘焙 132
10.2.2 部署 132
10.3 打包选项 133
10.3.1 平台 133
10.3.2 构建配置 133
10.4 如何打包 133
10.5 启动你的应用程序 134
10.6 打包中的错误 135
10.7 发布项目 136
10.8 使用安装程序 136
10.9 总结 136
第3 部分 建筑可视化项目
第11 章 项目建立 139
11.1 项目范围和需求 140
11.2 建立项目 141
11.2.1 创建项目 141
11.2.2 从其他项目迁移内容 141
11.2.3 不要忘了“输入” 143
11.2.4 复制、重命名和移动资源 144
11.3 应用项目设置 144
11.4 总结 146
第12 章 数据通道 147
12.1 组织场景 148
12.2 材质 149
12.3 建筑和固定物 149
12.3.1 确保干净的几何体 149
12.3.2 使用良好的UV 坐标 150
12.4 导出场景 151
12.4.1 使用多个FBX 文件 151
12.4.2 使用单个FBX 文件 152
12.5 导入场景 152
12.5.1 导入内容浏览器 153
12.5.2 导入关卡 155
12.6 道具网格体 156
12.6.1 设置枢轴点 157
12.6.2 使用用心制作的几何体 158
12.6.3 导出 158
12.6.4 导入 159
12.7 总结 160
第13 章 填充场景 161
13.1 可视化的场景构建 162
13.2 建立关卡 162
13.2.1 创建一个新的关卡 162
13.2.2 添加基础光照 163
13.3 放置建筑静态网格体 164
13.3.1 拖放网格体 164
13.3.2 将位置设置为0 164
13.4 放置道具网格体 164
13.4.1 表面对齐 165
13.4.2 克
译者序
本书的主要内容是如何使用UE4 进行可视化设计。
虚幻引擎(Unreal Engine)是Epic Games 公司开发的一款专业级的游戏引擎。我喜欢的“战争机器”系列和“质量效应”系列游戏,还有近年来非常火爆的《绝地求生》和《堡垒之夜》游戏,都是使用虚幻引擎开发的。虚幻引擎的主要特点是其拥有非常强大的图像实时渲染能力,用它制作的游戏都具有令人印象深刻的游戏画面。虽然与光线跟踪渲染引擎相比,虚幻引擎略有不足,但是其能够做到实时渲染。虚幻引擎还具有许多其他优势,比如易于使用的编辑器界面、强大的可视化脚本编辑功能、丰富的文档和开发社区支持、能够访问完整的引擎代码等,而且它是完全免费的。
作为游戏行业的从业人员,我对于虚幻引擎的理解可能更多地局限在游戏领域。但是实际上,虚幻引擎可以应用在可视化、动画和电影等许多行业,而且比这些行业内现有的软件做得更好。因此,很有必要将虚幻引擎介绍给更多的人,本书就是非常好的参考。Epic Games 公司在虚幻引擎启动器的页面中推荐过本书的英文版,其获得的评价很高,所以将它翻译成中文版并推荐给国内的读者是很有价值的。
需要注意的是,本书的内容更侧重于让读者了解正确的可视化项目的工作流程,而不是每个技术细节。而且,因为篇幅有限无法对每个术语都做出非常详细的解释,所以需要读者对可视化和计算机图形的相关技术有一定的了解。
对于中国的开发者和读者来说,有件事其实挺矛盾的。一方面大家都希望引擎的编辑器能完全汉化,另一方面又希望编辑器中的一些术语保持原样。这样的困惑不但对于使用者来说存在,而且对于虚幻引擎官方来说也是如此。在他们所发布的引擎中文版编辑器的界面中,中英文混杂,有些术语被翻译成了中文,而有些术语由于翻译之后可能会失去原味所以还是使用了英文。虚幻引擎官网上的文档也是如此,而且存在着文档中一些术语的中文与编辑器上的不一致的现象,这也给我的翻译工作带来了一些困惑。所以,我在本书中也继承了虚幻引擎中英文混杂的传统,请读者理解。
最后,感谢电子工业出版社引进本书,感谢编辑付睿对这项翻译工程的推动,还要感谢我亲爱的妻子嵇秀梅和宝贝女儿龚心怡的陪伴。
2019 年10 月14 日
龚震宇
前 言
虚幻引擎4(Unreal Engine 4,UE4)正迅速成为继游戏、可视化甚至电影长片的下一个热点。可视化厂商、业余爱好者和专业人士都渴望探索其可能性。UE4 是一个庞大的应用程序,具有数千个功能,数百小时的培训视频,以及大量教程、维基百科内容和社区指南内容。这些资源可以回答有关UE4 的许多问题,但是想要找出对于可视化而言的重要内容可能非常困难。几乎所有可用的学习资源都是为了创造游戏,而不是可视化。
对于理解如何创建传统渲染内容的人来说,UE4 看起来可能既非常熟悉又非常陌生。功能上有许多相似之处可以使学习UE4 变得容易,而在其他时候,这些功能只是名字相似,但在实践中却是非常不同的。错误的假设可能导致挫败,而且似乎无法克服。
本书的目标是成为可视化工作室和个人的指南,过滤掉“噪声”,使用真实世界的示例、可靠的工作流及一些工具和技巧呈现最相关的信息。
本书的目标读者
本书面向希望在UE4 中创造最具视觉冲击力、互动性和创新性的实时应用程序、渲染和动画的可视化专家。本书也面向技术主管,他们需要带领一个可视化艺术家团队,甚至可能有一位程序员,需要快速地实现目标,并且需要确切地知道如何实现。
在攻克这本书之前,你应该对3D 渲染是如何工作的有专业级的理解。你应该熟悉材质、全局照明(GI)、多边形建模和UV 映射这些概念。我不会介绍UE4 之外的特定的可视化数据工作流程。假设你很擅长将提供给你的原始数据处理为有组织的、优化的3D 格式来进行渲染,还假设你是光线跟踪技术的行家,而且你应该很熟悉折射和菲涅耳衰减这样的术语。
如果你对蓝图(Blueprint)感兴趣,我强烈建议你具备一些脚本、编程或计算机逻辑方面的背景知识。一些概念会贯穿于蓝图和UE4 中,如For 循环、If 语句、变量,以及布尔值、浮点数和字符串等变量类型。本书概述了蓝图中的编程技术,但并不是编程教程。另外,蓝图对用户非常友好,任何具有脚本编写经验的人,特别是熟悉3D 应用程序中的脚本的人,都能轻松上手。
如果你是一个更高阶的脚本编写员、程序员或UI 开发者,你在使用蓝图时会感觉同在家一样舒服。函数、类型变量和对象继承的行为与任何面向对象的编程语言非常相似。像任何编程语言和开发平台一样,虚幻引擎非常具体地说明了它是如何做的,所以你应该看一下前面几章的内容,以便更好地了解幕后发生的事情。创建可视化需要结合多种强大的技术技能,理解提供的数据,利用可用的工具,以及拥有敏锐的艺术和设计意识,来掌握如何呈现和完善当今的可视化客户所期望的复杂效果。
本书是如何组织的
本书分为3 个部分。第1 部分是UE4 的技术概述,介绍其主要功能、系统和工作流程。第2 部分演示一个简单的UE4 交互式应用程序,引入了一些示例内容来构建它,在这一部分你将学习UE4 编辑器的基本知识并开始创建第一个蓝图。在第3 部分中,你将看到一个真实世界的建筑可视化项目的完整过程。从3ds Max 中的客户数据开始;使用虚幻引擎的Lightmass 添加光照;创建和应用材质;创建Sequencer 摄像机动画并将其渲染到磁盘;直到最后,完成一个具有完整的用户界面、交互式元素和照片级真实渲染质量的交互式可视化应用程序。
在第1 部分中,你将从概念和技术的角度开始探索UE4,例如安装启动器和引擎,创建项目,以及了解关卡、地图和资源。你将学习到重要的术语和技术,确保在阅读本书及在其他地方寻求帮助时,可以很好地理解所谈论的内容。我将尝试从技术角度解释工作原理,以方便你学习这些课程,并且能更轻松地将它们应用到你自己的可视化作品中。你将从一个V-Ray 或Mental Ray 用户的角度阅读这些内容,这样的用户会是第一次打开UE4 的用户,并且不得不面对离线渲染和实时渲染之间的差异。
在了解了基础知识并深入理解幕后发生的事情之后,你将开始研究真实世界的示例。这些内容是以更接近教程的风格编写的,有详细的步骤说明。所有项目源文件(Max 和UE4 项目文件)都可以从本书的配套网站上下载,这样你就可以按照每个步骤进行操作。
第1 部分 虚幻引擎4 总览
第1 章 虚幻引擎4 入门 通过对UE4 详尽的综述,你可以了解UE4 为可视化带来了什么,你将面临哪些挑战和如何克服这些挑战,从何处获得帮助,以及如何开始规划你的第一个UE4项目。
第2 章 使用虚幻引擎4 UE4 的工作流程与你之前作为可视化专业人员所使用的任何工作流程都有很大的差异。你将学习UE4 的所有主要元素如何作为一个整体协同工作,以创建、编辑和发布交互式应用程序。
第3 章 内容通道 在学习使用UE4 的过程中,如何将内容放入UE4 可能是你最先会遇到的困难和挑战。你将学习UE4 如何从其他应用程序导入和处理2D 和3D 内容,并且对于如何将其集成到你现有的通道中获得一点启发。
第4 章 光照和渲染 UE4 引入了革命性的基于物理的渲染系统,可以在每帧几十毫秒内产生出色的效果。你将学习如何利用多年积累的渲染技术,并将其应用于UE4 的基于物理的渲染(PBR)和光照系统。
第5 章 材质 创造丰富、逼真的材质对于实现照片级的真实感至关重要。UE4 中的材质是PBR 工作流程中不可或缺的一部分,与你之前使用的任何材质系统都不同。在这一章中你将了解到材质是如何构造的,PBR 的各个组件如何工作,并开始了解材质实例如何使在UE4中创建材质变得可交互和有趣。
第6 章 蓝图 蓝图是脚本和游戏编程的一场革命。你现在可以开发丰富的尖端应用程序,而无须编写任何代码。但是,蓝图仍然是一种编程语言,学习它的基础知识将使你能够快速地开始开发工作。
第2 部分 你的第一个虚幻引擎4 项目
第7 章 建立项目 学习如何定义项目目标,然后了解如何创建新项目并进行基本项目设置,以便从选择现成的Starter Content 开始构建你的关卡。
第8 章 填充世界 使用Starter Content,你将首次探索编辑器的使用方法,将资源放入世界中成为Actor,移动它们,修改它们,然后放置光源以照亮场景。
第9 章 使用蓝图实现交互 构建你的第一个蓝图类、玩家控制器、Pawn 和游戏模式。分配输入映射,对玩家输入进行编程,使玩家能够以第一人称视角在关卡中四处走动。
第10 章 打包和发布 在项目可以正常工作后,就可以将其作为独立应用程序进行发布了。在UE4 中,这个过程称为打包(Packaging),通过其创建的经过优化、易于安装和运行的应用程序,可以非常方便地进行压缩和发送。
第3 部分 建筑可视化项目
第11 章 项目建立 你将再次定义项目目标。这次是为了创建一个高端的建筑可视化项目,它有两个关键的交付内容:一个交互式的应用程序和一个使用Sequencer 渲染的预渲染场景漫游动画。
第12 章 数据通道 学习如何在将3D 数据导出到FBX 之前准备和组织数据。你将了解到建筑和道具之间的差异。然后,你将探索几种不同的导入数据到UE4 中的方法,重点关注FBX导入和导出的工作流程。
第13 章 填充场景 在你的数据导入UE4 之后,就可以将它们放入你的UE4 关卡中了。有几个策略需要学习,你将看到这一章会使用几种策略来把建筑和道具都放入场景中期望的
评论
还没有评论。