UNREAL ENGINE 4.11 正式发布!

发表于2016-04-16
评论1 2.2k浏览


  这个版本为虚幻引擎 4 带来了几百个更新,包括了 92 个来自 GitHub 社区中的虚幻引擎开发者的提交改进!感谢这些为虚幻引擎 4.11 做出贡献的开发人员:
  Anton Olkhovik (Sektor), Alessandro Osima (AlessandroOsima), Alexandru Pan? (alexpana), Andreas Axelsson (judgeaxl), Andreas Schultes (andreasschultes), Artem (umerov1999), Artem V. Navrotskiy (bozaro), Ben Reeves (BGR360), bensch128, Black Phoenix (PhoenixBlack), Brandon Wamboldt (brandonwamboldt), Cameron Angus (kamrann), Christoph Becher (chbecher) ,Clay Chai (chaiyuntian), Dan Ogles (dogles), David Baack (davidbaack), Eli Tayrien (ETayrienHBO), Eren Pinaz (erenpinaz), G4m4, Hannah Gamiel (hgamiel), Hevedy (Hevedy), Hyeon-Cheol Cho (crocuis), Igor Karatayev (yatagarsu25), Jason (Abatron), Jefferson Pinheiro (Ixiguis), kallehamalainen, Kiqras, Konstantin Nosov (gildor2), Leon Rosengarten (lion03), Manny (Manny-MADE), Marat Radchenko (slonopotamus), Markus Breyer (pluranium), marynate, Matthias Huerbe (MatzeOGH), Maxim (maxpestun), Moritz Wundke (moritz-wundke), Mustafa TOP (MSTF), Nikos Tsatsalmas (ntk4), Pablo Zurita (pzurita), Pavel Dudrenov (dudrenov), Peter Oost (Sirrah), Piotr B?k (Pierdek), projectgheist, Rama (EverNewJoy), Rene Rivera (grafikrobot), Rob Ray (robdeadtech), Robert Khalikov (nbjk667), sackyhack, sankasan, Sébastien Rombauts (SRombauts), Simon Taylor (simontaylor81), Skylonxe, Spencer Brown (JedTheKrampus), Tam Armstrong (tamarmstrong), Thomas Mayer (tommybear), Thomas McVay (ThomasMcVay), unktomi, Verdoso, ZehM4tt.

一、新的功能
  这个版本有很多新功能,以及大量性能优化。在我们为自己下一款游戏 Paragon 做准备的时候,性能是一个很重要的关注点。4.11 中还有一些为了更真实的画面而做的新的渲染特性以及动画特性,还有声音功能和工具的改进。虚幻 4 还继续在 VR 方面进一步推进,改进 VR 的渲染过程,支持各家最新的 SDK,这样大家能够在那些 VR 硬件正式开售后直接发布游戏产品。

(一)、主要功能
1、性能和多线程
  我们最近这几个月来,很多努力都是在为新游戏 Paragon 而优化虚幻 4,目标是在 PC 和 PlayStation 4 上能够以每秒 60 帧运行。
  对于 Paragon,我们团队面临一组特殊的问题。在 Paragon 中,同时又 10 个英雄角色和 120 多个普通小兵,大量的特效,并且还有一个漂亮的、具有大量细节的关卡场景,并带有长距离的可视区域,以及在此基础上的每秒 60 帧的要求。Paragon 将引擎的性能推到了极致,尤其在动画和渲染这两个方面。


  为 Paragon,在引擎各个地方数以千计的微小优化,最终获得了性能上的较大提升,这些改进应该对其他使用 UE4 的游戏产品都会产生好处。很多优化已经整合在 4.11 中,并在将来的版本中还会整合更多这些优化。以下就是这些优化中的一部分。
  并行。在多核上的延展能力对于在现在的 PC 和主机上获得高性能的表现非常重要,我们通过多种手段来改进我们的 线程架构。减少了新建任务的开销,为高优先级任务提供支持,并移除了很多同步点来提升性能。
  渲染性能。渲染器现在在平衡它的工作任务的数量和 GPU 产生的命令缓冲之间做的更好,这样能避免在 GPU 上增加过度压力并获得最大的并行。我们还在渲染器中移除了一些同步点来更好的利用所有可用的硬件核心。
  布料模拟 现在非常快,更好的利用了多线程的能力。我们现在在工作线程中直接调用 APEX 的 Solver。这么做能够得到更好的计划调度,消灭很多同步点的情况,并减少过度开销。布料计算现在在动画的更新后立即被更新(此处并不需要混合),而不再是等骨骼网格组建的更新后再更新。
  更快的垃圾回收。我们现在支持对“族”的垃圾回收,这里引擎会将一组对象看作单个单位,大量减少了需要参与计算的对象数量。现在,只有材质的自对象,以及粒子系统才被“族化”。另外,现在标记和删除对象的过程更加具有面向缓存一致性,于是得到 9 倍的时间上的性能优化,并在可达性分析上内存搅动也大量减少。
  多线程动画。动画图表现在能够在工作线程上更新,这样做能使的多核上更多的角色动画能得以运算。在更新日志中可以看到,我们修改了很多动画相关的 API,对于动画图表中哪些部分可以被运行于工作线程上也有限制。
  动画变量的即时访问。在动画图表更新时,我们增加了一个对变量访问的“快速通道”。这能从图表内部简单的直接拷贝参数,而无需执行蓝图脚本。编译器将会优化一下部分:成员变量,当前为否的布尔成员变量,以及结构内的成员变量。
  附加动画“烘培”。现在我们有个选项来打开 烘培附加动画。这么做能够让 附加动画 性能大约提升 3 倍。这个选项会涉及到在 cook 阶段就计算附加动画的差异数据,而不是在运行时。这么做不仅节省了在运行时对这些差异数据进行计算的性能开销,还节省了内存读写访问的开销,以及对动画解压造成的分配开销。这个功能将会增加 cook 的时长,并需要手动设置一个 cvar “a.UseBakedAdditiveAnimations” 为 1 来启用该功能。将来引擎的版本将会对动画 cook 做进一步的改进并默认就开启这个功能。
2、更新:真实的头发着色
  根据电影行业的最新研究,我们为真实的头发显示新增了基于物理的着色模型。


  此模型由两个高光区块,以及透射和散射。要使用这个功能,只需要在材质编辑器中着色模型的列表中选择 Hair 即可。
3、更新:真实的眼睛着色
  通过使用虚幻引擎新的基于物理的着色模型,现在大家可以为你们的角色赋予 高度真实的眼睛。


  这个着色模型模拟了通过巩膜的子表面散射,虹膜上的焦散以及湿层处的高光。应用于眼球模型和眼睛材质的结合处,并配合眼角膜处的散射和角膜边缘的色彩变暗,并处理了瞳孔的放大效果。
4、更新:改进的皮肤着色
  我们为真实的皮肤效果改进了子表面散射着色模型的质量和性能。


  新的着色模型仅运行在一般的分辨率上,花费更少的 GPU 内存。散射本身是和分辨率无关的,在物体边缘也不再有色彩偏移。通过将颜色和高光独立的存放在一个棋盘模式,而不是打包在单一像素的做法后,贴图和光照细节都得以更好的保留。
5、更新:真实的布料着色
  我们也 为布料增加了基于物理的着色模型。这里使用一个模糊层来模拟布料效果,我们得到了一个从未获得过的真实结果。要用的话只需要在材质编辑器中选择布料着色模型。


6、更新:胶囊体的阴影
  虚幻引擎现在支持 非常柔滑的间接阴影,由代表角色的胶囊体来进行投影。


  通常,在受间接光照是,并不会产生阴影,除非是屏幕空间环境遮罩。间接投影需要做的非常柔滑,因为间接光照是来自很多不同的方向,因此,传统的阴影贴图做法的效果并不好。间接阴影的方向和柔度来自预先摆放的光照样本区域,并有 Lightmass 在构建光照时预先计算。
  在游戏中,胶囊体的间接阴影将角色投影到地面上。


  也可以用这些胶囊体来做直接阴影。灯光的来源半径或者来源角度将会决定阴影的柔度。这可以用来在一个有效的预烘培光照环境中获得非常柔软的角色阴影效果,在以前这点是做不到的。


  这个胶囊阴影的实现非常高效,它在一半的分辨率下计算阴影,带有深度信息的向上取样,使用屏幕裁剪来限制只在需要的地方才对阴影进行计算。
  GPU 的消耗则和胶囊体的数量以及收到该阴影影响的像素数量成正比关系。
  如何启用胶囊体阴影
a、仅用 Sphyl bodies(胶囊体) 来创建新的 Physics Asset。用球体也行,但会不够灵活。胶囊体应该覆盖到关节位置。脚部的胶囊体最需要细条,因为这会影响到角色看起来是否恰当的贴在地面上。通常手臂上并不需要,除非游戏中经常会躲到掩体后,或者在地上爬行。
b、将该 Physics Asset 设置为骨骼网格模型的 Shadow Physics Asset。
c、最后,在骨骼网格组件上启用胶囊体间接阴影选项。
7、更新:粒子的景深效果
  新的材质函数能够使得微小且对相机处在失焦位置的粒子能够扩大,针对不透明粒子特效获得具有景深的渲染效果。


  左图显示了一个简单的场景,在地面上有很多粒子。右图启用了圆形景深功能,通过新的材质函数将失焦的粒子渲染的像其他一些几何体一样。由于它们并不会受到其他的干扰,这个效果甚至更纯粹。我们总是对这些失焦粒子扩大超过一个像素,来避免它变得太过闪亮。
  这个特性需要对例子材质进行一个修改:


8、更新:不透明遮罩抖动
  现在可以使用抖动的不透明遮罩,使用不透明材质来模拟半透明表面效果。


  在材质编辑器中“不透明遮罩抖动”的选项,能够在 Temporal AA 启动的情况下产生一个独立的透明随机形态。这里利用了 TAA 将前景物体和后面的物体在几帧的时间跨度上混合的特性。这也是的半透明物体能够使用我们的延迟着色特性,并且只在一些干扰上才有性能消耗。

9、更新:LOD 过渡渐变
  通过使用一个动画抖动模式,静态网格体现在能够在 细节层级之间平滑过渡。


  注意:这个功能需要在材质上通过开关项才能启用,会带来一些性能开销。

10、更新:对分层 LOD 的改进
  这个版本对分层细节等级系统(HLOD)带来了重要改进。HLOD 能自动的对大量细节模型在远距离做较少数量的模型替换。这样做能在视角拉近时得到非常高的场景质量,而在视角远离时获得非常好的性能表现。


  Paragon 的 Agora —— 256 万个三角面,5690 次 DrawCall(已经从 390 万三角面和 7060 次 DrawCall 优化下来)
  为了从 HLOD 中获得更大收益,这里需要 Simplygon SDK(需要 Simplygon 授权) 的支持。在为多个物件生成一个较少多边形的代替模型时需要用到 Simplygon。如果没有的话,系统只能退回原来的做法,对使用不同材质的部分合并进一次 DrawCall。
  请去看一下新的 HLOD 大纲功能,那里有一些新的选项,来支持管卡中的 HLOD 设置。
11、更新:VR 即时立体渲染
  即时立体渲染是一个优化,能够让引擎更有效率的为 VR 设备渲染具有立体感的画面。
  以前的做法中,引擎渲染立体画面时,先为左眼渲染所有的东西,然后再渲染右眼画面。在即时立体渲染的特性下,我们为双眼的画面同时进行渲染运算,这么做能大量降低 CPU 的开销,并改进 GPU 的利用率。这里是这两种方式的对比参考:


  以 Bullet Train 项目作为测试内容,我们获得了 14% 的 CPU 运算提升,以及 7% 的 GPU 改善。这里无需任何新的工作配合。不过仍要注意,虽然大部分渲染特性能够在即时立体化中正确的工作,但仍然有一些尚不支持(比如 DFAO)。
  要为项目启用该特性的话,在编辑器的项目设置对话框中,勾选“即时立体化”选项。


12、更新:动画动力学(角色的快速物理模拟)
  动画动力学是在可以在动画蓝图中使用的一个全新的完整独立的简单物理模拟节点,能在过程中为骨骼网格体增加动态表现,而无需使用完整的物理解决方案。


  这里是对动画动力学的主要功能介绍:
 · 简化 Rigid Body 模拟
 · 在动画评估阶段运行
 · 在组件空间运行以响应动画数据
 · 快速模拟时不进行碰撞计算
 · 惯性特性计算仅支持方盒形状
 · Rigid body 约束
 · 角 —— 约束在两个轴的平面,第三个轴被锁定。Rigid Body 可以在两个轴向根据给定的角度自由旋转。和棱镜或和平面约束协同工作。
 · 锥形 —— 一个自由的旋转约束,能够保持 Rigid Body 在其特定约束角度内。和棱镜或和平面约束协同工作,但如果选择时会替代角。
 · 棱镜 —— 一种三轴线性约束,能在一定范围内眼三个主要轴向移动。
 · 平面 —— 平面约束是一组无线延伸的平面,限制 Rigid Body 无法跨越。这可以用来为悬挂的物体作为地面,或者避免一个物体和角色穿插。每个平面要么是放置于世界坐标系下,或者可以有角色的一个骨骼位置数据来定义。
 · 锁链
 · 每个节点可以代表一个动态节点,或者一段持续并具有同样约束属性的锁链。在模拟大量节点连接后将能呈现更真实的行为。
 · 对于单个节点,我们仅将“力”向下传递,并不反向回传 —— 而在锁链模式下我们会在两个方向上传递“力”以获取更好的效果。
 · 弹簧
 · 线性以及角化的弹簧特性能用于获得更好的弹跳效果。弹簧可以单独配置,并配置不同的弹簧常量。
 · 风力
 · 影响 APEX 布料的对象同样可以影响动画动力学。并且这可以在每个节点上单独开关,并设置影响程度,以获得完美的对风的反馈表现。
 · 适配子步进
 · 模拟能够运行在一个普通的 Tick 设置下,也可以用一个适配子步进来运行模拟。
 · 该模拟能够逐节点进行配置 —— 如果有一处需要更多的迭代计算,那么可以为它按需配置,而不会影响其他模拟计算。
 · 在这个模式下,我们从游戏实际运行的时间中分离出游戏 Tick 的时间单独记录,如果发现计算开始变慢的时候,我们开始控制时间开销,分多次来运行模拟。这种封顶的方式将会阻止螺旋上升式的模拟运算消耗,也能对复杂模拟情形下增加稳定性。
 · 可视化
  · 在节点上有选项能够在选中时将一些属性可视化,可视化的属性包括:
   · 角度限制
   · 棱柱限制
   · 平面限制
   · 平面排除方式(类似于球形的碰撞并附带平面限制)
13、更新:游戏中的实时动画录制
  现在可以在实时游戏过程中录制一个骨骼模型的动画,并将它保存为动画序列的资源。


  这个资源可以用于在引擎中继续制作游戏内容,也可以导出成 FBX 并在其他第三方工具中使用。这能在任何当前激活的游戏场景中得以使用,或者在实时转播中,或者在观看录像中。
  如何使用这一功能:
 · 要录制动画,打开命令行,输入:RecordAnimation [新资源的路径]
 · 要停止录制,输入:StopRecordingAnimation
 · 如果没有输入路径,或者输入了无效路径,会得到一个弹窗提示。可以使用世界大纲视图列表去查找感兴趣的对象(鼠标悬浮在对象上便能查看它的“ID Name”)。
14、更新:更高质量的景深效果
  现在可以通过增加景深的采样数(Circle DoF)来提高质量,降低噪点。但会带来一些性能消耗。


15、更新:平台和 SDK 的更新
  除了惯例的更新以外,我们更新了所有主流 VR 平台,使用它们最新的 SDK 以为接下来在它们的平台上发行产品做好准备。在这些更新后,取得了一个扎实稳定并且是面向最终效果的版本,因此任何基于 4.11 的 UE4 产品都已经是“为 VR 发行而准备好了”。


  这次版本中主要的平台有:
 · Oculus Rift 1.3.0 SDK 很快会整合到虚幻引擎的 4.11.1 中。(4.11.0 中现在是 Oculus Rift SDK 0.8.0)。
 ·  Oculus Mobile SDK 1.01
 · Playstation VR SDK 3
 · SteamVR 0.9.12
 · PS4 SDK 3.008.201 (w/ PSVR)
 · Xbox One XDK November QFE 1
 · HTML5 SDK (Emscripten) 1.35.0
 · Linux Clang 3.7.0
 · Apple tvOS 9.0 support (GitHub only)
16、更新:为 DIRECTX 12 的改善


  我们已经在虚幻引擎 4 中整合了 DirectX 12 的更新,在生成平行渲染指令时更好的利用 CPU 能力,并增加了改进,诸如支持多个 Root 签名,默认支持异步管道状态磁盘缓存,减少内存消耗并解决内存泄漏,资源转移是的优化,更快的内存分配,以及通过在 GPU 空闲时间填充内容避免 GPU 空转。
(二)、为 XBOX ONE 准备的 DIRECTX 12
  微软的工程师已经在 Xbox One 上添加了 DirectX 12 的前期功能支持!
  要启用这个需要一些步骤:
 · 在 BaseEngine.ini 的 XboxOneRuntimeSettings 区块下中将 bBuildForD3D12 设置为 true
 · 在 XboxOneShaderCompiler.cpp 将 D3D12_ROOT_SIGNATURE 设置为 1
 · 在 PostProcessSelectionOutline.usf 内注释掉 GetSamplePosition (XboxOne 上尚不支持)
 · 重新生成并开启!
  由于这还是一个实验性的功能,可能会有渲染问题以及稳定性问题。
1、更新:在 MAC OSX 上 METAL 渲染
  Metal 现在在 Mac OS X El Capitan 上已经是默认的图形 API 了!


  Epic 和 Apple,AMD,Nvidia 以及 Intel 进米合作,在 Mac 上整合 Metal。在 4.11 中,它已经代替了原先的 OpenGL 成为 OS X El Capitan 的主要图形接口。4.11 中为 Metal 和 OpenGL 提供了同样的功能。Metal 则提供了流化,低开销的 API 支持,协同预编译的着色器和高效的多线程支持,能够最大化 GPU 的处理能力。我们将会继续改进并增加对 Mac Metal 的支持,并在以后的版本中添加新的 API 特性。
  还有一个对 Metal 的实验性功能是支持 Shader Model 5 的特性,可以通过使用命令行开关 "-metalsm5" 来试一下。
2、更新:更快的光照构建(支持 INTEL EMBREE)
  我们整合了 Intel 的 Embree ray tracing 库到 Lightmass 中,并极大的改进了光照构建。
  光照构建的时间主要用来计算跟踪光线并得出光线是如何反弹的。使用 Embree 后,在一次测试中,间接光照质量设置为 4,“Sun Temple”关卡的光照构建时间快了 2.4 倍(从 45 秒下降到 18 秒)。最后效果视觉表现是一致的,
3、更新:LIGHTMASS 通道
  通过设置通道对象,天光在室内的质量现在得到了很大的改进。


  这些通道告诉 Lightmass 从哪里获取光照来源,这里并不会产生新的光源。使用通道对象的最佳做法是用来覆盖小的空间,并对最终的光照效果很重要。这里妥协了更高的光照和阴影质量,因为 Lightmass 更专注在进入光源的光线上。(下图左边是没有通道对象,右边是有通道对象)


  其他一些对 Lightmass 质量的改进:
 · 对点光源、方向光源修复了一些光照泄漏的问题,以及场景静态光照的小改动。
 · 天光的间接光照也做了改进
4、更新:通过从 MESH 来复制动画姿势
  我们添加了一个新的动画节点,能够在动画图表内的骨骼网格组件之间复制姿势。这是对 Master Pose Component 的一个改进版本,现在可以将原动画和新动画进行混合。


  在上面的例子中,Gauntlet 就在它的动画蓝图中使用这个 Copy Mesh Pose 节点,从一个源模型中拷贝了手和手臂的姿势数据,同时 Gauntlet 的 Spikes 动画在独立计算。


  这里的 Source Mesh 就是作为要复制的另一个模型组件。这里只会拷贝骨骼名字匹配的内容。一旦从这个节点中拷贝获得数据后,就可以用它和其他动画做混合操作。
  作为源模型,它的动画总是优先于目标模型,在目标模型依附于源模型时这是自然发生的,关节名称也要匹配。同时还要注意骨骼位置拷贝优先于物理模拟计算,这意味着如果源模型是模拟计算的则不会工作,当然如果目标模型在物理计算后拷贝则没有问题。
5、更新:LOD 骨骼简化工具
  现在能够从一个骨骼网格体的 LOD 中移除骨骼。骨骼结构权重将会自动更新!这是一个优化游戏非常简单的方法。


  在骨骼书上右键菜单中,使用 “Remove Children” 选项,来对指定 LOD 禁用某些骨骼。


  先前,这里是和模型简化工具在一起。现在可以简单的观察 LOD 并直接修改骨骼,选中不想要的骨骼并删除,如果想做的话还可以包含他的子骨骼。并还能够控制是仅在这个 LOD 中移除还是在所有 LOD 中移除。
  一旦移除骨骼后,它们将会变成灰色,以表明当前 LOD 下它们不再参与计算。在 Persona 界面中的 LOD 预览画面也同时会显示灰色的骨骼名称。
  最后,在骨骼树工具的下拉框中还有一个新的 “LOD 骨骼” 显示选项来过滤查看哪些骨骼可见。


6、更新:粒子剪裁(更快的 FLIPBOOK 粒子渲染)
  粒子剪裁能够让 flipbook 的粒子特效渲染提升三倍!
  使用 flipbook 动画的粒子(子 UV 动画模块)通常会有很多浪费的区块,而那些区块的像素着色器仍然在执行,但最终的不透明度是 0.举个例子,下面这个贴图中很多都是不必要的半透像素。


  我们现在能渲染粒子时用更加紧凑的边界形状,裁剪掉那些不可见区域,而不是不管当前播放哪一帧都使用完整的一个四边形。


(三)、设置
  默认设置下引擎并不会使用粒子裁剪功能,因为材质编辑过程允许对粒子的不透明性做任意逻辑修改,甚至这种改动可能来自另一个贴图。美术人员必须主动的来设置使用粒子裁剪功能。
 · 用一个贴图创建一个新的子 UV 动画素材(在内容管理器中右键)


 · 打开这个子 UV 动画资源,确认 Sub Images 的属性设置正确。这个步骤每个 flipbook 贴图都需要做一遍。


 · 在级联编辑器中,找到 SubUV 模块并设置动画素材。


(四)、性能结果


  在着色器复杂度湿度下显示,使用粒子裁剪后绘制区域减少了很多,同样一个粒子在使用裁剪后 GPU 性能提升 2~3 倍。
1、更新:基于顶点的半透明光照
  照亮半透明效果现在通过使用新的基于顶点的半透明光照,能渲染的更快!


  现在在材质编辑器中有两种半透明光照模型,都是基于顶点计算光照的。


  基于顶点的光照模式只是用着色器指令的一半,并使用贴图查找。
  "Volumetric PerVertex NonDirectional" 这一设置非常的快速 —— 几乎和无光照材质一样快!
  我们建议尽可能多的使用顶点半透明光照材质,一个例外是对具有较大的三角面模型来说避免使用,因为光照会在每个三角形之内插值。
2、更新:光照通道
  光照通道能够使得动态光源仅在通道重叠时才对物品进行光照影响。我们现在支持 3 个光照通道。


  可以为一个模型组件,或者一个灯光组件设置它的通道。


  这个功能对过场动画十分有用!举个例子,如果希望要一个光源照亮角色,但又不希望它影响周边的环境。
  光照通道的影响是动态应用的 —— 这就是说,静态光源无法使用。只能用于固定光源和动态光源。同时,光照通道仅对不透明表面的直接光照产生效果。
  光照通道仅在用的时候,基于灯光的数量,需要 GPU 上一点开销。
3、更新:立体声空间感
  现在在 PC、XboxOne 和 PS4 平台上可以使用 3D 空间化 的立体声资源。立体声空间化最终就是在空间上为每个源单独单独输出(比如左右声道),正如每个是单声道一般。左右声道的音源位置由声音发生器的位置决定,并由 3D Stereo Spread 属性设置,这是在 Sound Attenuation Setting 内的一个新的参数。


  该 3D Stereo Spread 参数用游戏中长度单位定义了左右声道的距离,并垂直于面向听众的发射器的向量。这意味着立体声双通道的参数是在世界坐标系下的,并且当远离听者时会自然的回落到一个单声道音源上。


4、更新:声音焦点
  声音的衰减设置现在支持 声音焦点 了,这一新特性使得音效设计人员能够使用参数控制声音在各个方向上对听者产生的效果。
  下图说明了这种方向设置:


  音效设计人员能够定义方向角度,判断声音是在焦内还是焦外。其中的相对位置则是由方位角插值而来。这组新的设置在 Sound Attenuation Setting 的结构下。


  焦值和非焦值用来在三个方面修改声音:距离缩放,体积缩放,和优先级缩放。距离缩放用来创建一个 boom-mic 或 zoom-mic 的效果,通过控制声音在焦内和焦外的距离来缩放来获得效果。体积缩放可以基于可见性为声音添加另一个衰减效果。优先级缩放是用来减少(或强化)声音相干性的优先级。
5、更新:声音遮蔽
  虚幻 4 现在支持简单的基于 raycast 的声音遮蔽。要对一个声音使用遮蔽计算的话,需要先在 Sound Attenuation Setting 中按下图设置:


  如果对一个声音对象启用了遮蔽功能,该对象会对碰撞体执行 raycasts 来判断该声音是否需要被遮蔽。如果判断为需要遮蔽时,会为它应用一个低通过率频率数值以及一个衰减体积。由于遮蔽系统是一个二元 raycasts 计算(遮蔽,或者不遮蔽),还会在遮蔽和不遮蔽的状态切换过程增加一个插值时间来过渡效果。还有一个选项用来控制是否要考虑复杂几何体的碰撞。
6、更新:声音的干涉
  新的干涉系统将声音的干涉数据从声音实例中移除,并将它作为单独的资源存放。现在可以创建新资源时,在菜单中选择 “Sound Concurrency” 类型。
  另外,在先前的 Max Count 和 Resolution Rule 外,新的声音干涉对象增加了其他和干涉相关的花哨功能,在下面进行描述。
 · 对拥有者的限制
  这个选项用于表示任何用这种干涉来播放的声音都应该它自有的干涉计数。如果一个声音没有 owner(比如并不是由一个 Actor 播放,或者并不是通过 Audio Component 播放),那么则会按照该选项未选中的设置计算。这里的目的是希望支持基于每个对象的干涉数量限制。
 · 体积缩放
  这个功能将声音分组进行管理。当多个声音在同一个干涉组中同时播放的话,越早播放的将会变得越轻。在这个功能下声音音量的缩放公式是:
VolumeScale = VolumeScaleSettingNewerSoundCount
  这里 VolumeScaleSetting 是由用户设置的数值,NewerSoundCount 是在干涉组中当前播放的声音中晚于这条的条目数。比如,如果声音 A,B 和 C 在同一个干涉组中,在 VolumeScaleSetting 设置为 0.9 的状态下播放时,会被调整为:
  A's VolumeScale = (0.9)2 = 0.81
  B's VolumeScale = (0.9)1 = 0.9
  C's VolumeScale = (0.9)0 = 1.0
  换句话说,最近播放的声音不会被影响,每个旧的声音会被指数衰减,有效的形成了在组内声音条目自动退让的机制。
 · 新的解析规则:停止优先级最低的,停止最安静的
  新的干涉物体也引入了两个新的干涉解析规则:停止优先级最低的,停止最安静的。
  停止优先级最低的规则适用 USoundBase 对象(SoundCue,SoundWave 等)上的优先级数值。一旦干涉组达到了限制,系统将会在组内遍历所有激活的声音,并停止优先级最低的一个(或者如果要播放一个新声音的话,新声音优先级最低则不播放)。
  停止最安静的规则正如所说,取代基于距离的规则(通常和体积相关),这条规则将会在组达到上限时停止最安静的一个,或者要播放新的声音时判断该声音为最安静则不播放。安静程度由声音在各个阶段计算后有最小的体积缩放值相乘得到。
 · 将声音干涉对象应用于声音对象
  要使用声音干涉对象,可以直接在声音或声音对象上指定它,和声音衰减设置对象的做法一样。下图中是一个 Sound Wave 资源的 细节面板。


  高亮处就可以通过下拉框来选定要引用的声音干涉对象资源。
 · 覆盖声音干涉
  为了向前兼容性,也为了有人更喜欢旧的系统表现,可以选择使用资源的本地数据来覆盖干涉设置对象。在这个情况下,声音资源变成他自己的干涉组,便能实现原先的效果。旧的项目在转换成 4.11 后将会对已有的资源采取使用这种方式保存。
7、更新:基于标记的动画同步


  动画现在能够根据动画数据中的标记来完成同步。在以前的版本中,唯一同步两个动画的方式是基于时间。现在可以在数据上点击右键并添加一个通知,选择添加通知 -> 添加同步标记。
  在初始的版本中这个功能如下描述:
 · 只有在同一个 SyncGroup 中的动画才会同步。有领头的驱动跟随的。
 · 无法调节播放速率。播放速率为主动画的速率。
 · 只有组内通用的标记才会被同步。比如,一个动画如果没有 “Right Foot Down” 的标记,那么其他动画上的这个标记也会被同步计算所忽略。
 · 位置同步是基于领头的相对位置。比如,如果领头动画距离他的 Left 和 Right Foot 标记还有 25% 的距离,那么其他动画也会同步到距离它们各自这标记 25% 的位置。
 · 当动画在一个同步组中有足够的匹配标记时,基于标记的同步会自动启用。否则则是原有的缩放长度同步的方式。
 · 蒙太奇也支持基于标记的同步,因此可以无缝的转换会其他动画。可以在蒙太奇中看到同步组的设置。
8、更新:动画蒙太奇的曲线混合
  蒙太奇 现在能支持曲线的混合。混合的 In 和 Out 用于控制播放时混合的形态。要注意这里如果有额外的蒙太奇在播放,它的 Blend In 设置将会被使用。


9、更新:HLOD 大纲视图
  新的 HLOD 大纲视图能够可视化的组合模型并对 HLOD 的设置编辑修改。


(五)、材质生成
  材质的合并过程现在能够支持更多的材质属性,比如基于顶点的颜色,顶点位置和顶点法线。这意味着该技术比如世界空间贴图,雪地效果和表面法线,以及使用顶点颜色遮罩材质层现在都能在 HLOD 上正确工作。
  仍然有一些特性并不支持,比如像素法线,世界坐标到切线转换。在 HLOD 遇到这种情况,或者其他尚不支持的情况是,应该使用另一种材质或者简化材质。这个 Material Proxy Replace 节点可以派上用处。它的功能和 Lightmass Replace 很像。实时的输入用于实时状态,Material Proxy 的输入仅用于生成过程。
  材质合并过程的设置现在可以在 HLOD 的大纲视图面板中找到,还有一个世界设置面板。

(六、)代理模型生成
  代理模型生成过程已经被精简了,并整合了最新的 Simplygon SDK,可以在 HLOD 的大纲视图中找到模型生成过程的设置。
  其他改进:
 · HLOD 现在支持 Spline 类型的模型。
 · 代理模型/族进在可见的关卡(或子关卡)上显示、生成并构建。
 · 自发光颜色现在能够被材质合并过程支持。
 · 不透光材质的静态网格体现在能够被材质合并过程支持。
1、更新:复杂文本渲染(实验性)
  我们正在为 Slate 添加对从右向左的文字和双向文字的支持,包括支持复杂形状的文字(比如阿拉伯文)。


  这个功能仍然处于非常早期。虽然很多地方还比较简陋,但我们鼓励大家尝试一下并给我们反馈。
  已知问题:
 · 单行可编辑文本区块目前不支持复杂文字(只有多行输入框和静态简单/富文本框支持)
 · 目前没有对 Text Actor 和 Canvas 的支持。
 · 复杂文字的渲染目前只能在 Windows,Mac 和 PS4 的版本上实现。
2、更新:蓝图高级搜索
  蓝图的搜索功能又更新了,支持更高级的搜索功能(获得更多的预期结果)


 · 可以在搜索是定义特定元素,比如节点、针脚、图、函数、宏、变量、属性、组件等。完整文档见这里:  https://docs.unrealengine.com/latest/INT/Engine/Blueprints/Search/index.html
 · 支持 And (&&) 和 Or (||) 逻辑操作符,以及名称/数值匹配的方式(语法是:Tag=Value)
 · 变量的“查找引用”选项现在功能做了改进,查找更为准确。
3、更新:VR 头戴显示摄像机改善
  为头戴显示设备做的摄像机系统做了改进,丰富了功能并且更加好用。我们将当前激活的摄像机组件在引擎中做了一定的偏移来适配真实世界中头戴显示设备的偏移。这么做能让大家能够更加容易的计算 VR 头戴设备在世界中的位置,可以直接附属其他模型也更为准确。并简化大家 VR 游戏的控制计算。
  另外,任何附加到 Camera 组件的东西都会被“延迟更新”,这意味着它们会应用更新最及时的位置数据用于渲染,减少延迟。附加到 Camera 的模型、特效和面片都会被锁定,并和头显使用一样的方式在每帧中更新。
  查阅 这个文档 来了解如何将现有项目迁移到新的系统!
4、更新:VR 立体层
  立体层能够提供绘制一个带贴图的四边形在世界中的任意位置,并作为一个单独的层直接置于 VR 合成画面中。通过这个功能能够让 UI 的制作变得更加刻度,减少扭曲。目前这个功能仅在 Oculus Rift 头显上实现,但预期很快就会在其他平台也整合。
5、更新:SEQUENCER 的主要进展(实验性)
  Sequencer 是我们最新的非线性场景动画系统。Sequencer 目前仍然在重度开发阶段,我们暂时并不建议生产项目直接使用它。但我们欢迎大家来尝试并给我们提供反馈!我们希望在接下来 UE4 的版本中听取各种 Sequencer 的反馈。
  4.11 中 Sequencer 的主要特性:
 · 新的轨道:Shot/Director,播放速度,缓慢,淡出,材质,粒子参数等轨道。
 · 改进电影渲染,支持 .EXR 渲染
 · 改进关键帧行为,复制粘帖关键帧,从 matinee 中拷贝,关键帧路径 3D 显示
 · 主 Sequence 工作流,能够在一个较大的 Sequcne 中设置子场景。
 · 支持“可生成”物体(存在于过场动画素材中的对象)
 · UI 改进:轨道颜色区分,关键帧形状、颜色功能,轨道过滤
  可以在插件面板中启用 “Level Sequence Editor” 插件,并重启编辑器,来激活并使用 Sequencer 功能。

如社区发表内容存在侵权行为,您可以点击这里查看侵权投诉指引

1个评论

  • 彼岸无风 2016-04-16 1楼
    海量活动、新鲜资讯、花式教学就在GAD的核心用户QQ群:484290331!