Unreal Engine 4.13 Released!
September 1, 2016

UNREAL ENGINE 4.13 正式发布!

作者 Chance Ivey

这次的版本带来了数百个虚幻引擎 4 的更新,包括来自 GitHub 的社区成员们提交的 145 个改进!感谢所有为虚幻引擎 4 添砖加瓦贡献的人们:

alk3ovation, Allegorithmic (Allegorithmic), Alwin Tom (alwintom), Andreas Axelsson (judgeaxl), Andrew Scheidecker (AndrewScheidecker), Andrian Nord (NightNord), ArnoB (ABeekhub), Artem (umerov1999), Artem V. Navrotskiy (bozaro), Błażej Szczygieł (zaps166), Brent Scriver (FineRedMist), Cedric Neukirchen (eXifreXi), Céleste (CelPlays), Chris Conway (Koderz), Chris528, Christoph Becher (chbecher), Christopher P. Yarger (cpyarger), DanielDylan, DaveC79, Derek van Vliet (derekvanvliet), DevVancouver, Eric-Ketchum, Eugene (grisevg), Franco Salas (SupremeNinjaMaster), gameDNA (gameDNAstudio), ghost, Joel McGinnis (joelmcginnis), Jonathan Johansson (DualCoder), Jørgen P. Tjernø (jorgenpt), Joshua Kaiser (JoshuaKaiser), korkuveren, Kory Postma (korypostma), Krish Munot (KrishMunot), Kuts Alexey (krunt), Lars Jørgen Solberg (larsjsol), Lectem, Lee Reilly (leereilly), Lukasz Baran (iniside), madsystem, Manny (Manny-MADE), Marat Radchenko (slonopotamus), Markus Breyer (pluranium), Martin Gerhardy (mgerhardy), Marvin Pohl (pampersrocker), massanoori, Mateusz Polewaczyk (matii1509), Matthias Huerbe (MatzeOGH), Matthijs Lavrijsen (Mattiwatti), MaximDC, mfortin-bhvr, Michael Allar (Allar), Michael Schoell (MichaelSchoell), mik14a, Miłosz Kosobucki (MiKom), mkirzinger, Moritz Wundke (moritz-wundke), Nachtmahr (NachtMahr87), Narendra Umate (ardneran), NaturalMotionTechnology, Oleksandr Kuznietsov (Teivaz), OWIAdmin, Patryk Stępniewski (kodomastro), Paul Evans (paulevans), pfranz, Piotr Bąk (Pierdek), PistonMiner, projectgheist, Rama (EverNewJoy), Ricardo Maes (kukiric), Rick Deist (dreckard), Robert Segal (robertfsegal), RobertTroughton, Rohan Liston (rohanliston), Saffron (SaffronCR), Sajid (sajidfarooq), salamanderrake, Samuel Maddock (samuelmaddock), Sébastien Rombauts (SRombauts), Tanner Mickelson (DarthCoder117), Thomas Mayer (tommybear), tmiv, Tyler Thompson (Bogustus), Victor Polevoy (vityafx), Webster Sheets (Web-eWorks), Wesley Hearn (wshearn), yehaike, Yohann Martel (ymartel06), Yong-Quan Chen (wingedrobin), Yu He (yuhe00), Zachary Burke (error454)

新货出炉

虚幻引擎 4.13 已经来了!在这个版本中可以看到方方面面的各种改进。

这次添加了很多新的 渲染特性,比如模型贴花,由蓝图绘制 Render Target,GPU 顶点变化,改进的折射效果,以及面向材质使用的高质量并已油画的噪点函数。阴影缓存贴图先能够支持同场景下比以往更多的动态灯光投射阴影。

Sequencer,新的非线性影响编辑器,这次也为高端影视制作带来了一些新的特性。在游戏中 实况录像 的功能得到了大幅改进。另外现在也可以对 SLOT 和 Animation 在外部程序中来回迁移。可以在我们的 2016 SINGGRAPH Real-Time Live! 的演示中看到这些功能。

支持了 Alembic 使引擎能够导入复杂且有趣的顶点动画。新的 物理动画组件 能够让角色对物理的力作出更加真实的反应,由力通过马达驱动角色骨骼动画来实现。

对于 移动应用的开发者,这次优化了动态阴影,支持 full-precision 材质,并且支持自定义后处理过程。OpenGL ES 3.1 也能用于安卓设备,二进制的 Shader Caching 也将为迭代次数带来改善。

VR 游戏 现在可以使用胶囊体阴影技术,即时立体渲染也得到了优化。另外记得去看一下新的 VR 项目模板!对于如何使用手柄交互,如何在游戏中移动,它都提供了一个很好的示例。

现在虚拟现实的环境下搭建游戏关卡吗?虚幻的 VR Editor 也有了进一步进展,现在支持对模型或植被的绘制,有了一个新的移动控制句柄,还有 VR 色彩选取。最后,现在还可以直接在 VR 中进行游戏!在编辑器首选项设置中的实验室板块,可以找到 “Enable VR Editing” 并启用它。

主要功能

新货:Sequencer 实况录像

Sequencer 中更新了一个新功能,实况录像,并在 Siggraph Real-Time Live! 2016 上做了展示。

image alt text

Sequence 的 Recorder 能够捕获实时的游戏内容,包括所有的动画,声音和特效,捕获到一个独立的资源中,并可以使用 Sequencer 对它进一步进行编辑!这次的版本中的新功能包括:

  • 选中物体的快速录像,摄像机选中时自动创建摄像机轨道。

  • 能够定义 Arbitrary 组件和属性来记录。

  • 能够选择是否要记录 Actor 在场景中附属的其他数据。

  • 当一个 Actor 被附属但为标记录像时,以世界空间坐标系来记录位置信息。

新货:动态光的阴影贴图缓存。

当一个点光源或者聚光灯不移动的时候,我们能将该光源产生的阴影保存下来,并在下一帧中重用。现在这个功能被自动实现,对于周遭环境变化不大的时候,动态点光源和的聚光源的投影的性能在游戏中变得可以接受。

image alt text

上图中展示了 33 个能够产生投影的动态点光源,并且消耗非常的小:

使用 970 GTX 在 1920x1200 下的性能:

  • 33 个产生投影的点光源不使用缓存时:渲染 Shadow Depths 花费 14.89ms。

  • 使用缓存阴影贴图:.9ms (大约快了 16 倍!)

  • 请注意这将花费 2ms 来渲染 33 个点光源的效果,这点可以通过其他方法优化,并且并不被这个功能有额外影响。

  • 这个缓存的内存使用可以由 ‘Stat ShadowRendering’ 查看,此场景是 25.6Mb。

  • 这个缓存的最大内存占用可以通过 ‘r.Shadow.WholeSceneShadowCacheMb’ 来控制。

限制

  • 默认情况下,缓存只会在以下情况发生:

    • 物件的移动性设置为 静态 或者 固定

    • 材质并未使用世界位置偏移

    • 光源为点光源或者聚光源,移动性被设置为 Movable,并且当前并未移动。

  • 使用动画细分或者像素深度偏移的材质可能会在他们的阴影深度被缓存时导致一些可见的错误。

新货:Voronoi 噪点材质

这次我们为 Noise 材质节点添加了一个新的 Voronoi 的选项。Voronoi noise 有时也被称做 Worley 或者 Cellular noise,对 precedural material 的制作十分有帮助。

image alt text

Voronoi noise 可以用来生成一些熟悉的物理材质模式,比如大理石,请看下图中的雕塑。

image alt text

这个例子使用了 Voronoi noise 以及一项叫做 ‘gradient mapping’ 的技术来得到大理石的外观效果。

image alt text

从左至右:

1)标准的 Voronoi Noise,1 octave

2)输入的位置附加 "Gradient" 的 Voronoi noise,设置为 0.05

3)在输入前将 Gradient noise 乘了 0.3

4) 使用第 3 步的结果作为一个随机平铺贴图的座标。

Voronoi noise 有 4 个质量等级,越高等级下网格越小,但 Shading 的时间开销会巨大的增加。

同时,其他的 Noise 材质节点也做了优化,在函数的选择上对性能的取舍也做了更多细节描述。这里的大部分在运行时都比较慢,因此应该鼓励将结果先预烘培到贴图上来提高性能。

新货:面向 Render Target 的蓝图绘制

蓝图函数现在能够直接用于面向 render target 绘制材质。该功能使得在不修改源代码的情况下实现各种不同类型的游戏特定渲染特性成为可能。

image alt text

这里实现了流体表面的模拟,仅使用蓝图和材质。角色和投射物便能够推动流体变动!

image alt text

上图展示了一个简单的高度绘制模式,完全由蓝图实现,模拟投射处增高高度值。

这个新的蓝图函数 Draw Material to Render Target 绘制一个四边形的目标 render target,使用 Emissive Color 作为材质的输入。

image alt text

在开始游戏时,会先调用 Begin Play,该 render target 会填充为蓝色。可以此时右键点击该 render target,并存为一个静态贴图,以便能够被压缩。

image alt text

对于更高阶的 render target 绘制,使用 Begin Draw Canvas to Render Target End Draw Canvas to Render Target。这能够有效的多次绘制到一个 render target 的子集上,还有通过 Canvas 物体的字图绘制的方法。

image alt text

利用蓝图绘制屏幕以外的渲染特性,使得快速实现各类渲染效果而不需要程序员的帮助成为可能。这里可能会很轻易的给 GPU 放上大量的 render target 所需的像素 Shader 计算工作。可以通过输入 'ProfileGPU' 来查看这些 draw call 信息(在 WorldTick 事件下)。

限制

  • 无法对一个已经被样例化成贴图在材质中使用的 render target 进行绘制。也不能使用 alpha blending 来修改一个 render target,或者在两个 render target 之间来回更新。

  • 材质只有 Emissive Color 和 Opacity 的输出对绘制到一个 render target 才有效,光照目前并不支持,类似 WorldPosition 的节点则可能会产生预期之外的效果。

  • 默认情况下 Emissive Color 会被限制在正数,但可以通过启用材质属性的 ‘AllowNegativeEmissiveColor’ 来实现输出负数。

在 ContentExamples 中查看 BlueprintRenderToTarget 地图以了解可以运行的示例!

新货:对顶点动画支持 Alembic 导入(试验功能)

现在支持 Alembic 动画导入了!Alembic 使得复杂动画能够被离线制作,并在 UE4 中实时渲染!该功能目前仍处于试验阶段,各位可以试用并给我们反馈意见。

image alt text

我们现在导入 Alembic 数据有几种方式:

  • 静态模型。Alembic 的单帧动画数据会被导入为一个静态模型资源(不含动画)。

  • 几何体缓存。这是一种新的动画资源类型,能够对顶点动画进行回放。导入的 Alembic 动画将会被逐帧回放。性能上因模型本身的复杂度会大不相同,并不是所有的情形下都能够得到优化处理。

  • 骨架网格体。只要顶点数量不发生变化的时候,这是用于回放 Alembic 动画数据最有效的方式。在导入时,动画序列会使用一个 PCA 压缩,这时通用的姿势(基础)会被分离并计算权重,来组成一个回放时的原始动画。其中的百分比或者固定的基础姿势数量可以在导入时作为压缩等级选项来进行调整。

新货:用于模型预览的场景

新增了一个功能,在预览静态网格体或者骨架网格体时可以设置预览时的场景。

image alt text

在静态网格体和骨架网格体的编辑器中有一个新的 Preview Scene Settings 面板界面。这里可以多个方案(场景)来预览模型,并且方案是可以被修改的:

  • 方向光(颜色、强度、朝向)

  • 天光(HDRI 环境贴图,强度、朝向)

  • 后处理设置(基于后处理体积)

image alt text

我们还增加了一些示例用的功能:

  • 手动旋转环境(按住 K 键)和方向光(按住 L 键)

  • 自动旋转光照环境(方向光和环境)

  • 快速隐藏地面(O 键)和环境(I 键)

新货:模型贴花

新的模型贴花功能能够有效的将材质贴到一个静态网格体上,可以把它看作在网格体上的第二个网格体,但共享了原网格体的拓扑结构和材质。

image alt text

上图中的柱子每个都是一个基础的模型覆盖了另一个单独的破碎模型。如下面的线框图所示,左面的柱子使用了模型贴花来获得更好的颜色、法线、粗造度的混合效果。而右图则是简单的材质覆盖,这里做一个对比。

image alt textimage alt text

和延迟贴花不同,这里没有涉及任何投射,因此一个典型的贴花模型,由于和模型紧贴,可能要在材质中包括一个表面的偏移,另外,还要小心对于 LOD 的模型,贴花可能会在 LOD 时造成不好的效果。

新货:空间交互组件

使用空间交互组件,可以为控件组件在游戏世界中模拟出硬件输入事件。

image alt text

可以将它像镭射指示器一样附加于任何物体上来和控件进行交互,也有其他一些选项可供自定义行为使用。当标准输入来自玩家控制器时,可以将该输入定向到交互组件上来模拟一个特定的硬件输入,比如鼠标左键按下/抬起,并根据当前用户悬停的物体来实现。

对于以前依靠直接在空间组件中点击鼠标来实现的做法而言,这个通道已不再支持。用户需要先附加一个交互组件(在鼠标模式下),并在输入事件发生时进一步传递输入给交互组件来实现。

新货:VR 项目模板

我们这次新增了一个项目模板,为桌面和主机的虚拟现实项目专门设计。

image alt textimage alt text

要访问这个模板,只需在新建项目的窗口中选择 VR 项目即可。

这个蓝图项目的设置已经为在 VR 上能跑到每秒 90 帧做了准备。为了支持不同类型的控制器,该模板包含了两种运动方式,分别在两套不同的 Pawn 蓝图中实现。第一套为游戏手柄设计,另外一套则是为运动控制器设计。在使用运动控制器时,可以瞬移到不同的位置来抓去、扔出物体。将来的更新中会提供本模板的 C++ 版本,另外移动平台的 VR 模板以后也会到来。

新货:移动设备自定义后处理过程

现在在移动设备上也能使用自定义的后处理材质了!看看这个移动渲染器上的“电视雪花屏”效果吧。

image alt text

  • 这个功能需要你打开在项目设置中的 "Mobile HDR" 选项

  • 支持获取混合位置在 ‘Before Tonemapping’ 和 ‘After Tonemapping’ 的 PostProcessInput0 (SceneColor)

  • 此功能目前尚不支持那些需要用“马赛克”编码来达成HDR渲染的旧安卓设备。

  • 目前还不支持像素深度信息

新货:支持移动设备的光通道

现在在移动设备上也能使用光通道了!这允许你有选择性的用指定的灯光影响物件。对于需要高级光照的动画来说相当有意义。

image alt text

  • 在不同的通道中能支持多个方向光。

  • 每个渲染对象(Primitive)只会受一个方向光影响。在渲染对象(Primitive)上的第一个光通道设置会决定它会受哪个方向光的影响。

  • 固定或者动态的方向光生成的 CSM 阴影只会投影到匹配光通道设置的渲染对象(Primitives)上。

  • 动态点光源完全支持光通道。

新货:Mac 上的 Shader Model 5 渲染

Mac Metal 现在能够默认开启 Shader Model 5 的支持了。这将使得所有 Mac OS X 10.11.6 的 Metal 上可用的特性都能在虚幻引擎 4 中得以使用。

image alt text

  • 实现了 RHI 线程和平行调度分发渲染指令。

  • 对 Metal 计算 shader 的支持。

  • 支持在 AMD GPU 上的异步计算。

  • 启用了原先在 Mac 上不可用的一些高阶渲染特性,包括:

    • 高质量的动态曝光功能(也被称作人眼适应)。

    • 环境反射 Shader 计算 —— 仅在 4.13 版本且有独立显卡设备上工作。

    • 距离场环境遮蔽 —— 仅在 4.13 版本且有独立显卡设备上工作。

    • 距离场投影 —— 仅在 4.13 版本且有独立显卡设备上工作。

新货:物理动画组件(试验功能)

新增了物理动画组件,能够很容易的通过物理来驱动骨架网格体的动画行为!

image alt textimage alt text

该组件能够直接设置马达的强度,并使用一个预先设置的物理动画配置,该配置是在 PhAT 中创建并编辑的。PhAT 中新的 "Physical Animation Profiles" 功能为不同的游戏内容中的角色提供了强大的支持,并能够为特殊动画提供调整的手段。

可以在 PhAT 的工具中创建并编辑不同的配置,并在运行时很容易就能对它们做改动。在蓝图中看一下新的 "Apply Physical Animation Profile" 和 “Apply Physical Animation Settings” 函数,它们能够动态的改变物理动画的行为。

新货:过程生成模型的切割

对于过程生成网格体组件,现在有一个工具可以在运行时对它进行切割。

image alt text

在切割后,我们添加了 ‘capping’ 几何体,并创建了第二个过程生成网格体组件,作为预期的 ‘另一半’。

另外,过程生成网格体也支持简单的碰撞,因此可以启用物理模拟,最后,我们添加了一个工具根据静态网格体数据拷贝给过程生成网格体(要在 cooked 的版本下工作的话,‘Allow CPU Access’ flag 必须在静态网格体上被设置)。

新货:VR 中的模型表面涂抹

现在 VR 编辑器中可以直接对贴图和模型表面进行涂抹。

image alt text

这里便可以使用运动控制手柄在 VR 的沉浸环境下直接对静态网格体表面进行涂抹。只需要打开 “模式” 面板,点击 “Mesh Paint” 分页。然后只需要在场景中选择一个物体,瞄准它并扣下手柄扳机就能涂抹了。压力敏感度也由手柄扳机按钮支持,并且可以按住 “Modifier” 按钮来擦除当前的绘制。

新货:VR 中的植被涂抹

在这次的版本中,可以使用运动手柄在 VR 中直接绘刷表面植被。

image alt text

选择一个植被类型,用镭射线指向所需要的位置并扣下扳机扳机按键就能绘刷植被!还可以按住 Modifier 键来擦除植被。按压的力度也是有效的。另外,植被编辑器也为 VR 中更好的使用而做了一些改进,但目前仍然有一些功能不可用,比如 lasso 工具和选取工具。

新货:VR 中的颜色选取工具

现在在 VR 中颜色选取窗口也可直接使用了。因此可以直接对场景中的灯光或者其他 Actor 的颜色属性进行修改。也可以使用颜色选取器来作为 VR 中的顶点绘制和贴图绘制的用途来使用。

image alt text

新货:VR 编辑器直接运行游戏

为了更容易的制作游戏原型,现在能够在 VR 编辑器内直接启动 VR 游戏。只需要在快速菜单上点击 “Play” 便能直接启动游戏进入 VR!退出游戏回到 VR 编辑器的操作是两个手柄同时按住 Grip 按钮,并且同时扣下扳机按钮

image alt text

新货:VR 物体控制工具改进

VR 编辑器中的移动工具也做了改进,更加易用并且还有一些新的特性!

image alt text

平移和旋转物体更加自然,在 VR 中也可以通过一个 2D 平面来一致的平移或缩放物体。之后我们还会对该工具做进一步的改进。

新货:VR 编辑器中的手电筒功能

通过使用快速菜单,现在可以在手柄上增加一个手电筒,来照亮场景中的暗部,或者通过它来查看不同材质和灯光的交互效果。

image alt text

新货:在 VR 编辑器中截屏

现在可以直接在 VR 中截屏了!

image alt text

新货:VR 编辑模式的自动启用

现在,当 VR Editor 模式被开启时,不再需要手动的点击 VR 按钮来进入或退出 VR 模式。在编辑器为当前激活窗口时,只需要带上头显设备,就会自动进入 VR 编辑模式,但移除头显设备时便自动退出 VR 编辑模式。

image alt text

如果需要的话,在 VR 的试验功能处有一个设置来开关是否使用这个自动的功能。

image alt text

新货:Sequencer 的导入/导出

Sequencer 现在支持以 CMX EDL 文件格式的导入和导出,来回非线编编辑包的交互。

image alt text

上图显示了一个 sequence 的 shot 被导出到 Adobe Premiere Pro 中。每个 sequence 的 shot 被写成一个单独的视频文件,并被 EDL 文件引用。任何在 Premiere 中的改动则可以被重新导入到 UE4 的 Sequencer 中!

Sequencer 导出 OpenEXR 文件的 HDR 数据功能现在扩展了一些,用户可以选择 HDR 数据编码时的色域设置。

image alt text

最后,Sequencer 现在支持直接导入 FBX 动画给一个物体或者一个轨道。也可以将动画轨道导出成 FBX!

新货:Sequencer 在渲染器上的 BURN-IN