Unreal Engine 4.21 Released
November 7, 2018

虚幻引擎4.21版发布

作者 Jeff Wilson

新增内容

虚幻引擎4.21延续了我们为所有平台上的所有项目提高效率、性能和稳定性的不懈追求。我们使你 能更方便地提高工作智能度和创作速度,因为我们希望在使用我们的工具时唯一能限制你的就是你的想象力。而我们 还将在每个平台上对引擎进行实战检验,直到它满足开发人员的高标准为止,让你的项目一旦做好面向大众发行的准备就能大放异彩。

我们始终在寻找简化例行任务的方法,让开发人员能够专心创作大有意义、激动人心和引人入胜的体验。我们领先业界的 Niagara 效果工具集现在有了更胜以往的强大功能和易用性,让你能畅想下一代的实时视觉效果。你可以使用现已达到产品级要求的Replication Graph功能 以从前不可能实现的规模构建多人游戏体验。利用 转化内容时高达60%的增速 优化更快进行迭代,使用新的Gauntlet自动化框架运行自动测试来找出问题,并且借助针对动画系统、蓝图视觉脚本、Sequencer等的可用性改进来 加快日常工作流程

我们努力使你的作品能够按照你的预想被所有人欣赏,无论他们选择什么形式因子都不例外。我们在上一个发行版的基础上,添加了为Android和iOS版《堡垒之夜》开发的更多优化,从而进一步改进了针对移动设备开发的流程。在抢先体验版中提供的像素流送开辟了 在Web浏览器中部署既没有使用门槛、也不在渲染质量上妥协的应用 的新路。我们还改进了针对Linux以及增强现实、虚拟现实和混合现实设备的支持。

除了Epic提供的各种更新之外,本发行版还包括 由GitHub上非常了不起的虚幻引擎开发人员社区提交的121项改进!感谢以下每一位贡献者对虚幻引擎4.21的贡献:

Aaron Franke(aaronfranke)、Adam Rehn(adamrehn)、Adrian Courrèges(acourreges)、aladenberger、Alan Liu(PicaroonX)、Cengiz Terzibas(yaakuro)、Cerwi、Chris Conway(Koderz)、cmp-、Damianno19、Deep Silver Dambuster Studios(DSDambuster)、Dorgon Chang(dorgonman)、DSCriErr、Dzuelu、Eliot(BillEliot)、Erik Dubbelboer(erikdubbelboer)、fieldsJacksonG、Franco Pulido(francoap)、Frank Stähr(phisigma)、George Erfesoglou(nonlin)、Hao Wang(haowang1013)、Henri Hyyryläinen(hhyyrylainen)、Homer D Xing(homerhsing)、IlinAleksey、Jacob Nelson(JacobNelsonGames)、Jerry Richards(r2d2Proton)、Jesse Fish(erebuswolf)、Josef Gluyas(Josef-CL)、Joshua Harrington(thejhnz)、Kalle Hämäläinen(kallehamalainen)、KelbyG、Layla(aylaylay)、LizardThief、Lucas Wall(lucaswall)、Mai Lavelle(maiself)、malavon、Marat Radchenko(slonopotamus)、Marat Yakupov(moadib)、Marco Antonio Alvarez(surakin)、Markus Breyer(pluranium)、marshal-it、Martin Gerhardy(mgerhardy)、Mathias Hübscher(user37337)、Michael Kösel(TheCodez)、Morva Kristóf(KristofMorva)、Muhammad A. Moniem(mamoniem)、Nick Edwards(nedwardsnae)、nrd2001、Oliver(oliverzx)、phoenxin、projectgheist、Rene Rivera(grafikrobot)、Rick Yorgason(Skrapion)、Riley Labrecque(rlabrecque)、Sahil Dhanju(Vatyx)、Sam Bonifacio(Acren)、scahp、Sébastien Rombauts(SRombauts)、Tom Kneiphof(tomix1024)、Troy Tavis(ttavis)、Truthkey、UristMcRainmaker、Wiktor Lawski(wlawski)、yhase7、Zeno Ahn(zenoengine)

主要特性

Niagara平台支持和可用性改进

随着我们继续努力提供业界领先的效果工具,Niagara获得了更丰富的功能,大量提高生活质量的改进,而且 现在Niagara项目在Nintendo Switch上也受到支持了

 

 

Niagara中仅限GPU的纹理取样

现在你可以 在粒子脚本中对2D纹理或伪体积2D纹理取样了!使用场景捕捉Actor创建渲染景深、色彩和法线信息等令人惊叹的效果,利用它们在Niagara粒子系统中重建环境,以自发光光源的形式表现粒子的势能和动能。

查看内容示例项目中的Niagara关卡,了解此功能的工作原理!

Niagara骨架网格体数据接口改进

你可以在骨架网格体数据接口中使用一些新功能实现对骨架网格体顶点数据的直接采样,以及访问骨架网格体上的特定骨骼或插槽。

条带粒子性能改进

条带现在会依靠GPU而不是CPU来生成条带集合体,从而提高整体性能。

Niagara中的GPU模拟支持

现在所有的非移动平台上都支持Niagara效果的GPU模拟。

简化的系统和发射器创建

Niagara现在包含对用户友好的对话框,使 创建系统和发射器的操作变得空前简单!你可以通过一套精挑细选的模板创建新的发射器和系统,从而 加快开发过程并确保贯彻团队的最佳实践

 

 

 

 

 

钟摆约束

此约束解决有关物理力、可选弹簧驱动因素的问题,包括势能计算。现在你可以创建激动人心的动态效果了,例如在能量超过指定阈值的情况下产生带有继承速度的粒子:

模块添加和改进

  • 生成和接收死亡事件
  • 现在多个模块考虑质量
  • 新的SampleSkeletalMeshSkeleton、SampleSkeletalMeshSurface、SkeletalMeshSkeletonLocation和SkeletalMeshSurfaceLocation模块,用于补充和增强骨架网格体数据接口
  • 新的AddVelocityInCone模块
  • 新的力模块:FindKineticAndPotentialEnergy、GravityForce、SpringForce和对其他力的多种可用性小改进
  • 新的KillParticlesInVolume模块
  • 新的SpriteRotatationRate模块
  • 新的RecreateCameraProjection模块,通过它可使用渲染目标和摄像机变换将场景捕捉转为可变形的粒子系统
  • 用于纹理取样的新模块:SamplePseudoVolumeTexture、SampleTexture、SubUV_TextureSample和WorldAlignedTextureSample
  • 用于时间插值和帧计数器的新实用程序模块
  • 许多新的动态输入和函数

新增特性:Replication Graph

Replication Graph插件实现了 自定义网络复制,从而可以构建超大规模的多人游戏,而这是无法通过传统复制策略实现的。例如,Epic自己的《堡垒之夜:大逃杀》从一开始就支持每场比赛100名玩家,包含大约50000个复制的Actor。如果每个复制的Actor都要确定是否应该通过每一路客户端连接进行更新,那么这对服务器CPU性能的影响是高得无法承受的。

Replication Graph插件通过提供另一种专门针对大容量多人游戏设计的策略解决了这一问题。这一策略将Actor分配到复制节点,由节点存储预计算的信息,而客户端可以使用这些信息来检索需要更新的Actor列表,使CPU不必在每一帧都为许多客户端重新计算相同的数据。除了引擎自带的标准节点之外,开发人员还可以编写自己的节点,以适应其游戏中Actor的特定需求。

新增特性:针对在移动平台上发布游戏的优化

在我们即将推出的更新中,除了为iOS上的《堡垒之夜》初始发行版开发的各种移动版改进外,还包括了针对Android上的初始发行版的改进,将使移动开发流程进一步得到优化。

 

 

改进了Android上的Vulkan支持

在三星公司的帮助下,虚幻引擎4.21包含了各种Vulkan工程和优化成果,旨在帮助《堡垒之夜》在三星Galaxy Note 9上成功发行,并且实现与OpenGL ES 3.1的100%功能兼容。与使用OpenGL ES的项目相比,利用Vulkan的相同项目 运行速度最多可提高 20%

用于Android的Config Rules系统

Android Config Rules系统现在可用于帮助在项目启动过程的早期发现问题。通过这个工具可以快速检查设备支持情况,如果发现驱动程序过时或者GPU不受支持等问题,可以向用户提供警告或报错对话框。之后可以在C++中使用FAndroidMisc::GetConfigRulesVariable(TEXT(”variablename”))查询任何变量集。

要使用该系统,可以选择在项目的 Build/Android 目录中放置一个 configrules.txt 文件,并使用UPL添加Gradle任务,从而在APK打包时使用ConfigRulesTool压缩并可选地加密该文件。可在引擎文档中找到更多详细信息。

用于Android的程序二进制缓存

 

 

在Android设备上,程序二进制缓存可用于帮助提高着色器加载性能,并减少着色器加载造成的卡顿。程序二进制缓存的工作原理是在设备上生成着色器程序的优化二进制表达,它们将用于后续运行中的着色器加载。从优化的二进制加载着色器程序也可显著缩短着色器加载时间。程序二进制缓存必须与着色器管道缓存工具配合使用,因为后者将在应用程序初始运行期间填充程序二进制缓存。要在项目中启用程序二进制缓存,你需要将下列命令添加到AndroidEngine.ini或设备描述。

  • r.ProgramBinaryCache.Enable=1

:有些设备不支持必需的程序二进制缓存扩展,这类设备将会退却到先前的行为。

Android上的模拟统一缓冲区

现在你可以将模拟统一缓冲区用于以OpenGL ES3.1功能级别为目标的项目,这样做可以 显著减少内存使用量并提高渲染性能,具体取决于你的应用程序复杂度。模拟统一缓冲区还经过了优化,有助于减少项目打包时需要传输到GPU的数据大小。要在使用OpenGL ES3.1功能级别时启用模拟统一缓冲区,请在项目的 DefaultEngine.ini 中的 [/Script/Engine.RendererSettings] 下面添加下列行:

[/Script/Engine.RendererSettings]
OpenGL.UseEmulatedUBs=1

Android上的CPU线程关联性

ConfigRules系统可以记录是否使用提供的小核心关联性掩码。如果启用该功能,下列线程将使用小核心,这会延长电池寿命,甚至能提高性能,因为它们不会在大核心和小核心之间进行可能导致卡顿的切换:渲染、合用、任务图、统计、任务图后台、异步加载。有关如何设置此功能的详细信息,请参见 Config Rules 文档。

改进了移动平台上的GPU粒子模拟性能

利用GPU进行粒子模拟的移动粒子效果已经得到显著改进。现在你可以选择通过限制可以使用的最大模拟粒子数量来减少GPU粒子模拟的内存使用量。默认情况下,可以同时模拟的GPU粒子最大数量设置为大约100万个粒子,将使用32 MB左右的内存。要调整可以使用的最大粒子数量,你可以将下列代码添加到项目的 DefaultEngine.ini 中的 [/Script/Engine.RendererSettings] 下:

[/Script/Engine.RendererSettings]
fx.GPUSimulationTextureSizeX=512
fx.GPUSimulationTextureSizeY=512
  • 将该值从512改为256将会使内存使用量减少到8 MB左右。
  • SimulationTextureSize大小必须是2的乘方。
  • 这类改进在使用ARM Mali GPU的设备上尤其明显。

颤化LOD过渡

现在移动平台上支持颤化LOD过渡。现在如果启用该支持,那么带有启用了 颤化LOD过渡(Dithered LOD transitions) 选项的材质的Object将会近乎无缝地从一种细节层级(LOD)过渡到另一种细节层级。默认情况下,对移动平台禁用了颤化LOD过渡支持。要启用它,请转到 项目设置(Project Settings) > 渲染(Rendering)> 移动(Mobile),然后选中 允许颤化LOD过渡(Allow Dithered LOD Transitions) 选项。

注:启用了 颤化LOD过渡的材质将作为蒙版材质渲染。这可能在移动平台上造成负面性能影响。我们建议只对蒙版材质启用此效果。

新增特性:转化程序性能

转化过程已经优化,使得 转化时间缩短达60%!低级代码现在会避免执行不必要的文件系统操作,而转化程序计时器也得到了精简。对未经请求的资源的处理(与资源依赖性有关)也已经过重构,可以更好地扩展。这些变化在大型项目(具有100000个以上的资源)中最为显著。

新增特性:像素流送(抢先体验)

在云端的台式PC上运行打包后的虚幻引擎应用程序,然后 将视口直接流送到任何平台上的任何现代化Web浏览器!即使在移动平台上,也能通过轻量级的应用获得最高质量的渲染,无需下载,无需安装。

 

 

由虚幻引擎渲染的视口,嵌入在Web UI中。图像和模型由McLaren提供。

你可以将一个游戏会话广播给多个观众,为此只需要共享链接,或者将每个连线的用户发送到各自独立的游戏会话中。

托管引擎视口的网页会自动向引擎发回键盘事件、鼠标事件和触摸事件。你可以通过你自己的HTML5 UI自定义网页,使用自定义JavaScript事件通过网络触发和响应Gameplay事件。

有关详细信息,请参见 像素流送

新增特性:动画系统优化和改进

动画系统通过新的工作流程改进、更好的信息呈现和新工具等,继续突出其功能一流的特点!

动画压缩更新