2019年9月4日

虚幻引擎4.23现已发布!

作者 Jeff Wilson

全新内容

引擎中加入次时代虚拟制片工具和改良的实时光线追踪后,电影电视的生产制作已经旧貌换新颜。在新版本中可以现场生成最终镜头。nDisplay可以构建LED墙,将真实演员和道具放置到UE4场景中,还能对其投射光线并形成反射效果(测试版)。此外新版本中还添加了VR探查工具(测试版)、改良的Live Link实时数据流送,以及从iPad或其他设备远程控制UE4的功能(测试版)。光线追踪得到大幅改良,增强稳定性和性能、支持额外的材质和几何体类型(其中包括地形几何体、实例化静态网格体、过程化网格体与Niagara sprite粒子)。

您可以用虚幻引擎 不受限制地打造真实世界。利用全新的Chaos物理与破坏系统,就能以电影级的品质对大型场景实施碎裂、破坏与爆破,同时获得前所未有的艺术效果掌控权。借助运行时虚拟纹理、非破坏性地形编辑与植物工具的交互式Actor放置即可绘制出精美绝伦的场景。

新版本优化了系统,提供了新工具并增加了新功能,帮助用户 提高工作效率。虚拟纹理降低了光照贴图和美术师创建的细节纹理的纹理内存开销,并分别改善了程序化生成或分层材质的渲染性能。动画流送会将运行时内存影响限制到使用中的动画,从而实现同时使用更多数量的动画。虚幻Insights可收集、分析和显示UE4行为的数据进行性能分析,帮助用户理解引擎在实时或预录制会话中的性能。

此版本包含了GitHub虚幻引擎开发者社区提交的190项改良!特此对虚幻引擎4.23版本的每位贡献者表达诚挚谢意:

Doug Richardson“drichardson”、Morva Kristóf“KristofMorva”、Reece Dunham“RDIL”、“projectgheist”、Jorgen P. Tjerno“jorgenpt”、Ondrej Hrusovsky“Skylonxe”、Miguel Fernandez“muit”、Geordie Hall“geordiemhall”、Artem Umerov“umerov1999”、Marat Radchenko“slonopotamus”、“AgentOttsel”、Eric Spevacek“Mouthlessbobcat”、Danny de Bruijne“danskidb”、Sertaç Ogan“SertacOgan”、Trond Abusdal“trond”、Joe Best-Rotheray“cajoebestrotheray”、Nick Edwards“NEdwards-SumoDigital”、Marcel“Zaratusa”、Mark Whitty“Mosel3y”、“YuchenMei”、Branislav Grujic“grujicbr”、“Rei-halycon”、Michael Hills“MichaelHills”、Nick Pearson“Nick-Pearson”、“mastercoms”、Zhi Kang Shao“ZKShao”、Nick“eezstreet”、“temporalflux”、Vladislav Dmitrievich Turbanov“vladipus”、Daniel Marshall“SuperWig”、Brian Marshall“TurtleSimos”、Sergey Vikhirev“Bormor”、Robert Rouhani“Robmaister”、Maxime Griot“yamashi”、Igor Karatayev“yatagarasu25”、“Zeblote”、 Hesham Wahba“druidsbane”、Joe Best-Rotheray“cajoebestrotheray”、MoRunChang“MoRunChang2015”、Sébastien Rombauts “SRombauts”、JinWook Kim“zelon”、Riley Labrecque“rlabrecque”、Дмитрий “Yakim3396”、“DanMilwardSumo”、Wesley Barlow “Wesxdz”、Franco Pulido“Franco Pulido”、Kimmo Hernborg“KimmoHernborg”、John Dunbar“Volbard”、Michał Siejak“Nadrin”、kalle Hämäläinen“kallehamalainen”、“KaosSpectrum”、Evan Hart“ehartNV”、Skyler Clark“sclark39”、Thomas Miller“tmiv”、Stephen A. Imhoff “Clockwork-Muse”、David Payne“davidpayne-cv”、“CyberKatana”、“roidanton”、Milan Šťastný“aknarts”、Alex P-B chozabu、Marco Antonio Alvarez“surakin”、Taikatou、Doğa Can Yanıkoğlu“dyanikoglu”、“Kalmalyzer”、“phi16”、Mikhail Zakharov“zz77”、Paul Hampson “TBBle”、“NextTurn”、“Punlord”、kalle Hämäläinen“kallehamalainen”、Robert Pröpper“rproepp”、Yohann Martel “ymartel06”、Francis J. Sun“francisjsun”、Eric Wasylishen“ericwa”、Phillip Baxter“PhilBax”、Alan Liu“PicaroonX”、Mathias Hübscher“user37337”、Daisuke Ban“exceed-alae”、Brandon Wilson“Brandon-Wilson”、Marcin Gorzel“mgorzel”

主要功能

新增内容:Chaos——破坏系统(测试版)

在GDC 2019登台亮相的 ChaosGDC演示)是虚幻引擎中全新的高性能物理和破坏系统,现已在4.23版本中提供测试使用。用户可以通过Chaos在场景中实时实现电影视效级的大范围破坏,并让美术师能够对创建的内容进行前所未有的控制。

必须使用源版本才能启用和编译虚幻引擎4.23中的Chaos系统。请阅读此指南,了解如何启用Chaos。

欲知Chaos破坏系统的更多内容,请参见Chaos Destruction文档页面。启动程序中的“学习”选项卡下也新增了Chaos破坏演示范例,说明如何设置各种模拟与效果。

几何体集

虚幻引擎可破坏对象中加入了新的资源类型。它们可以从一个或多个静态网格体构建而来,其中包括在蓝图或嵌套蓝图中收集而来的网格体。美术师可以通过几何体集选择要模拟的内容,并能灵活地组织和构建破坏。

 

 

左图 - 一段墙 - 31个几何体集;右图 - 静态网格体部分爆炸效果

碎裂

拥有几何体集后,可使用碎裂工具将其打破。可以单独打破每个块,或在多个块上应用一个碎裂模式。除标准Voronoi碎裂外,还可以使用辐射碎裂、群集Voronoi碎裂和平面裁剪,利用噪点来获得更自然的效果。

 

 

左图 - 原始几何体集;中图 - 整个网格体上的碎裂;右图 - 大块上的子碎裂

基于优化考量,次级碎裂提供了进一步增加模型打碎复杂度的可能性。每次次级碎裂便在几何体集中增加额外一个层级。Chaos系统会追踪每个层级的碎裂,把信息存储到一个叫做簇的结构中以便我们控制。以下是一个网格体的范例,每个碎裂层级都合并到其自身的簇中。

 

 

左图 - 1级:6个对象;中图 - 3级:50个对象;右图 - 5级:513个对象

连接图表

这个轻量级的连接图是破坏模拟的一个不同范式。上图中有几个静态的抛锚块,但场景中的其他内容潜在皆为动态。

 

 

蓝色 - 可响应Chaos的潜在物;黄色 - 抛锚节点

Chaos系统不会从运动学切换到动态,而是会应用张力,其将打破连接,Chaos破坏随即发生。这种方式能够将交互有效最大化,同时保留对活跃刚体数量的控制。

用户可以直接通过场来控制模拟并与其进行交互。场可用于控制几何体集任意部分的任意属性。如果希望让实例的质量多样化、或让物体变为静态、或让角落比中间更易碎,应用一些力就可以了,这些都是通过“场”来实现。

缓存模拟

通过缓存,高保真模拟可被预缓存并进行实时播放,使几何体集拥有运动学。这意味着用户能在构建大型破坏事件的同时让被缓存的模拟和玩家和其他环境的交互。

Niagara整合

Chaos系统可以说是UE4中的一等公民,与模拟场景的其他系统(如Niagara)地位不相上下。在模拟中混入视觉效果后,场景的真实度便会大大提升。举例而言,建筑坍塌时其将产生大量烟雾和灰尘。要促成视效和破坏之间的完美联姻,可以在物体碰撞或破碎时将来自物理系统的数据发送到Niagara,该数据便能用于生成有趣的次要效果。

新增内容:实时光线追踪改良(测试版)

除了一些重要新功能外,我们还对光线追踪功能进行了大量优化和稳定性改良。

 

 

性能与稳定性

此版本很重要的一部分便是提升虚幻引擎稳定性、性能,以及光线追踪功能的质量。这意味着:

  • 扩展了虚幻引擎整体对DirectX 12的支持
  • 改良了光线追踪功能的降噪器质量
  • 提升了光线追踪全局光照(RTGI)质量

额外的几何体和材质支持

新版本支持额外的几何体和材质类型,例如:

  • 地形地貌(用2080Ti在KiteDemo中进行的性能测试结果:几何体更新时间约2ms、显存约500MB)
  • 层级实例化静态网格体(HISM)和实例化静态网格体(ISM)
  • 过程化网格体
  • 次表面材质传播
  • 地形和骨架网格体几何体的场景位置偏移(WPO)支持

多反弹反射回退

新版本中增加了增加了回退到反射球反射的的应变方案,改良了对多反弹光线追踪反射(RTR)的支持。这意味着之前版本中显示为黑色的内部反射(或称之为反射中的反射)或设置了最大反射距离的地方将回退使用这些光栅技术,而不显示黑色。

这样一来无需使用多光线追踪反弹即可改良反射质量,极大提高性能。

 

 

1 - 单次RTR反弹;2 - 两次RTR反弹;3 - 带上次反弹反射采集回退的单次RTR反弹

新增内容:虚拟纹理(测试版)

在此版本中,用户可借助虚拟纹理测试版以更低更稳定的运行时内存占用来创建和使用大型纹理。

流送虚拟纹理

在现有的基于Mip的流送以外,流送虚拟纹理使用虚拟纹理资源提供了另一种从硬盘流送纹理的方式。基于mip的传统纹理流送的工作原理是执行材质UV使用的离线分析,然后在运行时基于物体可视性和摄像机距离来决定要加载的纹理Mip等级。对虚拟纹理而言,所有mip等级被划分为尺寸固定的小块,然后GPU便决定屏幕上显示的像素可以访问哪些虚拟纹理图块。

流送虚拟纹理可以减少纹理内存开销,提升使用极大纹理(包括光照贴图和UDIM纹理)时的性能。然而,从虚拟纹理进行采样的开销高于常规纹理的采样。

欲知完整细节,请参阅Streaming Virtual Texturing文档。

运行时虚拟纹理

运行时虚拟纹理使用一个运行时虚拟纹理资源,其拥有一个放置在关卡中的体积。其工作原理类似于传统纹理贴图,唯一差别是其会根据需要在运行时使用GPU。运行时虚拟纹理可用于缓存大型区域上的着色数据,使其能良好地进行地形着色。

欲知完整细节,请参阅Runtime Virtual Texturing文档。

新增内容:Unreal Insights(测试版)

Unreal Insights(当前为测试版)让开发者能统一收集并分析关于虚幻引擎行为的数据。此系统拥有2个主要组件:

  • 追踪系统API 以固定格式从运行时系统收集信息,并将其采集便于之后进行处理。多个活跃会话可同时提供数据。
  • Unreal Insights工具 通过分析API提供处理数据的交互显示,让开发者拥有一个统一接口处理来自应用程序的统计数据、日志和指标。

在追踪会话(Trace Sessions)窗口(位于Unreal Insights选项卡下)中,用户可以连接到一个/多个活跃会话,或选择活跃或预录制会话数据进行查看:

选中需要查看的会话数据后,即可使用“时间Insights(Timing Insights)”或“资源加载Insights(Asset Loading Insights)”选项卡来进行浏览。

新增内容:HoloLens 2原生支持(测试版)

新版本中,开发者可以开始创建HoloLens 2内容。平台特有功能的API已开放,包括流送和原生部署、手指追踪、手势识别、网格化、语音输入、空间锚定等诸多内容。可打造AR游戏或企业级应用程序。其包含强大的模拟器支持,无论是否拥有现成设备,都可以直接用UE4开始HoloLens 2开发。

 

 

 

 

欲知详情,请参见Microsoft HoloLens 2开发

新增内容:虚拟制片流程改良

在虚拟制片流程方面,虚幻引擎仍在引领潮流!用户可以虚拟探查环境并组成镜头、使用虚拟场景照亮真实场景、将实时直播元素与数字展示连接起来构建无缝体验,并使用自行构建的接口来进行远程控制。

摄像机内视效(测试版)

利用摄像机内视效改良,用户可以将真实的演员和道具与虚幻引擎环境背景相结合,形成最终的镜头;可以使用LED墙显示虚幻引擎场景、或在UE4中实时合成的数码绿幕。

基于摄像机视锥的渲染可以让真实的演员和道具接收到来自CG环境的光照和反射,在一些情况下可以跳过后期制作工作流程,让整体生产提速。点击按钮即可快速在LED墙上放置数码绿幕,无需在舞台上进行物理摆放,这样能节约大量时间。拥有nDisplay多显示技术后,整个解决方案可以虚拟缩放为任意大小或配置的LED墙。

针对影片摄制者的VR探查(测试版)

新的VR探查工具让影片摄制者能够以新方式在VR中导航并与虚拟世界进行交互,以便让他们能做出更好的创意选择。

 

 

导演和摄影指导可以轻松找到位置、合成镜头、设置场景阻挡,并获得拍摄位置的准确展示。而美术师和布景师在搭建场景时可以在VR中体验整个环境,使用测量和交互工具来查看距离、对场景进行修改。也可以从虚拟场景采集出图像,让整个制作团队都能跟踪VR流程中做出的决定。无需进入C++和重新编译引擎便能在蓝图中自定义控制器和设置。

欲知详情,请参见虚拟探查

Live Link数据类型和用户体验改良

新版本中,Live Link插件可处理多种信息,更易于将同步数据应用到虚幻引擎中的场景元素!用户可以在生产流程中动态地驱动来自其他应用程序和数据源的角色动画、相机、光线和基础3D变换。

可以将一个 角色 指定给每个场景元素,其将决定Live Link为该元素同步的信息。Live Link插件提供了角色动画、摄像机、光源和基础3D变换的内置角色。也可以为actor指定一个新的Live Link控制器组件,更轻松地从任意Live Link源驱动虚幻引擎关卡中的actor。

更多改良:

  • 在将来自Live Link的数据应用到场景前(例如应用轴转换)对其进行预处理,并控制将源从一个角色应用到另一个角色时进入数据的变换方式。用户也可以创建并指定自定义的预处理器和转译器类。
  • 将多个源组合到一个虚拟主题中,基于来自多个Live Link源的信息来驱动一个单一场景元素。
  • 为需要经常返回的Live Link设置保存并加载预设。
  • 状态显示器,说明哪些Live Link源当前正在发送数据到虚幻引擎。
  • 我们通过Live Link增加了ART追踪的支持,便于用户利用ART技术在应用程序中(如VR、增强现实和动作捕捉)进行各种追踪。

欲知详情,请参见Live Link插件文档。

通过HTTP进行远程控制(测试版)

新版本中,用户可以通过HTTP将命令远程发送到虚幻引擎和虚幻编辑器!

用户可以借此来创建自己的网络用户接口,触发项目内容中的修改。可以用支持主流网络标准的任意浏览器或自定义应用程序来控制虚幻引擎,还可将控制方法整合到其他自定义面板中,用于控制环境中的其他应用程序。

调用远程控制接口提供的不同端点后,即可设置并获取actor和资源上的属性,并调用公开到蓝图和Python的所有函数。

欲知详情,请参见网页远程控制

新增内容:弯曲表面的nDisplay扭曲和混合

用户可以利用nDisplay将虚幻引擎项目投射到更多类型的物理设备上(如弯曲和球形屏幕),并在涉及重叠投射之间复杂混合的情况下进行投射。

 

 

nDisplay提供了两种常见表达方式的内置整合,说明如何将2D图像从多个项目投射并混合到弯曲和带弧度的表面:

此外,第三方开发者可以实现一套更多的渲染接口,借此自定义nDisplay渲染UE4内容的方式。

欲知nDisplay的更多信息,请参见使用nDisplay在多显示屏上进行渲染

新增内容:Niagara改良(测试版)

整合到Chaos物理中

新版本中,Niagara粒子系统可由Chaos中的物理模拟生成!物体破碎时,可以生成烟雾和尘土及更多细小碎片,增强物理模拟的视觉效果。新版本中拥有了一个Chaos破坏聆听器,其将发送事件到相关的粒子系统,并提供关于Chaos交互事件的信息(如断开、碰撞或拖尾)。可在Chaos破坏内容范例中查看实例。

GPU模拟改良

新版本中,GPU模拟的性能已得到大幅改良,提供更佳的数据管理和计算任务之间更显式的同步基元,以缩短空闲时间。这能重叠大量的GPU工作,极大提升吞吐量,将拥有更多机会在运行其他计算任务时运行计算着色器。

静态和骨架网格体采样的GPU支持

新版本中,GPU模拟可对网格体的表面进行采样、抓取UV坐标、从纹理进行采样,然后使用该功能来驱动复杂的模拟逻辑,填补CPU和GPU可实现操作之间的空白,实现类似GDC Troll演示中精灵的效果(每秒生成60万颗粒子)。

为Niagara Sprite发射器添加光线追踪支持

新版本中,Niagara模拟可以生成光线追踪时由反射和阴影使用的几何体,比如GDC Troll演示中的精灵在飞过水面时将投下倒影。

当前只支持Sprite粒子发射器。

发射器继承

新版本中,在Niagara中创建发射器时,可以创建一个继承自项目中现有发射器的发射器。新版本中美术师可以创建目的相似的发射器功能继承树,更轻松地重复使用内容。

举例而言,如果要为武器特效中使用的基础枪口火焰创建一个发射器,则可能需要为这个枪口火焰创建轻量和重量变体。通过继承便能为轻重变体新建发射器,但两者皆继承原始枪口火焰的基础功能和渲染器。

编译并烘焙改良

新版本中,用户可以使用两个全新的控制台命令在加载和烘焙操作中清空过期数据,避免对Niagara资源进行不必要的重编译:

  • fx.PreventSystemRecompile 将清空单个系统、以及其依赖的所有发射器的数据。
  • fx.PreventAllSystemRecompiles 将找到项目中的每个Niagara系统,并清空这些系统和其所依赖的发射器。

清空并重新保存受影响的资源后,加载和烘焙进程将更快,还可避免过期数据引起的潜在问题。

错误报告改良

脚本和发射器/系统编辑器中加入了全新的Niagara消息日志面板,显示上次编译的消息、警告和错误,便于用户导航至脚本图表中引起警告或错误的节点/引脚。

技术美术师和特效美术师可以充分利用此功能通过Niagara脚本编写新功能和行为;或将Niagara脚本合成到系统中,以便快速地在脚本编辑器中进行迭代。此外,这些消息将作为错误源的超链接,便于用户快速找到并解决脚本和系统中的问题。

静态切换

新版本中,Niagara支持静态切换节点放弃不影响图表最终输出的指令和参数,从而缩短编译时间并提升运行时性能。静态切换节点支持多项独有功能,例如值传播、元数据支持、参数剔除和编译器常量计算。

 

 

增加级联粒子系统已有的一些功能

此版本增加了级联粒子系统和Niagara之间的功能同等性。新版本中,Niagara也拥有以下级联粒子系统功能:

  • Sprite剪切(Sprite cutouts):美术师可以用此功能来为粒子创建小型边界形体(无需渲染整个四边形),从而降低过度绘制。
  • GPU排序(GPU sorting):用于在发射器中对透明对象进行正确排序。
  • 动画通知事件(AnimNotify events):用于在动画轨迹中创建粒子,并正确管理其生命周期。
  • 标准化启用/禁用(Standardized Activate/Deactivate):更易于将Niagara效果放入现有流程中。
  • 在蓝图中设置静态网格体和骨架网格体目标(Set Static Mesh and Skeletal Mesh targets in Blueprints):更易于将Niagara效果放入现有流程中。
  • 采样骨骼与插槽变换(Sampled Bone and Socket transforms):让使用骨架网格体的效果在低端/目标设备上运行。

新增内容:平台扩展

新版本中加入了平台扩展的概念,与插件性质类型。其将个体平台的所有代码封装到单一位置,与主引擎代码解耦。这改变了引擎和编译系统的一些基本工作方式,可能会对您产生影响,具体影响程度则视您对引擎的修改程度而定。请参见此指南了解平台扩展的更多详情。

新增内容:蒙皮权重描述

用户可以使用全新的蒙皮权重描述系统来覆盖保存在骨架网格体中的原始蒙皮权重,并改善特定平台上(动态角色部分因性能问题而被禁用)的视觉保真度。用户可以从骨架网格体编辑器导入一个描述,并需要提供包含不同蒙皮权重的FBX文件进行使用、描述的命名,以及LOD索引(可选)。可以使用全新的蓝图公开API来指定蒙皮网格体组件(或任意子类)的蒙皮权重描述。

如需了解详情,请查阅蒙皮权重描述文档。

新增内容:动画流送(实验性)

新版本中,为了改进内存的使用和管理,动画目前可支持被流送加载,这在播放长过场动画中的动画数据时尤其实用。

新版本中,动画压缩系统可以将动画压缩为文件块便于更好地流送;全新的动画流送管理器则负责管理内存中流送动画数据的加载和保存;而全新的UAnimStreamable资源则代表可以流送的动画。

新增内容:动态动画图表(实验性)

动态动画图表通过层来提供动画图表的子片段动态切换。而层是单独的图表,可以通过层节点插入动画图表。此功能便于多个用户进行合作,并能关闭不需要的功能节约内存。

层由 动画层接口 资源定义。此资源是功能受限的动画蓝图,类似于 蓝图接口。其定义着层的数量、命名、其所属的分组,以及其输入。

此外,子实例节点拥有使用UAnimInstance中的SetSubInstanceClassByTag来动态切换运行类的功能。新版本中,子实例节点可以公开来自子图表的多个输入姿势。

动画蓝图和子动画蓝图都需要实现动画层接口来创建层图表、并实例化层节点。

新增内容:开放声效控制(测试版)

开放声效控制(Open Sound Control)插件提供了OSC标准的原生实现。此实现提供了一个通用框架,通过UDP进行应用程序之间和机器通信之间的实时参数控制。

 

 

新增内容:波表合成插件

新版本中增加了一个单声道波表合成器,其利用虚幻引擎中的曲线编辑器来编写时域波表,使大量音效设计可通过gameplay参数来驱动。可通过C++和蓝图对表索引和所有其他参数进行控制。

新增内容:CSVToSVG工具(测试版)

CSVToSVG是一个全新的命令行工具,可以从.CSV文件构建向量影像图像文件(.SVG),帮助显示性能数据。工具负责处理来自任意数字统计数据的数据,支持平滑、预算线和堆叠图表。开发者可以借助此功能用虚幻引擎中包含的性能工具生成任意数据输出的图表、或来自用户自用工具的数据。

 

 

新增内容:Sequencer曲线编辑器改良(测试版)

新版本对Sequencer曲线编辑器进行了大幅改良,加入了大家翘首期盼的功能和延展性支持!美术师和开发者无需修改引擎代码便能添加新工具模式、新工具栏按钮和自定义数据过滤器(如平滑),对曲线编辑器进行扩展。此外,新版本中曲线编辑器可以单独停靠在Sequencer之外,还包含一个变换工具(包含缩放和关键帧调时工具)。

打开Sequencer或UMG(虚幻示意图形)动画并点击“曲线编辑器(Curve Editor)”按钮。全新的变换和调时工具由默认启动的插件提供。新版本中用户可以将曲线编辑器窗口停靠在任意位置并移除。Sequencer或编辑器关闭后位置将自动保存,重新打开Sequencer后则会恢复位置。

扩展曲线编辑器

用户无需修改引擎代码即可用插件对更新的曲线编辑器进行扩展。方法主要有三种:

  • 工具模式—— 工具模式是专属模式。用户可以首先将用户输入抓取到编辑器中,以便创建大量工具。有两种范例工具:FCurveEditorTransformTool和FCurveEditorRetimeTool。实现ICurveEditorToolExtension并用曲线编辑器模块注册扩展(请查阅FCurveEditorToolsModule::StartupModule()作为范例)即可新建自定义工具。
  • 工具栏按键——用户可以使用工具栏按键将新按钮插入曲线编辑器工具栏,这些按钮能以需要的任意方式操纵曲线编辑器。有一个实例实现聚焦数据的额外选项(而非只是默认的聚焦)。新建工具栏按钮的方法是实现ICurveEditorExtension并用曲线编辑器模块对其进行注册(参见FCurveEditorToolsModule::StartupModule()作为范例)。
  • 数据过滤器——数据过滤器可以创建新方法,将选中的曲线作为拥有用户指定设置的单项操作来进行操纵。引擎默认提供了3个数据过滤器,对用户当前的选择进行操作:
    • 烘焙(UCurveEditorBakeFilter)
    • 简化(UCurveEditorReduceFilter)
    • 平滑(UCurveEditorFFTFilter)

从UCurveEditorFilterBase派生类即可实现一个新过滤器。无需用模块进行注册。新实现将自动出现在 用户过滤器 会话中。被标记为“EditAnywhere”的任意UPROPERTY都将自动出现,以便用户在应用过滤器之前对其进行操纵。

显示模式

可以用全新刺激的方式来查看曲线啦!可以在曲线编辑器左侧的树状图中查看可视曲线,点击如下显示的“显示模式(View Mode)”按钮即可选择查看所选曲线的方式。有以下3种显示模式:

  • 绝对显示——显示分布在绝对空间中的所有曲线,这与大家所熟悉的旧有行为匹配。
  • 堆叠显示——标准化每条曲线,然后以非重叠的方式对其进行绘制。
  • 标准化显示——标准化每条曲线(和堆叠显示一样),但会以彼此堆叠方式进行绘制。

 

 

全新过滤器菜单

全新的过滤器菜单带完整的细节面板和大量设置,可以将各种过滤器应用到用户的选择。点击“应用”按钮后其仍然存在,便于用户在自己的设置上轻松迭代。在派生自UCurveEditorFilterBase的新类上实现一个函数即可在此对话中添加新选项。

多个帧选项

新版本中可以选择多个不同的帧选项。

  • 帧选择(无选择则为 所有帧)为内置,默认为 F
  • 播放光标上的帧(Frame on Playback Cursor)播放范围上的帧(Frame on Playback Range) 为新选项。它们是使用插件扩展工具栏的完美示例。
  • 旧版本中的 帧水平/帧垂直(Frame Horizontal/Frame Vertical) 选项已替换为 聚焦所有(Focus All),按下 ALT + SHIFT + RMB 即可单独放大每根轴。也可以按下 ALT + RMB 跟随“聚焦所有”来进行比例缩放。

 

 

调时工具

调时工具创建一个单维格子,便于用户调整键的时间。支持网格对齐、多选等功能!此工具由默认插件提供。

 

 

变换工具

变换工具支持对选择的键进行平移,并在X和Y轴上进行缩放(可用时)。按下ALT即可修改相反边缘到中央的定位点。

新增内容:Sequencer实用性改良

新版本增添了大量工作流和实用性改良:

  • 过滤和搜索轨迹——新版本中用户可以过滤和搜索轨迹和actor。
  • 拉伸/收缩帧——只要没有重复元素,用户就可以在新版本中添加或减少片段和关键帧之间的时间量。
  • 添加和编辑多任务——新版本中使用Shift或Ctrl键即可对多个任务进行群添加和编辑。
  • 在多个行上混合音频片段——用户在新版本中可以混合音频片段,实现交叉淡入淡出效果。此功能与变换片段的混合相似。
  • 恢复或保持骨架动画姿势的状态——此选项使用“完成时(When Finished)”属性在评估动画片段后将骨架网格体恢复为其绑定姿势,或保持上个动画片段的动画姿势。
  • UMG多绑定——此功能在4.23版本之前便已存在,而新版本中用户可以在现有绑定上添加多个控件绑定。这使得用户可以对一个控件设置动画,而让其他控件使用。

新增内容:数据有效性可延展性

数据有效性(Data Validation)插件已延展,支持基于C++、蓝图和Python的资源验证规则。这让使用蓝图或Python的技术美术师能够创建资源验证脚本,而不用请求C++实现。对开发者而言,默认引擎类现在可以通过验证路径。

新增内容:DebugCameraController改良

此版本中,我们为DebugCameraController增加了一些新功能:

  • 轨道——让用户可以围绕选定位置或选定actor的中央进行轨道运动,以便更透彻地查看资源。
  • 缓冲显示——概览,拥有选择缓冲全屏查看的选项,以便检查显卡缓冲的内容。
  • 显示模式循环——便于用户查看正在被处理的各种场景数据。

这些新功能增强了在PIE中使用调试摄像机控制器时的游戏内调试功能。可以查看显示模式和图像缓冲后,用户便能对游戏中不良场景结果进行诊断。

在控制台命令行上输入ToggleDebugCamera、或使用全新的分号热键即可在PIE中打开调试相机控制器。

新增内容:多用户编辑改良(测试版)

新版本中,多用户编辑已得到极大改良,更符合现实生活中的生产要求。

  • 用户界面变得更加简明,移除了不必要的对话,并将管理会话所需的全部信息和功能按钮都放到了一处。

(工具栏中的 多用户编辑 图标在新版本中默认为隐藏。可从 窗口 > 开发者工具 菜单中打开全新的 多用户编辑浏览器,或在“项目设置”对话中重新启用工具栏图标。请参阅多用户编辑参考。)

  • 所有会话参与者的交换系统可靠性都得到了极大提升。
  • 新版本中用户操作失误导致会话数据意外丢失的可能性已大大降低。在用户离开会话之前,会话拥有者将收到一则提示,确定是否保留在会话中进行的修改。服务器关闭时会自动将当前正在运行的所有活跃会话归档。之后如有必要,用户可以从档案中恢复数据。
  • 新版本改良了资源锁定系统,让多个用户能更轻松地同时使用一个资源。希望修改已被会话中其他用户锁定的资源时,用户将收到提示。此外,如果其他用户解开锁定,那么此用户将锁定该资源,直到下次保存为止。

欲知多用户编辑系统的更多详情,请参阅文档

新增内容:灾难复原(实验性)

全新加入的灾难复原系统增强了编辑器现有的自动保存系统,用户将更有信心恢复对项目内容进行的修改(即使在意外关闭时也同样如此)。

此系统将在用户工作时记录完成的编辑器,使用与多用户编辑系统相同的幕后交易系统。如果编辑器在未保存修改时关闭,下次打开项目时将显示一个列表,其中包含上次保存后用户进行的所有交易。可以恢复列出的所有修改,或恢复所选时间节点处进行的修改。

新增内容:拖放填充排列

新版本中,用户可以从内容浏览器中选择多个资源,并将其拖放到排列标头上来填充排列。选择希望设为与排列相同类型的资源,将其从内容浏览器中拖入排列标头。可用于保存资源的所有排列,并简化处理大型排列时的工作流。

请参阅排列控制页面了解详情。

新增内容:EditConditions元数据改良(测试版)

新版本中,用户可以使用UPROPERTY系统EditCondition元数据的新表达式解析器在细节面板中启用或禁用属性编辑。也包含列举和数值类型,因此程序员能以极低的开销编写相对复杂的表达式。

程序员编写出让用户进行编辑的类(例如特定属性仅在特定条件下有效的actor或组件)即可快速创建出更加直观的UI,而无需编写出拥有完整细节的自定义类。

新版本中,EditCondition元标签接受几乎任何有效C++表达式。举例而言,这是一个修改后有效的属性定义:

UPROPERTY(EditAnywhere, Category=EditCondition, meta=( EditCondition="IntegerEditCondition >= 5" ))

有效表达式的更多范例:

  • MyInteger > 5 && MyFloat <= 10
  • MyEnum == EnumType::B
  • MyBool == true || MyInteger == MyFloat + 5

新增内容:编辑器工具蓝图更新(测试版)

编辑器工具蓝图得到了更新,提升了编辑器的蓝图可延展性,让蓝图可延展性与Python和C++可延展性更加一致。新版本中编辑器工具插件可以实现比更旧版本中自动生成编辑器工具蓝图按钮更深入的UI自定义。

改良包括:

  • 父类可以是非控件的任意纯编辑器类。
  • 可以创建需要实例化函数调用的编辑器工具实例。
  • 新增将运行函数添加到任意编辑器工具蓝图或编辑器工具控件(其将在编辑器启动时运行)的功能。这将创建一个实例,并允许绑定到带状态的编辑器事件。

新增内容:隐藏不相关的节点

新版本中用户可以选择一个节点并使用“隐藏不相关项(Hide Unrelated)”功能来隐藏未连接到所选节点的所有其他节点,以便用户以更加清晰直接的方式对材质和蓝图进行调试与理解。

新增内容:地形样条改良

新版本中,用户可以使用 ALT + 鼠标左键拖动 来新建一个样条控制点和分段。这是对现有 CTRL + 左键点击 新增样条操作的一个补充。ALT + 鼠标左键拖动 的优点是拖动光标时可以看到新样条的外观。也可通过此操作来切分样条。

新增控制点的操作是选择一个现有的控制点,在需要放置新点的方向上 ALT + 鼠标左键拖动。分割现有样条的方法是在分段的任意一侧选择一个样条点,朝现有分段 ALT + 拖动鼠标左键 即可切分路径。

新增内容:编辑器性能改良

如果经常处理很大的场景,那么您应该会发现虚幻编辑器有极大的性能提升,让您用起来很顺手。执行以下和其他操作时的速度都得到了极大提升:同时选择/取消选择数百或数千个单独的actor;显示和隐藏包含数千个actor的层;使用为数千个其他actor父项的actor;加载包含数千个actor的关卡。

新增内容:材质编辑器更新

材质编辑器和材质实例编辑器工作流得到了改良。材质和材质实例的脚本编辑性得到了提升。

 

 

  • 新版本中材质编辑器拥有一个层级按钮,其可以显示一个菜单。这个菜单将显示所有子项,并能快速访问进行编辑。
  • 除材质和材质实例的父链外,材质实例编辑器的层级菜单还将显示所有直接子项。
  • 以下节点将被添加到材质脚本库,在编辑器工具控件、编辑器工具蓝图、Python和C++中使用。
    • 针对材质实例添加GetStaticSwitchParameterValue。
    • 针对材质添加GetMaterialDefaultScalarParameterValue、GetMaterialDefaultVectorParameterValue、GetMaterialDefaultTextureParameterValue、GetMaterialDefaultStaticSwitchParameterValue、HasMaterialUsage(确定材质是否拥有给定用法标签)、GetChildInstances、Get___ParameterNames(获取标量、向量、纹理或静态切换参数名的数组)、Get___ParameterSource(找到源资源、其为函数或材质、参数在何处定义。以及针对标量和向量的这些内容)
  • 在材质实例中将鼠标悬停在参数名上时,用户将看到参数定义处资源的命名。因此使用拥有多层嵌套函数的材质时将更为简便。

新增内容:UMG访问屏幕阅读器支持(实验性)

虚幻引擎新版本支持Windows或iOS VoiceOver的第三方屏幕阅读器,便于您确保游戏UI能够访问、且遵循CVAA标准。NVDA或JAWS之类的屏幕阅读器允许向用户口述软件应用程序的UI。对视力受损、不便使用和导航软件应用的用户来说,此功能十分重要。

从4.23版本开始,UE4中加入了API,允许使用第三方屏幕阅读器来阅读UI文本。其支持大量常用UMG控件,例如文本块、可编辑文本框、滑条、按钮和勾选框。这个内置功能无需实现自定义文字转语音功能,更易于支持屏幕阅读器。

启用屏幕阅读器支持的方法是打开项目或引擎控制台变量配置文件,并在其中添加变量Accessibility.Enable=1。

欲知详情,请参见支持屏幕阅读器

新增内容:Wacom绘图板支持(实验性)

新版本中,程序员在开发绘制插件或建模工具之类的插件时可以利用笔尖输入(例如笔尖下压或倾斜),其使用了一个新插件,它可以对Wacom式绘图板和绘制笔系统的额外输入进行访问。

并非所有绘图板都支持API支持的所有可能值。我们专门对子系统进行了编写,公开所有支持值的一个超集。由子系统的用户来确定对哪些值感兴趣。

这是一个实验性功能,虚幻引擎工具目前尚不支持。

新增内容:UMG控件比较

新版本扩展并改良了蓝图比较,支持控件蓝图、actor和动画蓝图。除显示对默认属性值(现包含控件和控件槽的默认属性)和蓝图图表的修改外,新工具还将显示对蓝图结构、增加属性和函数标签、类设置、父类和已增添组件的修改。

 

 

编写需要进行比较的自定义蓝图子类后,可以覆盖FindDiffs函数,这样便能列出需要显示的特定修改,并请求要比较的子对象。

新增内容:非破坏性地形编辑(实验性)

新版本中,用户可以通过非破坏性层来编辑地形高度图和绘制图层。可以在地形中添加多个层进行独立编辑。这些全新的层将作为地形刻画的基础,便于用户更高效地操纵和维护地形。

添加层后,可以锁定不需要修改的层,一次专门编辑一个层。可以隐藏其他层来聚焦于特定的层,或查看没有特定层时地形的效果。启用“层贡献(Layer Contribution)”后,此层将在视口中高亮显示,您将看到此层中的所有造型与绘制(包括您添加到层中的内容)。此外还有其他选项,例如对层进行排序、调整层的透明度混合。

新版本中,保留样条层即可将地形样条地貌变形和绘制变为非破坏性操作。这意味着可以非破坏性地编译、修改和移动样条,地形将沿着路径创建道路。

欲知更多信息,请参见非破坏性地形层和样条

新增内容:用植物工具放置交互actor

新版本中,除静态网格体之外,植物工具还可以用交互actor来填充场景。植物工具所放置actor的行为方式与静态网格体相同,用户刻画地貌时其将自动散开,或在对其进行绘制时移动静态网格体。

举例而言,在此视频中,散开的树是包含交互逻辑的蓝图actor与它们的静态网格体组件。之后地貌被修改时,这些树actor将自动更新,匹配地貌的新高度。

植物actor并不会被渲染为实例化网格体,因为渲染器会将其视为单独手动放入关卡的资源。

欲知更多详情,请参阅植物模式

新增内容:HDRI背景Actor

利用全新的HDRI背景actor可以轻松快捷地通过单一HDRI图像创建关卡的真实背景和光照环境。将actor放置到关卡中,并为其指定需要将图像投射到背景上的HDRI纹理。此时将自动设置天空光照,提供从图像绘制而来的环境光照、精确的反射,以及从关卡内容采集阴影投射的地面。

欲知工作流程详情和用于控制投射的所有设置,请参阅HDRI背景。

新增内容:指数高度雾的双高度雾

新版本改良了使用指数高度雾体积时对带雾密度、高度衰减和额外雾层高度偏差额外参数的雾气的控制。

1 - 无指数高度雾;2 - 指数高度雾;3 - 双指数高度雾

新增内容:动态阴影偏差改良

新版本增加了一些全新参数(可以使用控制台变量进行每个光源的设置、或对一种光源类型进行整体设置),改良了可移动光照的阴影偏差。除常量阴影偏差参数外,我们还添加了倾斜偏差参数来解决一些(但非全部)阴影瑕疵的问题。我们用阴影级联偏差分布为定向光源添加了额外的深度偏差参数,控制级联间的偏差强度。

1 - 应用倾斜偏差和阴影级联偏差分布之前;2 - 进行倾斜偏差和阴影级联偏差分布调整之后

有两部分需要考虑:倾斜偏差在阴影贴图渲染时使用,而接收者偏差在阴影贴图获取时使用。可以控制每个光源的倾斜偏差,与阴影(常量)偏差成比例。有了这两个参数(常量和倾斜偏差),便能在阴影质量和精确度(消除部分瑕疵)之间进行权衡。

使用r.Shadow.*下的控制台变量设置一个0(精确度更高但瑕疵更多)到1(精确度更低但瑕疵更少)之间的值,即可整体设置每种光源类型的接收者偏差。用户也可以使用控制台变量整体设置任意光源类型的常量和倾斜偏差。

新增内容:预蒙皮本地绑定材质表达式

新版本中增加了全新的材质表达式来返回骨架网格体的预蒙皮本地绑定。此表达式可用于计算材质中actor边界内的一个相对位置。因为这些边界不会发生变化(在动画中也是如此),所以能够以固定的方式来应用材质,例如应用到武器或载具的装饰图案。动画编辑器中,可在“网格体(Mesh)”类目下方的“角色(Character)”下拉菜单中显示所有网格体的预蒙皮边界。

新增内容:保存自定义逐基元数据

新版本支持以每个基元为基础保存数据,而不以每个材质实例为基础保存,以便自动考虑基元的动态实例绘制。

用材质中的使用自定义基元数据逐基元保存数据可以降低相似几何体需要的绘制调用数,即使每个基元都将拥有其自身的自定义数据也同样如此。

新增内容:基于材质表达式的着色模型

新版本利用全新的基于材质表达式的着色模型支持在单个材质中使用多个着色器模型!

 

 

仍然支持使用材质输出和材质属性节点的旧工作流;使用If语句、BlendMaterialAttributes、静态切换和材质实例的常用工作流也同样支持。

如果单个资源使用两个单独的材质、等于用于关卡中资源每个实例的两个绘制调用,便可以用此方法来优化和减少绘制调用数。使用带两个着色模型的单一材质可缩减为一个单一绘制调用。

欲知更多详情,请参见From Material Expression文档。

新增内容:IES描述文件改良

新版本对编辑器中IES描述文件和各种光源的使用进行了改良:

  • 含指定IES纹理的已选点光源和聚光源将提供光度数据的3D显示。
  • 对改良轴对称显示(不带瑕疵)的C类IES文件的支持更佳。
  • 内容浏览器中的IES纹理图标将提供光度数据的预览。

欲知更多详情,请参见IES光源描述文件

新增内容:渲染依赖性图表

渲染依赖性图表(RDG,或简称“渲染图表”)利用主流图像API,使用自动异步计算排程、以及更多高效内存与屏障管理来提升性能。

虚幻引擎的渲染器正在被积极地移至RDG,是为之后新功能制作渲染通道的主API。实现仍在早期开发阶段,现仍缺少诸多性能优势,但API的稳定性足以用于生产。

欲知更多信息,请参见渲染依赖性图表。

新增内容:Composure改良

此版本中,我们为Composure增添了一些额外选项:

  • AlphaHoldOut混合模式——这个新的材质混合模式使物体能够维持材质中的透明度,会在物体背后穿一个孔。
  • 颜色分级——新版本中Composure使用浮点后期处理查找表(LUT),支持颜色分级和白平衡。
  • Composure层从场景摄像机继承后期处理参数——新版本中Composure层可以从场景摄像机继承后期处理参数,以便为每个CG层选择性地单独启用颜色校正控制。

Launcher中“学习”选项卡下的Composure范例已更新,其将展示虚幻引擎中最新的合成工作流!

新增内容:Python导入/导出FBX

新版本中Python脚本编写支持FBX动画的导入和导出。

新增内容:专业视频编码解码器

新版本的虚幻引擎支持更多视频编码解码器,将虚幻引擎整合到专业视频生产流程中将更容易。

新版本中用户可以将专业媒体文件导出到Apple ProRes编码器

  • 支持编码解码器的所有格式:4444 XQ、4444、422 HQ、422、422 LT、422 Proxy
  • 支持多帧率和分辨率。
  • 支持内嵌时间码轨迹。
  • 无内嵌音频。音频将被混合并输出到一个单独的.wav文件。
  • 仅Windows平台支持。

欲知详情,请查阅新指南

[将专业媒体文件导出到Apple ProRes](Engine/MediaFramework/HowTo/ExportProMedial)

 

新版本中媒体框架可以播放以HAP编码解码器编码的文件。

  • 支持编码解码器的所有格式:HAP、HAP Alpha、HAP Q、HAP Q Alpha
  • 支持 1x 4K 60 FPS2x 4K 30 FPS 影片的播放,其可拉伸为 2x 4K 60 FPS 的影片。
  • 完整支持透明度通道。
  • 支持多帧率和分辨率。
  • 无内嵌音频或时间码支持。
  • 暂不支持8K和16K。

欲知详情,请参见媒体框架技术参考中的HAP编码解码器播放支持部分。

新增内容:立体全景采集工具改良(实验性)

利用更新的立体全景采集工具可以更轻松地以行业标准格式采集虚拟场景的高质量立体静帧和视频,并在Oculus或GearVR头戴设备中查看采集的这些内容。用户对渲染设置、位深度和质量拥有更大的控制权;也可以选择采集所需的图像缓冲,以便在其他应用程序中后期处理和合成图像。

新增内容:平台SDK更新

每个新版本的引擎都会更新,以支持平台合作伙伴的最新SDK版本。

 

 

  • Build farm进行编译的IDE版本
    • Visual Studio - Visual Studio 2017 v15.9.11工具链(14.16.27023)与Windows 10 SDK(10.0.16299.0)
      • 最低支持版本
        • Visual Studio 2017 v15.6
      • 需要NET 4.6.2 Targeting Pack
    • Xcode - Xcode 10.3
  • Android
    • Android NDK r14b (新的CodeWorks for Android 1r7u1安装程序将替换Windows和Mac上之前的CodeWorks;Linux将使用1r6u1及修改)
  • ARCore
    • 1.7
  • HTML5
    • Emscripten 1.38.31
  • Linux "SDK" (交叉工具链)
  • Oculus Runtime
    • 1.37
  • OpenXR
    • 1.0
  • Google Stadia
    • 1.34
  • Lumin
    • 0.19.0
  • Steam
    • 1.42
  • SteamVR
    • 1.5.17
  • Switch
    • SDK 8.3.0 + 可选NEX 4.6.3 (固件7.x.x-x.x)
    • 支持IDE:Visual Studio 2017、Visual Studio 2015
  • PS4
    • 6.508.001
    • 固件6.510.011
    • 支持IDE:Visual Studio 2017、Visual Studio 2015
  • XBoxOne
    • XDK: 2019年7月QFE-9
    • 固件版本:May 2019 10.0.18362.3055
    • 支持IDE:Visual Studio 2017
  • MacOS
    • SDK 10.14
  • iOS
    • SDK 12
  • tvOS
    • SDK 12

更新要点

编辑器

Matinee

  • 虚幻引擎4.23版本发布后,引擎将不再支持Matinee。其将从之后的版本中移除。功能移除完毕后,用户将无法再访问或打开Matinee文件。 请使用Matinee到Sequencer转换工具尽快将Matinee序列转换为Sequencer序列。

VR编辑器

  • 不再支持GDC2017上展示的VR网格体编辑器。网格体编辑器插件将从之后的版本中移除。

平台

HTML5

  • HTML5平台支持将被迁移至GitHub作为社区支持的平台扩展。Epic将不会在未来版本中提供官方支持。

iOS

  • iOS 10支持已被移除。最低支持版本已改为iOS 11。
  • iOS上的OpenGL将在未来的版本中被移除,此改动最早可能发生于4.24。OpenGL被移除后,Metal将是今后iOS设备唯一受支持的渲染路径。

打造虚幻世界

需要最强大的创世引擎

立即开始