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事件。

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

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

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

动画压缩更新

动画压缩时间显著缩短,这是因为使用了最优编码解码器的白名单来避免尝试不太可能被选择的Permutation,这大大减少了我们尝试用于压缩的编码解码器数量。在多核心系统上,现在大多数编码解码器会在自动压缩期间并发求值,这进一步缩短了压缩动画序列所需的时间。

对“动画压缩统计对话框(Animation Compression Stat Dialog)”窗口做了下列更新:

  • 修正了将导致对话框显示不正确结果的漏洞
  • 添加了压缩时间统计
  • 增加了可压缩动画的数量
  • 增加了跟踪平均错误数量最多的动画
  • 增加了跟踪10个最差项目的功能,而不仅仅是跟踪较差的项目
  • 改进了对话框上的标注
  • 更多地传递FBoneData数组,而不是重新计算

请参见 压缩 了解更多信息。

动画通知改进

添加了新的动画通知,使你能够管理动态和布料模拟的状态。我们还更新了通知添加/替换菜单,使用类选择器更好地搜索BP和原生通知。要添加通知,请在通知轨迹上右键单击,然后在“添加通知(Add Notify)”下面选择你要添加的通知类型。

请参见 动画通知 了解更多信息。

维持根运动的原始比例

添加了“使用规范化的根运动比例(Use Normalized Root Motion Scale)”选项来维持根运动的原始比例。此选项默认情况下打开,是在本引擎发行版之前就存在的功能。现在如果选择禁用此选项,将会使用最终混合的动画替代。

请参见 启用根运动 了解更多信息。

添加了用于“同步标记”名称的缓存和自动完成功能

现在如果创建同步标记,你可以从“现有同步标记(Existing Sync Markers)”菜单选项访问任何分配到骨架的同步标记。如果在搜索框中输入文本,系统还会根据你输入的文本过滤同步标记。

 

 

动画序列帧率

在动画工具的视口和内容浏览器的工具提示中,现在会显示动画序列的帧率。

 

 

对动画蒙太奇启用自动混出

现在动画蒙太奇有了启用或禁用自动混出的选项。该选项在默认情况下是启用的,但你可以禁用它,使得系统不会自动混出蒙太奇,而是保持最后的姿势。

请参见 蒙太奇属性 了解更多信息。

CCDIK 骨骼控制节点

将新的CCDIK(循环坐标下降逆向运动学) 骨骼控制节点用于轻量的IK算法,该算法适合实时计算相对较短的IK链,例如肩膀到指尖。

请参见 CCDIK 骨骼控制节点了解更多信息。

设置主姿势组件强制更新

设置主姿势组件(Set Master Pose Component) 功能有了名为 强制更新(Force Update) 的第二个输入引脚,它可用于在运行时信息与主组件相同时跳过所有这些信息的更新,或者强制更新运行时信息。这个引脚仅适用于注册过程,因为注册过程是可以序列化的,并且需要刷新所有运行时数据。

 

 

请参见 主姿势组件 了解更多信息。

其他改进和更新

  • 实时动画蓝图重编译现在不是试验性功能了
  • 本地空间现在是动画编辑器的默认坐标空间
  • 现在当应用最小LOD时,动画工具视口中会显示通知。

新增特性:Gauntlet自动化框架(抢先体验)

新的抢先体验版Gauntlet自动化框架 允许你使构建版到设备的部署过程自动化,运行一个或多个客户端和/或服务器,并处理结果。

你可以创建Gauntlet脚本来自动分析兴趣点、验证Gameplay逻辑、检查来自后端API的返回值,等等!Gauntlet已经 在优化《堡垒之夜》的过程中经历了数月的实战检验,也是确保该游戏在所有平台上流畅运行的重要一环。

Gauntlet提供了新的分析帮助程序,可以及时记录两个点之间的关键性能值,从而跟踪错过的垂直同步、卡顿、CPU时间、GPU时间、RHI时间、绘图调用,等等。Gauntlet提供的帮助程序功能还可以从日志收集这些信息,因此你可以生成警告,将它们存储在数据库中,或创建趋势曲线。在测试期间收集的所有信息都可以通过你希望的任何形式输出到报告中。

下面显示了一个简单的报告示例:

 

 

每个Gauntlet测试都是一个C#脚本,表达用于测试的简单配置——有多少客户端、多少服务器和要传递什么参数。Gauntlet负责从池中分配机器,部署和运行构建版,检查崩溃、断言或超时之类的常见错误,以及收集日志文件和其他瑕疵。

新增特性:次混音包络跟随器

新版虚幻引擎的用户现在可以对其次混音设置包络跟随器委托,从而实现对该次混音的各个信道的振幅分析。这将帮助用户根据其次混音音频的振幅特征推动可视化和蓝图事件。

 

 

新增特性:过滤次混音效果

新版虚幻引擎的用户现在可以选择对其次混音添加多模式过滤器,在一个次混音上实现动态过滤器效果。

 

 

新增特性:次混音效果混响干燥度

新版虚幻引擎中的次混音效果混响现在支持并行湿润度和干燥度,允许用户设置特定的湿/干比,使效果既可以作为插入式效果、也可以作为发送式效果使用。

新增特性:Linux默认使用Vulkan渲染器

现在如果Vulkan可用,Linux会将它作为默认渲染器使用。如果API无法初始化,引擎将退回OpenGL而不发出通知。

你可以在项目设置中使用 目标 RHI(Target RHIs) 添加或禁用特定 RHI,或使用命令行切换 -vulkan-opengl4 以禁用退回。

新增特性:Linux媒体播放器

现在你可以在Linux平台上使用捆绑的WebMMedia插件播放.webm VPX8/9视频。

新增特性:Linux崩溃报告客户端GUI

我们添加了对Linux上崩溃报告程序GUI的支持,以便你帮助我们继续改进对Linux平台的支持。请一出现报告就提交,即使是重复的报告也不例外!这可以帮助我们的工程师评估崩溃频率并了解是哪些条件导致了崩溃发生。

新增特性:专业视频I/O改进(抢先体验)

我们还在继续简化通过专业质量的SDI显卡使视频源输入和输出虚幻编辑器的操作。现在你可以在多台硬件设置不同的计算机上处理同一个虚幻引擎项目,而不必在项目中更改任何配置设置。

在每台机器上创建一个媒体配置文件,然后通过设置它来处理需要在该计算机上使用的显卡和格式。你还可以在同一个面板中覆盖项目的时间码和同步源:

 

 

如果将媒体配置文件与新的代理媒体源和代理媒体输出资源类型相结合,就可以自动重定向项目的媒体内容与媒体配置文件中的设置之间的输入和输出信道。如果你切换到不同的媒体配置文件——例如,在另一台装有不同的媒体卡或不同走线设置的计算机上——那么从该机器的硬件引出的输入和输出信道会自动路由经过代理,因此你不必更改项目中的任何内容。

有关详细信息,请参见 使用媒体配置文件和代理

另外,本发行版还添加了:

  • 一个可停驻的时间码提供程序面板(窗口(Window)> 开发者工具(Developer Tools)> 时间码提供程序(Timecode Provider)),它显示虚幻引擎的当前时间码和该时间码的来源:
  • 对10位输入、音频I/O和交错/PsF输入的支持。
  • 新的 Blackmagic媒体播放器 插件,支持Blackmagic Design的SDI卡。请参见 Blackmagic视频I/O快速入门

:AJA媒体播放器和Blackmagic媒体播放器插件现在通过Epic Games Launcher的“商城(Marketplace)”选项卡提供,而不是随虚幻引擎自动安装。它们的源代码已 在GitHub 上免费放出,为其他开发者提供了基于虚幻引擎的媒体核心API开发视频I/O插件的示范。

新增特性:符合地理学的太阳定位(抢先体验)

在真实世界中,太阳在天空中的位置取决于观察者所在的经纬度、日期以及时刻。现在你可以使用同一套数学公式来控制你的虚幻引擎关卡中的太阳位置。

每当你需要模拟地球上特定地点的真实光照条件,例如用于大型建筑或施工项目,这一功能都会特别有效。但如果你希望在任何关卡中根据全球地点和时刻表现逼真的太阳移动和定位,这一功能也可以派上用场。

有关详细情况,请参见 符合地理学的太阳定位

新增特性:静态网格体处理

我们在虚幻编辑器中增加了几种新的静态网格体处理选项。现在你可以从静态网格体中删除不需要的UV贴图来节省内存。

此外,现在你还可以使用在虚幻编辑器中运行的Python和蓝图脚本来:

新增特性:蓝图可用性改进

蓝图图编辑器现在有了“快速跳转”导航功能,它增强了现有的书签功能,允许用户在蓝图编辑器中使用CTRL + [0-9]保存当前的位置和缩放关卡。随后只要蓝图编辑器窗口打开,即使用户在处理另一个蓝图资源,也可以通过按SHIFT + [0-9]快速返回到该图的已保存位置和缩放级别。“快速跳转”书签在编辑器会话结束后依然存在,而且存储在用户/机器的本地。

用户现在能够通过情境菜单在Sequence节点的目标引脚前面或后面插入引脚,而不是只能在末尾添加引脚。

从原生化的蓝图类C++代码排除单块引擎标头文件的功能现在作为项目设置提供。如果代码大小是个问题,该设置可以帮助缩减单块游戏EXE文件的整体代码大小。可以在“项目设置(Project Settings)”->“打包(Packaging)”中“高级(Advanced)”部分的“蓝图原生化方法(Blueprint Nativization Method)”选项下面找到该选项。为了保持与现有Object的兼容性,该选项在默认情况下是禁用的。

新增特性:对HTML5模板的改进

HTML5项目现在分别使用HTML、JavaScript和CSS模板取代了先前的单块模板文件!还支持用于单个项目的自定义模板文件:

复制:

.../Engine/Build/HTML5/GameX.*.template

到:

[project]/Build/HTML5/。

构建进程将自动选择项目的路径,否则就退却到引擎的版本。

这依据的是GitHub PR#4780。

新增特性:HTML5自述文件已更新

HTML5自述文件已按类别拆分为多个自述文件:

  • 构建UE4 HTML5
    • 获取源文件
    • 编译支持程序
    • 编译UE4编辑器
    • 运行UE4编辑器
    • 针对HTML5将项目打包
    • 测试HTML5打包项目
  • 调试UE4 HTML5
    • 如何转储堆栈和从Cpp打印
    • BugHunting GLSL
  • Emscripten和UE4
    • EMSDK
    • Emscripten工具链和第三方库
    • UE4 C#脚本
    • 测试构建版,检入和CIS

新增特性:改进的IPv6支持

对IPv4和IPv6的支持已经合并为一个套接字子系统,其中先前对每种协议的支持都被隔离到一个特定子系统。因此使用其中一种BSD子系统的平台可以同时支持IPv4和IPv6,并且透明地对调用代码进行这样的操作。

新增特性:DDoS检测和迁移

DDoS(分布式拒绝服务)攻击通常干扰游戏服务器的方式是对服务器传送大量数据包,使其无法在处理所有数据包的同时锁定和/或淹没其他玩家的数据包,从而导致玩家超时,或者遭遇影响Gameplay的严重丢包。

通常这类攻击使用欺骗式UDP数据包,其中的源IP是无法验证的。这种可选的DDoS检测功能专门针对这种情况而设计,它根据可配置的欺骗式UDP数据包阈值检测/防御并非源于现有已知客户端连接的DDoS攻击。此功能不能保证服务器免疫一切攻击,因为高强度的攻击仍然有可能使服务器硬件或运行的OS不堪重负。

新增特性:物理系统界面更新

物理系统界面已经重构,以支持用户更好地在高级别控制物理Object。由于这些更改,我们现在不推荐使用异步场景,建议仅将它用于APEX破坏。你仍然可以使用同步场景实现相同的视觉效果。

由于这些更改,与C++代码API有关的物理系统有很多已经改变。该API的功能依然不变,它的用法应该与当前用法非常相似。我们更改物理系统界面的目的是a)重新整理依赖性,将它们放置到一个可控的位置;b)建立一个在与虚幻引擎互动时的物理互动的通用模型。

请参见 4.21物理系统技术说明 了解更多信息。

新增特性:管道状态Object(PSO)缓存

我们现在支持Metal(iOS/Mac)、DX12和Vulkan平台上的管道状态Object(PSO)缓存。PSO缓存有助于减少在材质需要编译新着色器时项目可能发生的任何卡顿。PSO缓存会创建材质需要的所有着色器的列表,然后在项目首次使用这些着色器时用于帮助加快着色器编译过程。PSO缓存功能可以在“项目设置(Project Settings) > 打包(Packaging)”部分中启用。

要了解关于如何在UE4项目中设置和使用PSO缓存的更多信息,请务必查看 PSO缓存 文档。

新增特性:物理光照单位更新

我们根据社区提供的反馈,改进了物理光照单位的工作流程和可用性。作为这些更新的一部分,我们进行了下列更改:

  • 现在所有光源类型都会在强度值旁边显示其单位类型。
  • 定向光源现在用勒克斯单位显示,而且强度范围扩大了。
  • 天空光照强度现在用cd/m2单位显示,而且强度范围扩大了。
  • 后期处理自动曝光设置可以按EV-100表达,而且场景亮度范围扩大。此设置可以通过项目设置来启用。
  • 像素检查器现在可以显示场景颜色的预曝光。此设置可以通过项目设置来启用。
  • HDR(眼部适应)可视化已经进行了下列方面的重构:
    • 当前场景视图上的HDR分析画中画显示允许根据即时反馈调整。
    • 可视化现在按EV100表达。
    • 已经去除了像素检查器类反馈。

要了解更多信息,请参见 物理光照单位

新增特性:Sequencer事件轨迹

Sequencer事件轨迹已经彻底重构,现在事件与蓝图图的配合更紧密,因此用户体验的熟悉度和健壮性都大大提高。这一改进利用了蓝图和界面,提供的控制性和稳定性都要优于使用结构体有效负载和匿名事件的先前实现。

请参见 事件轨迹概述通过Sequencer调用事件 了解更多信息。

新增特性:几何体缓存轨迹(试验性)

新的(试验性)几何体缓存轨迹 允许你整理几何体缓存,并将它逐帧准确渲染出来。

请参见 使用几何体缓存轨迹 了解更多信息。

新增特性:Sequencer音频烘焙(抢先体验)

现在你可以从“渲染电影设置(Render Movie Settings)”窗口将音频烘焙到主音频次混音中。烘焙音频的过程发生在单独的渲染通道中,序列中的音频在你渲染电影时会导出到一个文件中。

请参见 渲染电影设置 了解更多信息。

新增特性:Sequencer引导标记

现在你可以在时间轴上放置垂直引导标记,用于对齐或标识时间轴中的关键点。

 

 

请参见 在Sequencer中使用帧标记 了解更多信息。

新增特性:Windows混合现实支持

虚幻引擎4现在原生支持Windows混合现实(WMR)平台和头盔,例如HP混合现实头盔和三星HMD Odyssey头盔。要使用我们的原生WMR支持,你必须使用2018年4月Windows 10更新或更高版本,并且拥有受支持的头盔。有关如何设置和运行的更多信息,请参见 Windows混合现实开发

 

 

图像由HP提供

新增特性:Magic Leap限定开发人员发行版支持

虚幻引擎4现在支持在Magic Leap基于Lumin的设备上开发完成应用程序所需的所有功能。我们支持渲染、控制器支持、姿势识别、音频输入/输出、媒体,等等。有关如何成为开发人员的更多信息,请查看 https://www.magicleap.com/

 

 

新增特性:Oculus Avatar

Oculus Avatar SDK包含一个虚幻软件包,用于帮助开发人员实现Rift和Touch控制器的第一人称手部感知。该软件包包含可以在社交应用程序中被其他用户看到的化身的手部和身体资源。Avatar SDK支持的第一人称手部模型和第三人称手部与身体模型会自动提取用户在Oculus Home中做出的化身配置选择,从而在不同应用程序中提供统一的身份认同感。有关更多信息,请参见 Avatar SDK开发人员指南

新增特性:轮询遮挡

虚幻引擎4现在支持轮询遮挡。ons.启用新添加的 vr.RoundRobinOcclusion 标记后,立体帧将使用交错模式在每帧为一个眼睛启动遮挡查询(即在奇数帧仅为左眼启动查询,在偶数帧仅为右眼启动查询)。这种方法使每帧的遮挡绘图调用次数减少了一半。在某些情况下,这可以大大提高性能。

新增特性:平台SDK升级

在每一个版本中,我们都会更新引擎以支持平台伙伴的最新SDK版本。

 

 

  • Build farm编译所需的IDE版本
    • Visual Studio:Visual Studio 2017 v15.6.3工具链(14.13.26128)和Windows 10 SDK(10.0.12699.0)
      • 支持的最低版本
        • Visual Studio 2017 v15.6
        • Visual Studio 2015 Update 3
    • Xcode:Xcode 9.4
  • Android:
    • Android NDK r14b(新的CodeWorks for Android 1r7u1安装程序将取代Windows和Mac上先前的CodeWorks;Linux将使用1r6u1 plus修订版)
  • HTML5:Emscripten 1.37.19
  • Linux“SDK”(交叉工具链):
    • v12_clang-6.0.1-centos7
  • Lumin:0.16.0
  • Steam:1.39
  • SteamVR:1.39
  • Oculus Runtime:1.28
  • Switch:
    • SDK 5.3.0 + 可选的NEX 4.4.2(固件5.0.0-4.0)
    • SDK 6.4.0 + 可选的NEX 4.6.2(固件6.0.0-5.0)
    • 支持的IDE:Visual Studio 2017、Visual Studio 2015
  • PS4:
    • 6.008.001
    • 固件版本6.008.021
    • 支持的IDE:Visual Studio 2017、Visual Studio 2015
  • Xbox One:
    • XDK:2018年6月QFE-4
    • 固件版本:2018年6月(版本10.0.17134.4056)
    • 支持的IDE:Visual Studio 2017
  • macOS:SDK 10.14
  • iOS:SDK 12
  • tvOS:SDK 12