译者序
本书的主要内容是如何使用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 关卡中了。有几个策略需要学习,你将看到这一章会使用几种策略来把建筑和道具都放入场景中期望的位置。
第14 章 建筑光照 UE4 的Lightmass 全局照明解决方案非常漂亮,但与以前渲染场景光照的方式有很大不同。了解如何使场景获得令人惊叹的高动态范围光照,并在几十毫秒内完成渲染。
第15 章 建筑材质 基于你在本书第1 部分中学到的材质的基础知识,你开始构建主材质、编程参数和其他着色器逻辑,以实现灵活、快速和美观的材质实例集并将其应用于场景。
第16 章 使用Sequencer 创建过场动画 能够在几十毫秒内渲染照片级逼真的动画,这打开了一个充满创意的世界。学习创建Sequencer 动画,使用电影摄像机来获得物理上正确的电影级的外观,包括一些效果(如景深、运动模糊和虚光等)。完成后,你将了解到如何只用几分钟就以每秒60 帧4K 分辨率将90 秒的场景漫游动画录制完成并保存到磁盘上。
第17 章 为关卡的交互性做准备 碰撞对于良好的交互式体验是绝对重要的,它也是UE4 开发中最复杂和最容易被误解的领域之一。因为电子游戏需要如此多的交互元素,所以碰撞处理已经发展得非常快了,但是有时很难设置。在这一章中你将学习如何方便地准备你的关卡,使得角色可以在其中四处走动而不会穿过地板或墙壁。
第18 章 中级蓝图——UMG 交互 交互式可视化的最大优势之一是,能够在上下文中实时比较不同的选项。你将学习如何设置流送关卡,然后使用蓝图在运行时交换它们。使用一个简单的UMG 制作的用户界面,将这个功能开放给玩家。
第19 章 高级蓝图——材质切换器 如果你非常想寻找一些挑战,那么这一章就是为你准备的。在这里,你将看到一个作为真正产品的材质切换蓝图是如何开发出来的。这个高阶功能不仅对玩家开放,而且还对关卡设计师(LD)开放,允许他们在编辑器中进行可视化设置,还创建了一个可以在任何项目中重用的完整工具集。
第20 章 结语 本书只接触到了UE4 的冰山一角,我希望它可以给你们打下一个良好的基础,并为以后的方向带来一点灵感。在结论部分,我将讨论UE4 和使用它的行业的发展方向,以及这些将如何影响可视化的未来。
本书约定
本书中使用了以下排版约定:
• 粗体 表示新的术语,以及变量和参数名称。
• 楷体 表示属性和参数可以设置的值。
读者服务
微信扫码回复:38677
· 获取博文视点学院20 元付费内容抵扣券
· 加入本书读者交流群,与更多读者互动、反馈疑问
· 获取本书配套下载文件(包含UE4 项目文件和3ds Max 源文件,以及其他资源和链接)
· 获取免费增值资源