2014年8月14日

虚幻引擎4.4现已发布!

作者 Brandon Sieprawski

虚幻引擎4.4具有Unreal Motion Graphics(虚幻运动图形)的首个预览版、全新的用户界面设计及脚本工具。同时,在这个版本中,默认会启用行为树编辑器、AI逻辑工具,以供大家使用! 您也可以看到很多针对角色动画编辑器和Paper 2D的改进。现在,可以更好地支持Android和iOS平台,并且C++编译变得更快。有很多针对虚幻引擎4.4版本新的Marketplace内容! 我们随之发行了 Landscape Mountains示例、Matinee格斗场景、Mixamo动画包及针对 Paper 2D和网络的新内容示例。请访问Marketplace来获得这些最新示例,这些示例对订购者是免费的.

我们要对所有为虚幻引擎4.4版本贡献代码的非常棒的开发者们表示诚挚感谢.

Alex Silkin (alexSilkin)、 Allegorithmic、 Joe Riedel (joeriedel)、 Joel Riendeau (joelriendeau)、Kevin Rushin (Malfate)、Marc Kamradt (MarcKamradt)、Martin Palko (MartinPalko)、Michael Delva (Zoubi)、Pablo Zurita (pzurita)、Rama (EverNewJoy)、Robbie Newman (Ehamloptiran)、Robert Khalikov (nbjk667)、Robert Wallis (robert-wallis)、Roy (Shammah)、Scott Michaud (ScottMichaud)、Sebastien Rombauts (Srombauts)、 Stephen Whittle (stephenwhittle)、Steve Anichini (solid-angle)、 thk123、Wesley Hearn (wshearn)。

主要的新功能

新增功能: UNREAL MOTION GRAPHICS (用户界面编辑器预览版)

Unreal Motion Graphics(虚幻运动图形) (UMG) 是我们全新的、试验性的交互式用户界面设计和脚本工具!

Editor Screenshot

全新的控件编辑器工具允许您在一个可交互的画布上布局用户界面,并实时地创建及预览动画。UMG同蓝图进行了深入集成,所以您可以轻松地连接事件来触发游戏变化。UMG建立于Slate用户界面系统之上,继承了很多很酷的优点,比如大的用户控件数组、丰富的功能。

Unreal Motion Graphics目前是自虚幻引擎4.4版的‘试验性功能’。它还没有完全地制作完成,有些东西可能不能向后兼容,但是我们希望您可以试一试并发回反馈! 要想访问UMG, 请在编辑器偏好设置的 Experimental(试验性功能)部分启用它。

关于更多信息,请访问我们的 UMG文档 和我们的 演示视频.

免费的Marketplace内容

Landscape Mountains(山脉之景) -  在这个示例中,驾驶滑翔机穿行于广袤的山脉间。该示例使用 World Machine 进行制作,并使用虚幻引擎4的植被和材质系统进行了润色装饰。请通过虚幻引擎4和Landscape Mountains,看一下创建一个具有美丽绝伦的山脉的高端地貌效果是多么简单!

Wilderness

Matinee格斗场景 -通过深入了解这个使用Matinee制作的格斗场景,来学习如何创建令人赞叹的过场动画。您将可以通过实际操作来看一下如何在该编辑器中控制从带动画的角色到视觉特效的所有内容。请使用我们的 教程 和一些简单的Matinee操作指南进行入门学习.

Fight Scene

Mixamo动画包 -  Mixamo为您带来了免费的角色和动画包,以供您在项目中使用。{0><}100{>它包含了15个带动画的角色,使得您制作游戏原型变得超级简单!

Mixamo Character pack

新的Paper 2D 示例地图 -涵盖了和二维游戏创建相关的几个主题,包括: 通过Sprite Editor(精灵图标编辑器)创建及编辑精灵图标; Flipbook(动画书),它使您可以通过使用精灵图标和关键帧设置来创建带动画的2D资源;如何使用蓝图控制Flipbook(动画书); 给2D资源添加物理;及如何为您的精灵图标创建经典的低分辨率像素外观。请查看指南 Paper 2D 文档 获得更多信息!

New Paper 2D Content Example

全新的网络功能方面的示例地图 - 解释了如何完全通过蓝图来实现网络功能。Replication(复制)部分的示例展示了服务器和客户端之间进行适当通信的方法,以及采用不同技术的时机。Relevancy (相关性)部分介绍了在Actor变为相关联时如何进行处理,比如当一个玩家加入到一个正在运行的现有游戏。欢迎您随时查看文档!

New Network Features

BEHAVIOR TREE EDITOR 行为树编辑器

新功能:行为树编辑器现在已可用!

Behavior Tree

行为树编辑器允许您在可交互的图表编辑器中编辑AI状态逻辑。我们已经对该工具进行了为期数月的平稳改进,现在,我们认为大家可以在游戏中放心使用它了!

AI执行顺序

Behavior Tree Nodes(行为树节点)现在有指示器,用于显示行为树节点在其父项范围内的执行顺序。将鼠标悬停到这些指示器上,也会突出显示该行为树中的同级指示器:

AI Execution ORder

当调试时,这些指示器显示了该行为树中的总体顺序:

AI 2

描述性的节点信息

所有内置节点现在都有工具提示信息,这些提示信息解释了它们的功能。将鼠标悬停到一个节点上来查看它的功能。

ai 3

渲染

新功能:透明涂层渲染模型

全新的透明涂层渲染模型使得设计具有半透明涂层的材质变得更加简单。

Clear Coat

(注意:那些斑点是从材质编辑器中添加的,而不是着色模型的一部分。)

这可以用于有半透明图层膜覆盖到标准材质表面的多层材质,该标准材质可以是金属也可以是非金属性材质。它的一个特别用途是在一个无色金属上对这种二级光滑的彩色薄膜进行建模。

示例包括丙烯酸或亮漆透明涂层,以及像汽水罐、汽车油漆这样的金属表面上的彩色薄膜。

暴露了两个新参数:

Clear Coat(透明涂层)。透明涂层的层数,0表示标准的着色模型,1表示完全的透明涂层模型。这对于设置蒙板是非常有用的。

Clear Coat Roughness(透明涂层粗糙度)。透明涂层的粗糙度。对于较小的值,我们的相似度是非常精确的。虽然也支持非常粗糙的透明涂层,但是并不是非常贴近真实世界中的效果。

新功能:LIGHTMASS中的TUBE LIGHT(管状光源)
Lightmass光线跟踪器现在支持胶囊型的点光源。非常感谢促成此改进的 社区作品提交!

TubeLight.png

Paper 2D

PAPER 2D SPRITE DICING (PAPER 2D精灵图标方块切割)

Paper 2D精灵图标现在可以切割成小方块!这可以将半透明区域/蒙板区域从不透明区域中分离出来,从而降低它们的GPU消耗。

要想使用该功能,请设置渲染器几何体类型为Diced(切割方块),并确保您在资源上将该可替换材质设置为不透明材质。

2D Sprite Dicing

PERSONA(角色编辑器)

改进了动画编辑的工作流程!

新型的角色编辑器用户界面。我们改进并简化了角色编辑器中每个单独模式的布局。

Improve Animation Editing Workflow

新的工具条!角色编辑器的每种模式都有一个包含常用操作的工具条。

Anim Editing 2

New Toolbars

动画缩略图。现在,您的动画可以在内容浏览器中显示漂亮的缩略图。

Thumbnail Animations

动画自动预览。现在,在资源浏览器中,您可以将鼠标悬停到资源上来预览动画序列。

Animate Auto Preview

保存所有动画。在角色编辑器的‘文件’菜单中添加了“保存所有动画资源”的功能。

Save

选择隐藏的骨骼。现在当一个骨骼处于隐藏状态时,您可以在视口中选择该骨骼(网格物体必须具有一个物理资源)。

Hidden Bones

内联帮助链接。您现在可以轻松地使用右侧的新帮助链接跳转到每种动画编辑器类型的帮助文档处。

Inline Help Links

网格物体LOD视图。网格物体细节层次视图现在显示LOD设置,包括每个LOD的材质。

Mesh Load View

动画导入帮助。当从FBX文件中导入动画发生任何错误时,现在会在消息日志中显示详细的帮助描述信息。

Animateion Import Help

Shift+左击 操作可以 展开/合并 骨架树中的层次结构。

角色编辑器视口中的Display Info(显示信息)现已简化,仅显示必要的信息。

当为蒙太奇插槽使用了一个错误的名称时,将会显示一个有用的错误信息。

动画“重定向”选项现在仅显示在骨架选卡中。

动画编辑器中的缩放功能现在基于当前的鼠标位置进行放大。

最后,现在所有引用资源的动画蓝图节点,都支持通过双击资源来打开它进行编辑。

蓝图

新增蓝图节点:SET MEMBERS IN STRUCTURE(设置结构体中的成员)

该节点允许您轻松地为用户自定义的结构体中的变量赋值。您可以通过该节点的详细信息选择显示哪个结构体变量。

Blueprints Node: Set Members in Structure

新增蓝图接节点SET TIMER DELEGATE(设置计时器代理)

该节使得按照您选择的特定时间间隔运行一个自定义事件变得更加容易。您可以使用 “Looping”复选框来选择是否重复调用该事件。

Blueprints Node: Set Timer Delegate

平台改进

针对移动设备工作流程进行了大量改进,包括辅助处理设备服务提供的编辑器内置教程。在移动设备上提供了新的图形处理功能,比如实例化的植被。虚幻编辑器的Mac版本现在可以进行更好的响应,改进了菜单体验,并且还提供了其他数十个改进。Android支持更多的设备,并且现在您可以从蓝图脚本中访问在应用程序内购买的功能!

请参照以下变更列表来获得针对您最喜欢的平台的详细改进信息!

编辑器

新功能: 对齐Actor到表面!

变换工具条上多了一个新按钮,它允许您在拖拽Actor时将其投放到世界中。这对于向复杂几何体上放置对象是非常有用的。

Snap Actors

 对齐处理以两种方式之一进行处理: 通过投射穿过拖拽平面(如果您正在一个受限平面上进行拖拽时);或者通过投射actor到屏幕空间内的世界中(当您在三个坐标轴上拖拽时)。

SnapEditorExample

物理

新功能: 简单的二维物理约束

现在,引擎支持将三维物理对象轻松地约束到二维平面内。这在制作二维横向卷轴游戏时是有帮助的。

Physics 2D Contraints

这些设置可以基于每个对象进行应用,或者也可以通过修改项目物理设置来在整个项目范围内进行应用。

布娃娃默认仅约束根刚体。这允许布娃娃的四肢可以在三维空间内运动,但在二维平面内仍然保持为完整的资源。

新增功能: 自定义摩擦模式

物理材质现在支持不同的摩擦模式!

Custom Friction Modes

默认情况下,当两个刚体发生碰撞时我们选择平均摩擦系数。但是,这对于像冰面这样的负摩擦系数和正摩擦系数最终需要平均为0的情况是有问题的。

不同的模式用于不同类型的效果。如果是冰面,那么您会想使用Multiply或Min,并将冰面材质的摩擦设置为0。

摩擦模式可以在整个项目范围内进行设置,当然,您也可以覆盖每个物理材质的摩擦模式。

学习资源

  • 全新的快速指南目录 - 从入门文档或编辑器中直接跳转到所有快速指南!
  • Matinee 格斗场景指南
  • Matinee指南 3-8
  • Paper 2D & 样条曲线组件的内容示例目录
  • 渲染到贴图
  • AI快速入门
  • FBX错误信息改进
  • Mixamo导入指南
  • iOS 快速入门
    • Mac-到-iOS
    • Windows-到-iOS, 仅蓝图
  • 关于iOS 设置和部署的编辑器内部指南
  • 分析器概述
  • UMG(虚幻运动图形) – 初期文档
  • 行为树概述及参考指南
  • 代理 – 关于 AddStatic/BindStatic的额外信息
  • Steam文档更新
  • 角色编辑器的编辑器内部工具提示及教程的更新

新增功能

编辑器和工具

  • 新增: 导航路径现在可以自己进行自动重新计算!
  • 新增: 现在,在关卡浏览器中,您可以通过拖拽并放置关卡来快速重新排序关卡。
  • 新增: 现在,停靠到主编辑器区域内的资源编辑器在下次重新打开时将恢复到那个区域。
  • 新增: 为Cascade添加了新的材质工作流程。现在,已命名的材质可以添加到由每个发射器引用的系统中。在蓝
  • 图和代码中可以通过这些材质的名称来从外部访问这些材质,并且可以覆盖这些材质。
  • 新增: 材质编辑器中的Live Preview(实时预览)可以按钮切换编译所有正在编辑的资源的预览材质。当该项为关闭状态时,仅当按下Apply(应用)按钮才编译该材质。
  • 新增: 现在,您可以在项目设置中自定义异步加载时间限制和行为。
  • 新增: 现在,当同步资源到内容浏览器时,内容浏览器会重置搜索过滤器。
  • 新增: 当移动Actor到文件夹中时,在任何适当的地方都会保持它们的 父项/子项 层次关系。
  • 新增: 在选中的BSP表面的详细信息面板中添加了表面数量和材质名称。
  • 新增: 添加了将自定义事件标记为CallInEditor的功能,并扩展了该主编辑器actor的详细信息视图。
  • 新增: 现在如果将Actor放置在背景上,那么Actor默认和Z轴正方向对齐。
  • 新增: 现在可以通过Texture Tiles(贴图平铺块)属性和Tiling Distance(平铺距离)来控制平铺效果。
  • 新增: 不同视图间的World Composition(世界构成)关联菜单变得更加一致。
  • 新增: 关卡颜色又可以在关卡视口中显示了
  • 新增: 网格物体融合工具改进
    • 现在可以融合所有可用UV通道。
    • 现在可以指定光照贴图图集尺寸的硬性限制。
    • 支持融合描画的顶点颜色。
  • 新增: 现在,更多的像Cascade和Matinee这样的子编辑器都将会报告诊断分析,以帮助我们改进这些工具。
  • Live Editor(实时编辑器): 当新的Actor生成时 (或重新生成时) ,将会立即从当前会话中使用最新的LiveEdited值初始化它们。
  • 修复了选择大量actor会冻结编辑器很长时间的问题。
  • 关卡动态载入使用增量组件注册,目前每次迭代最多支持10个组件,所支持的组件数量可以在项目设置中进行修改。
  • 修改现有静态网物体导入选项会启用一个按钮,使得用户可以进行重新导入。
  • 当类别查看器没有找到结果时不会再出现崩溃。
  • 修改了FMatrix 和FTransform结构体自定义,使它们同组件变换详细信息自定义以相同方式工作。
  • 新增: 现在,当自动保存时,取消按钮会出现在反馈对话框中。
  • 恢复了静态网格物体过期时在HUD上显示的导航网格物体错误信息。
  • 删除了计算实例化网格物体粒子和植皮网格物体时的LocalToWorld缩放。这样可以防止缩放失真的网格物体。
  • 在导入的法线贴图中删除 取消/重复 处理
  • 删除了放置几何体时的虚假的 'set brush(设置画刷)'处理。
  • 切换关卡可见性不会再强制设置图层的可见性。
  • 修复了静态导航网格物体(不需要在运行时进行重新构建)的自定义导航链接ID分配。
  • 修复了从子关卡的几何体生成不一致的导航网格物体的问题。
  • 修复了不能从子组件传递导航相关性更新的问题
  • 修复了条带中使用其他粒子作为其源时会发生中断的问题。
  • 修复了从内容浏览器中拖拽根文件夹时内容浏览器发生崩溃的问题。
  • 修复了当创建新项目时允许项目名称中有‘/’ 和‘\\’的问题。
  • 内容浏览器: 禁止将所有父项文件夹移动到子项文件夹。
  • 修复了编辑器偏好设置中的用户默认数组序列化会导致在用户界面中出现重复值的问题。
  • 修复了这个问题:当在编辑器偏好设置中重置选择颜色(及其他属性)为默认值时,直到重新启动编辑器之前不会更新该用户接界面或视口。
  • 修复了可见性工具不显示可见性图层作为其目标的问题。
地貌
  • 新增: 在场景大纲视图中添加了Landscape(地貌) actor图标。
  • 新增: 向地貌编辑器alpha画刷添加了手动旋转选项。
  • 新增: 支持将有洞的地形导出到FBX网格物体
  • ALandscapeProxy::DataLayer已经重命名为VisibilityLayer.
  • FLandscapeToolSet已删除。
  • 修复了在另一个组件旁边添加一个组件时应用使用重拓扑工具的XYOffset的问题。
  • 修复了在删除的组件或邻接组件时有 LODBias/ForcedLOD 的情形时出现的 删除/添加 组件的问题。
  • 将地貌Spline Control Point Mesh(样条曲线控制点网格物体)的移动性修复为静态。
  • 修复了样条曲线网格物体上的植被“填充”工具。
  • 修复了地貌样条曲线的 取消/重复 崩溃(再一次)。
  • 修复了alpha画刷中可以读取所提供的贴图的+X/+Y 边的问题。
  • 修复了当为地貌图层应用植被重新应用工具且图层名称设置为"无"时出现的崩溃
  • 修复了LOD偏移组件的Lightmass光照贴图构建问题。
行为树
  • 新增: 现在可以再次从右键关联菜单中删除及重命名Blackboard(黑板)关键帧。
  • 新增: 行为树黑板装饰器在检测到的关键帧修改其值时可以请求执行。
  • 修复: 现在,双击时可以正确地聚焦到行为树。
  • 修复了获得输入焦点的行为树窗口相关的问题。
  • 修复了行为树循环装饰器影响重启的问题。
  • 当实现了ReceiveExecute 或 ReceiveTick事件时,行为树任务默认为InProgress。

蓝图

  • 新增: 现在可以为直接继承UObject的类型创建蓝图变量。
  • 新增: 为样条曲线网格物体组件值添加了可以调用蓝图的访问器。
  • 新增: 现在可以使用SetSortOrder通过蓝图来设置Decal (贴花)排序。
  • 新增: 为在地图加载过程中移植的蓝图添加了蓝图日志警告,以便可以轻松地检测到陈旧蓝图和地图之间的问题。它也在主编辑器的 保存/加载 偏好设置下添加了一个编辑器选项,来将所有移植的蓝图标记为已修改,以尝试辅助解决由于地图在蓝图移植后保存但却没有保存蓝图所导致的问题。
  • 新增: 现在可以使用蓝图属性废弃蓝图。
  • 新增: 启用了在类别选择器对话框中加载的动态类。
  • 新增: 打包补丁修复了一个问题:即当动态加载发生时不能在对话框中保持内容项扩展名状态的问题。
  • 新增: 函数和宏现在可以在‘我的蓝图’面板中显示它们的类目。
  • 新增: 现在可以通过在蓝图编辑器中的组件模式内通过编辑根组件的比例来设置基于actor的蓝图的默认比例。
  • 新增: 通过C++节点类的工具提示信息元数据和BlueprintDescription文本为蓝图节点类添加了新的工具提示文本。
  • 新增: 为图表面板添加了新的控件覆盖系统,这样设计使得比目前仅基于画刷的实现更加灵活。
  • 新增: 当复制 曲线/时间轴 来防止出现重复名称及导致警告时,名称冲突检测节点现在变得更加严格。
  • 新增: 旧的控件蓝图应该可以在虚幻引擎4.4版本中加载,但是有几个属性可能会被重置为默认值。
  • 新增: 本版本中引入了将蓝图自定义事件标记为工具函数的功能,该工具函数可以在编辑器中的Actor上调用。
    • 该思想为蓝图在actor上执行 管理/外围 任务方面提供了灵活性,或者仅是为了提供了一种关于蓝图功能的编辑器预览形式。
    • 自定义事件通过在蓝图详细信息面板中勾选Call In Editor(在编辑器中调用)项,可以将其标记为对该功能可用。调用该函数的用户界面位于Blutility部分的主要详细信息面板中,并且通过当前选中的actor蓝图进行填充。
  • 新增: 支持针对删除未使用的变量的 取消/重复 操作。
  • 蓝图重叠查询也要求检查异步场景。
    • 蓝图场景查询既检查同步场景也检查异步场景。但事实证明蓝图的重叠查询不会执行这个处理。我们修复了这个问题,但是如果您依赖于旧的不一致的行为,那么某些行为可能将会受到破坏。
  • 修改了蓝图详细信息面板,使得它在修改自定义事件的复制设置时可以将该蓝图标记为已修改。
  • 纠正了蓝图编辑器中的一个退化问题,既当选择一个节点后会禁用快捷键。
  • 现在,类型强制转换可以作用于调用数组函数节点的所有通配符引脚上,而不仅在Target Array引脚。
  • 使用最终版本替换了在编辑器中调用的事件的占位符图标。
  • 从蓝图编辑器的变量类型下拉菜单中删除了宏库。
  • 从所有蓝图生成的函数中删除FUNC_Exec标志。这防止了从控制台中直接输入函数名称来调用某些函数。如果您想直接从控制台调用一个事件,那么请使用以下语法: ke * MyEvent,或者将 * 替换为您想在其上面调用事件的实例的名称。
  • 修复了蓝图代码中的一个重复发送报警框的无限循环。
  • 修复了枚举节点加载问题,该问题导致枚举值在重新加载后变成未选中状态。
  • 修复了蓝图循环依赖问题(即一个原始蓝图依赖另一个蓝图,而这个蓝图又引用了原始蓝图。)
  • 修复了重新运行蓝图构建脚本相关的排序问题,该问题会导致在关卡加载时破坏附加内容。
  • 修复了常量值作为SpawnActorFromClass 和 AddComponent节点的输入的问题,现在不需要在您的蓝图中创建变量就可以分配该常量值了。
  • 修复了当合并然后再展开包含函数或其他合并图表的节点时可能发生的崩溃问题。
  • 修复了当加载具有弱循环依赖的蓝图时发生崩溃的问题。

渲染

  • 新增: 并行渲染方面有很大改进 (可以使用“r.RHICmdBypass 0”控制台命令进行预览。)
  • 新增: 给材质节点添加了丰富的工具提示信息!
  • 新增: 为距离场字体 (Distance Filed Font) 添加了压缩和采样类型。
  • 新增: 为TextRenderActor添加了一个选项,使得在应用类似Level Coloration (关卡着色) 这样的调试可视化模式时可以不作任何修改地渲染文本。这个选择框位于详细信息面板的Rendering (渲染) 类目下,称为Always Render As Text(总是渲染为文本)。
  • 新增: 为各种贴图类别添加了输出,从而允许在不同的模块中设置其子类。
  • 新增: 添加了修改最大分辨率限制的贴图属性(‘高级’视图中‘压缩’部分的MaxTextureSize(最大贴图尺寸) )。这对于高动态范围的立方体贴图是非常有用的,立方体贴图的限制尺寸为512(出于性能考虑进行了硬编码)。
  • 新增: 将SpawnDecalAtLocation 的默认朝向改为朝下。
  • 新增: 现在,Matinee可以对天空光源的光源颜色及亮度进行动画处理。
  • Cascade网格物体发射器改进
    • 不使用PSA_Velocity 或 PSA_AwayFromCenter的网格物体发射器的旋转速率会随着时间不断增加,最终在几秒后进行无法控制的旋转,且粒子的朝向和缩放比例间的操作顺序也不能如期运作。这些问题都在本次更新中进行了修复。
    • 另外,MediumDetailSpawnRateScale 已经废弃,由QualityLevelSpawnRateScale取而代之。这个新值同扩展性设置的特效质量级别相关联,并导致生成速率和Epic的降低每个特效质量级别的QualityLevelSpawnRateScale 值相乘。比如,如果一个发射器的生成速率设置为100,而它的QualityLevelSpawnRateScale值 是0.5,那将特效质量降低为High(高级)将会导致生成速率为50,将特效质量降低为Medium(中等)将会把生成速率设置为25。设置QualityLevelSpawnRateScale值 为1.0,特效质量将不会发生改变。
  • 粒子特效网格物体现在可以正确地遵循视图模式
  • 光束现在传入第二个UV集合,该UV在光束长度上覆盖了0到1个单位(以虚幻单位为单位)。如果UV集合设置为0,现在将会按照类型数据模块中的平铺参数进行平铺。
  • 修复了关闭主视口中的GBuffer Hints (Gbuffer提示) 会导致编辑器崩溃的问题。
  • 可扩展性: UmaterialBillboardComponent类现在通过ENGINE_API暴露出来。
  • 现在,当成批地冲洗管线时可以批量清除网格物体。
  • 现在将MID的混合模式改为蒙板可以正常工作。
  • 将混合独立的ARB功能移到了可选项中。添加了针对GL_ARB_draw_buffers_blend字符串的扩展名检测
  • 修复了进行基础渲染时天空光源计算中的彩色负片。
  • 修复了使用世界空间法线和折射的材质的编译错误。
  • 修复了给地貌添加细分材质会导致严重尖峰的问题。
  • 修复了约束屏幕高宽比的相机的距离场环境遮挡。

游戏性和架构

  • 新增: 添加了GameMenuBuilder模块,以快速创建简单的菜单。
  • 新增: 添加了在运行时检测鼠标是否连接的函数。
  • 新增: 在HUD中添加了阴影选项,以调试文本及清除DrawText 函数。
  • 新增: 为InstancedStaticMeshComponent添加了新函数GetInstanceTransform、UpdateInstanceTransform、GetInstanceCount、RemoveInstance及SetCullDistances。这些函数也可以从蓝图中调用。
  • 新增: 添加了延迟蓝图节点,它允许基于游戏事件动态操作力反馈。
  • 新增: 为可视化记录器添加了记录像柱状图那样的数据的功能,并扩展了LogVisualizer工具来将数据显示为屏幕上的二维图表。
  • 新增: 为指南添加了在指定行打开集成开发环境的功能。
  • 新增: 添加了针对指南的支持,以便它们可以作为一个资源打开或突出显示。
  • 新增: 添加了针对在创建一个资源选择器后修改其过滤器的支持。
  • 新增: 添加了通过 PropertyHandles 使用FAssetData 设置对象属性的支持。
    • 新增: 添加了CameraActor 'AutoActivateForPlayer' 选项,以便放置到关卡中相机可以自动连接到PlayerController。
    • 为Actor添加了一个针对Actor开始及中止成为 PlayerController的视图目标的蓝图事件 (OnBecomeViewTarget / OnEndViewTarget)。
    • 这些事件 (BecomeViewTarget / EndViewTarget) 的原生C++处理已经存在,现在触发蓝图事件。
    • 修改了从PlayerCameraManager调用 EndViewTarget / BecomeViewTarget 的顺序,以便在旧的目标上先发生End事件,然后在从新的目标上执行Begin事件 (之前是相反的顺序) 。
  • 新增: 在还没有完全将关卡的RerunConstructionScripts 添加到世界中之前允许静态组件移动。给 位置/旋转度 是否相等判断添加了阈值,以防止对组件位置进行不必要的更新。
  • 新增: 如果在“非原生”根组件(也就是,不是在C++中创建的组件)上设置的缩放比例值不是(1,1,1),那么将会在加载时将它们自动恢复为(1,1,1)。
    • 之前,非原生根组件的默认缩放比例在构建时会被忽略掉。
    • 因此,我们在加载时隐性地转换这些值,从而确保现有实例和新实例在它们更新之前,都会像以前一样以相同的比例出现。
  • 新增: 对于没有取入代理来辅助绑定坐标轴来使用获得值函数的InputComponent(输入组件),现在为其添加了针对Axis、AxisKey和VectorAxis绑定函数。
  • 新增: 创建了基于蓝图的第一人称模板的指南。
  • 新增: 创建了基于代码的Rolling模板的指南。
  • 新增: 在SkeletalMeshComponents上行走的角色现在保持到它们所站位置的骨骼的相对位置和旋转度,并在带动画的骨骼上走过,而不是停留在相对于网格物体原点的原位。
  • 新增: 动态参数现在可以从预先存在的动态参数中复制它们的参数名称。
  • 新增: 略微修改了蓝图编辑器内的"组件"模式中的编辑变换默认值。
    • 先前,位置、旋转和缩放都已经显示,但仅用于默认场景根组件以及任意在组件模式中创建的根组件。
    • 在更新后,位置和旋转现在都被隐藏,"原生"(例如,在C++中创建)和"非原生"根组件现在都可使用缩放。
  • 新增: PC现已支持XInput设备的力反馈。
  • 新增: 力反馈现在可以通过玩家控制器禁用。
  • 新增: 现在,全屏截图已可在可缩放的窗口中显示。
  • 新增: 现在蓝图中有针对类变量的Get Display Name(获取显示名称)处理。
  • 新增: InstancedStaticMeshComponents现在通过碰撞事件所碰撞到的实例的索引来设置FHitResult.Item属性。这可以和上面的函数结合使用来移除特定实例并将其替换为真正的StaticMeshComponent,以提供与植被或其他行为的交互性。
  • 新增: 引入UNavigationPath供蓝图使用 - 当前可进行的操作尚不多。
  • 新增: 发起者现在可以被设置为Spawn Actor Blueprint节点的一部分。如果发起者不在引脚中通过引线来明确设置,则发起者将自动基于调用情境来设置。如果Spawn Actor是从Pawn情景调用的,则Pawn将成为发起者。如果Spawn Actor从actor情境中调用的,则actor的发起者将成为发起者。
  • 新增: 在AIModule中引入PawnActions。现在已可使用测试功能。
  • 新增: 曲线表格编辑器现在在网格控件中显示数据。
  • 新增: 触摸事件(不是触摸完成事件)现在可以默认在玩家控制器上启用。
  • 新增: VisLog file名称现在可以由游戏特定代码来自定义。
  • 新增: VisualLog现在作为引用而不是指针来获取。
  • 在永久性关卡载入后,在载入子关卡时,关卡的变换不再保留。
  • 自定义启动画面现已可正常显示。
  • 已废弃的AActor::GetControlledPawn() ,用以防止与AActor::GetPawn()混淆
  • 如果actor由打开的Matinee所引用,则不允许移动actors到另一关卡。
  • 在资源选取器中不再出现不同的资源。
  • DestroyApplication虚拟函数已为FApplication进行正确的调用。
  • 记录了所有类元数据标签。
  • 确认在尝试使用元数据时载入了包的元数据。
  • 确认渲染资源在关卡被删除时进行了释放。
  • FSlateApplication::SetJoystickCaptorToGameViewport现在捕获所有的操作杆。
  • 隐藏FNavigationPath属性,使得不能进行公共访问。
  • ICU初始化提供对失败的更佳诊断。
  • 对LogVisualizer工具的改进和修复: 双击日志项目从而在世界中显示位置,显示日志项目和2D图表,性能最优化的筛选器。
  • 对蓝图节点引脚旁的编辑框的显示(或非显示)改进。
  • 对添加源文件信息来将其作为提取注释和参考注释的OneSky本地化服务的改进的支持。
  • 改进的本地化收集,使之不收集固定区域性的文本。
  • 改进的本地化收集,使固定区域性文本不会将其包含的存档或包标识为需要本地化。
  • 改进的本地化收集,这样对未收集的文本不会提示警告和错误。
  • 改进了基于文本内容进行本地化收集时在标识包/归档时的空格检查。
  • 改进的导航网格物体投射准确度。
  • 使UNavigationComponent的路径重新计算由路径本身完成。
  • 没有PawnMovementComponent的Pawns仍可使用AddMovementInput()并读取结果。
    • 自PawnMovementComponent移动ControlInputVector到Pawn。这是由组件使用的Pawn的"内部"方式来访问/修改它。
    • 添加如下移动输入访问器到Pawn: GetMovementInputVector()、ConsumeMovementInputVector()、IsMoveInputIgnored().
    • 暴露PawnMovementComponent::IsMoveInputIgnored()给蓝图。
  • 在运行PIE时移除不适合Shooter Game(射击游戏)示例的菜单选项。
  • 删除了路径变化功能(未使用及损坏)。
  • 修改了Shooter Game(射击游戏)示例中的文本聊天。在客户端上改进了可见性标志并防止焦点在客户端上发生改变。
  • 修改二维横向卷轴C++模板并降低其蓝图依赖性。
  • 修改平台游戏菜单以使用新建的GameMenuBuilder。
  • 针对载具示例游戏进行了多次修改,以改善多人支持。
  • 更宽的工具提示(主要提示),使得类注释不会产生奇怪的自动换行行为。
  • 修复EQS(环境查询系统)的非正确时间片。
    • 此次更新会在每个步骤后扣除所有先前步骤剩余的时间,而不是基于执行当前步骤所花费的时间来扣除剩余时间。
  • 修复Shooter Game(射击游戏)示例中的崩溃。
  • 如玩家为空,则在GetMousePosition()中修复崩溃。
  • 修复访问链接的方向为RightToLeft(右向左)的问题。
  • 如访问路径与给定FBox相交,修复访问路径的检查。
  • 修复游戏模式中的功能测试崩溃问题。
  • 修复项目碰撞设置(自定义概述文件/通道/对象类型)未能在DefaultEngine ini中进行保存的问题。
  • 修复在使用打开的、未编译的蓝图启动PIE时可能发生的崩溃。
  • 修复在RerunConstructionScript期间使用蓝图组件的附件问题
  • 修复在载入缺失根组件的多个独特蓝图资源时产生的崩溃。
  • 对SplitPin功能的多个修复。
CHARACTERMOVEMENTCOMPONENT(角色运动组件)
  • 正在下落并使用不可行走的法线同几何体碰撞的角色可以检查有效着陆位置,如果可行则着陆。
    • 在壁架上奔跑和跳跃更为流畅。之前角色会在着陆前“漂浮”一下,这会使它丢失速度。
    • 为自定义操作添加了虚函数ShouldCheckForValidLandingSpot()。当使用胶囊体的低端部分撞击几何体边缘时,基础版本会返回true。
  • 修复了角色在旋转表面上运动的缺陷,尤其是在网络上的移动。
    • 修改了一些MovementBaseUtility函数使之符合引擎规则("方位"而不是"位置")。
    • 变更AActor::PostNetReceiveLocation()以同时包含旋转(现在被称为PostNetReceiveLocationAndRotation)。
    • 修复在UpdateBasedMovement()中计算的不正确旋转增量。
    • 修复了覆盖角色相对旋转度的重复旋转度问题。
    • 修复模拟代理在速度达到0时不匹配服务器位置的问题。在此情况下代理会向前移动一帧。
    • 修复了模拟客户端忽略bIgnoreBaseRotation的问题。此情况下转而发送绝对旋转度。
  • 修复当时间戳超过阀值时,ApplyVelocityBraking不正确累加的变化问题(帧速较低时产生)
  • 防止当胶囊体的底部在掉落时撞击某物时的增高斜坡。
    • 玩家的碰撞现在感觉更为自然,更不像胶囊体。
    • 添加HandleSlopeBoosting()来更轻松地自定义行为。
新增: 游戏实例对象 (永久性游戏数据)
  • 新增: 游戏实例是存在于关卡变换间的具有生命周期的短暂对象。
  • 它可以作为C++和蓝图类来作为游戏的扩展(在项目设置中的地图和模式部分进行设置)。
  • 它可以被用来存储跨关卡数据,管理游戏的应用状态,并作为对象的所有者来存在于游戏会话的整个生命周期内。
  • GameInstance同时存在于客户端和服务器,然而,由于其是UObject,当前在实例间没有数据复制。

Paper 2D

  • 新增: 添加对切割精灵图标渲染几何体的支持,将半透明/蒙板方形与不透明方形隔离开来尚未完成。
    • 精灵图标现在具有其他材质,并可以定义具有使用此材质的第二个渲染部分(当前仅用于切开的几何体,在此情况下其它材质为不透明)。
    • 添加一个新的ESpritePolygonMode::Diced value,仅对渲染几何体有效(如碰撞的SourceBoundingBox一样处理)。
    • 当有多个源多边形时,为碰撞和渲染几何体添加三角形合并。
  • 新增: 添加了从精灵图标投射三维阴影的支持 (FPaperRenderSceneProxy现在遵从来自源组件的CastShadow)。
  • 新增: 添加对翻书贴图内的关键帧的拖放重新排序的支持。
  • 新增: 添加OnFinishedPlaying代理到UPaperFlipbookComponent,在非循环翻书贴图完成播放时(到达结尾处开始处,由播放方向决定)调用。
  • 新增: 为支点添加对齐到像素网格选项(在新内容上默认启用),并对源长方形应用强制对齐到像素网格(总是)。
  • 新增: 向内容示例中添加了Paper 2D演示关卡。
  • 新增: 添加对翻书贴图组件的复制状态的支持。
  • 新增: 添加将从Tiled 0.90导出的平铺贴图和平铺设置导入为JSON的支持。
  • 新增: 添加将DLL导出为UPaperSpriteComponent和APaperCharacter。
  • 新增: 添加对Texture Packer(贴图打包)3.5 UE4导出选项的支持
  • 新增: 添加FPaperSpriteSceneProxy与UPaperSpriteComponent的配对,从共有的FPaperRenderSceneProxy父类删除一些代码。
  • 新增: 对平铺贴图支持的巨大改进(仍处于试验阶段,必须在Paper 2D项目设置中启用)。
    • 添加平铺贴图上的不同投射模式的有限支持(正交,等距,以及错开的等距;仅正交与编辑器内的编辑共同作用)。
    • 添加平铺设置可调整的间距和边缘值(间距是贴图中每个平铺的间隙,而边缘是边界周围的缝隙)。
    • 添加X轴和Y轴中每个平铺的可调整Z轴偏移,以及在使用覆盖的等距平铺时,每个图层允许对Z轴冲突的修复。
    • 添加拖放平铺设置以创建新平铺贴图actor的能力(仅设置平铺宽度和平铺高度为默认值)。
    • 添加占位符独立的平铺贴图编辑器(尚未进行大量编辑)。
    • 添加组件资源中断符,让贴图组件可以在蓝图中使用。
    • 向平铺图编辑器添加了平铺图渲染边界的显示文本。
    • 添加对拖曳平铺贴图资源到编辑器视口以创建平铺贴图actors的支持。
    • 对平铺设置和平铺贴图的编辑现在可以刷新放置的平铺贴图实例。
    • 废弃了图层范围内的平铺设置指针并删除了几个伪应用。。
    • 使得平铺设置查看器/编辑器将半透明/蒙板贴图变得半透明。
    • 移动几何体生成的一部分为游戏线程而非逐帧的一次性的步长值(尚未完成)。
  • 改进了各种类型和方法的注释。
  • 改进Texture Packer (贴图打包)Json导入器处理,使得可以正确处理旋转、剪辑以及支点选项。
  • 改进的源区域编辑性能。
  • 转换UPaperSpriteComponent使之衍生于UMeshComponent。
  • 强制不透明精灵图标部分的线框颜色为绿色(适合GPU的颜色)。
  • 对UPaperSprite的详细信息面板自定义的用户体验改进。
  • 移除编辑器样式的Paper 2D 贴图使用和依赖。
  • 如果精灵图标上无碰撞则移除对碰撞几何体调试文本的显示。
  • 重命名贴图关联菜单命令'Configure For Sprites'(对精灵图标的设置)为'Configure For Retro Sprites'(对Retro精灵图标的设置),从而更好地反映其执行的函数。
  • 修复bSimulatePhysics无法在蓝图编辑器内对UPaperSpriteComponent进行设置的bug。
  • 修复当PixelsPerUnrealUnit不为1.0时,在源视图内进行双击时的不可靠操作
  • 修复当烘焙二维内容时的可能的断言(添加对相关贴图的ConditionalPostLoad调用以防止在打开旧有的精灵图标时的载入时间顺序问题)。
  • 修复使用默认插件材质的放置资源的外部内容引用警告。
  • 修复导致带光照精灵图标的伪光照的FPaperRenderSceneProxy中的破损切线计算。

平台

WINDOWS操作平台
  • 新增: 针对对Win64/Win32系统添加了函数来侦测连接的鼠标。
  • 新增: 在游戏/编辑器运行时,Windows辅助功能现在被禁用。
  • 和其他构建选项一样,Windows XP现在也可以在BuildConfiguration.xml中启用。
  • 针对Launch On(启动于)和File|Package/File|Cook操作的编辑器解析添加了错误代码,以便我们可以追溯用户在这些过程中遇到的错误,更好地改进用户工作流程。
  • 安装的SDK在编辑器启动时检查。这让我们支持的所有平台上都可以使用特定的编辑器构建,从而在菜单上显示。受支持但尚未安装合适的SDK的平台将在点击菜单命令时启动SDK安装的教程。
  • 对windows上OpenGL 3.x的缺失OpenGL扩展和入口点的bug修复。
  • 修复IPP相关的问题,如果移动设备条款更新了,那么它会正确地将其复制到条款库。
  • 为平台添加了新API,使得能检测到是否所有内容都准备好/安装好以供构建、烘焙、打包、部署以及游戏运行。
MAC操作平台
  • 新增: 添加了在自包含的Mac应用程序包中使用二进制或第三方库的支持。
  • 新增: 添加Close(关闭)到Mac菜单栏中的Window(窗口)菜单 (Cmd+W)
  • 新增: 不再把Mac上的Ctrl和Cmd键作为相同的键来处理,并可被分别指派到快捷方式。
  • 新增: 延迟的更新离屏的1x1工具提示窗口以改进Mac的编辑器响应能力。
  • 新增: 为较慢的任务实现了一个Mac OS X原生响应窗口,该窗口显示了进度、可选日志,并提供了取消该操作的功能。
  • 新增: 目前可破坏网格物体编辑器中的网格物体破裂功能可以在Mac上正常工作。
  • 新增: 重构菜单代码以使用Mac菜单栏而非自定义的每个窗口的菜单。
    • 主菜单现在也像其他Mac应用程序一样反映当前聚焦的窗口。
    • 位于菜单栏的关卡编辑器控件现已移动到窗口的标题栏。
  • 新增: 编辑器将保存项目plist(对iOS来说,位于项目设置中)到Game/Build/Info.plist。这个与先前版本不同,在先前版本中其被存储到Game/Build/Game-Info.plist。此时,编辑器和工具将继续查找Game-Info.plist,但其在将来会被废弃。
  • 新增: 更新Mac到p4api-2014.1,这样可以支持SSL的连接。
  • 新增: 更新Mac OS X版本的检查,如其版本低于10.9.4则警告用户,并修复此项检查,使之不再将10.10视为低于10.9.1
  • 修改Mac的触控板检测,使其仅在至少两只手指触碰时才报告触控板。这样将会减少玩家在使用鼠标 + WASD时无意触碰触控板所造成的问题
  • 在使用MTGL时不禁用对glMapBuffer的使用,因为有一个OpenGL的bug会导致渲染错误。
  • 对OS X上的OpenGLRHI显示GPU中的VRAM数量。
  • 改进UE4EditorServices中枚举已安装的引擎版本的代码,使之不会包含不完整或已删除的安装。
  • 改进SNodePanel中对Magic Mouse和触摸板的鼠标右键处理。
  • 对Mac IME支持的改进:
  • 显示由弹出的字形选择窗口编辑的范围。
  • 在IME结束时,正确地清除已标记和组成的范围,使得之后的输入和点击能按预期正常运行。
  • 确认在编辑器组成范围时,插入符号正确更新。
  • 在OS X上,使用uuid_generate而非实现我们自己的GUID生成。
  • 在 Mac对UBT进行优化。现在其决定对象是否过期要比之前所花的时间要短得多。
  • 仅在需要时在glTexStorage调用后刷新,以避免抑制GPU不受影响的Mac的性能。
  • 移除OS X的GL_TEXTURE_BUFFER解决方案,当前OpenGL驱动的修复为10.9.4。
    • 目前所有的Mac都将使用GL_TEXTURE_BUFFER路径,但除了运行10.9.3的2013 Mac Pro外其它一切都将正常运行。
  • 停止使用Cocoa的子窗口机制,因为其不是我们所需要的。
    • 拉开样式或面板样式的窗口将悬浮于普通窗口上方。
    • 所有出现在显示/空间/任务控制的窗口都是系统窗口循环的一部分。
    • 模式窗口的处理方式略有特殊,以确保最近显示且当前仍打开的模式窗口保持在顶部,并尝试使用可视化显示失败指示来改变聚焦失败。
  • 修复了如果共享的DDC文件夹没有安装在Mac上时,产生编辑器创建/体积/UE4DDC文件夹的问题。
  • 修复使用Magic Mouse缩放蓝图及材质编辑器视口的问题。
  • 一些其他小问题的修复。
移动设备平台
  • 新增: 添加安装iTunes和移动平台服务的编辑器内教程。这些教程会在您启用设备或对您的应用程序打包时自动出现。
  • 新增: 添加对移动设备的植被实例化的网格物体的支持。
  • 新增: 添加对许多针对iOS部署和打包错误的扩展的错误检测和编辑器内帮助,并在不断地改进Android设备的兼容性。
  • 新增: 添加对移动平台材质上的PerInstanceFadeAmount支持。
  • 新增: 现已支持ES2上的BlackBody材质表达式。
  • 编辑器将保存项目plist(对iOS来说,位于项目设置中)到Game/Build/Info.plist。这个与先前版本不同,在先前版本中其被存储到Game/Build/Game-Info.plist。此时,编辑器和工具将继续查找Game-Info.plist,但其在将来会被废弃。
IOS平台
  • 新增: 对蓝图添加基础的iOS应用程序内购支持。
    • 在给出产品id的情况下,查询产品信息。
    • 根据id来进行购买指定产品。
  • 新增: 改进了金属支持 (最高达Beta 4/5)
  • 新增: 增加了个体文件大小,以防止在iOS上的跳跃距离连接器错误。
  • 新增: 在模块的Build.cs文件的PublicAdditionalFrameworks中指定的iOS框架现在将会把头文件目录添加到头文件搜索路径。
  • 修复当为策略游戏和平台游戏从Mac部署到iOS平台时,未能找到设备的问题。
ANDROID平台
  • 新增: 添加平台历史。在文本输入上左右滑动以选择上一种平台输入。
  • 新增: 添加对虚拟键盘Slate控件(SVirtualKeyboardEntry)的支持
  • 新增: 添加对adb的调用,它会在在启动游戏前发送输入以解锁屏幕。
  • 新增: Android Back输入作为Special Left的别名以改进简洁程度。
  • 新增: 在从编辑器中启动到锁定的设备时,屏幕现在在游戏启动前解锁。
  • 如果不支持半浮点贴图,那么则允许有FloatRGBA的立方体贴图被转换为RGBA,,将值限制为0.0到1.0。
  • 移除在使用编辑器打包时控制台日志中的额外空白行。
  • Tappy Chicken
    • 添加'Android Back'以在Android中支持特定返回按钮。
  • Android兼容设备列表
    • LG G2 (LG-LS980)
    • 三星Galaxy Note 3 (SM-N900)
    • 三星Galaxy Note 3 (SM-N900P)
    • 三星Galaxy S 2 Intn'l (GT-I9100)
    • 三星Galaxy S 4 mini (GT-i9190)
    • 三星Galaxy S 5 (SM-G900H)
    • 三星Galaxy Tab 3 10.1 (GT-P5200)
    • NVIDIA Shield
    • 请参阅 Android设备兼容性维基页面 以获得更多信息。
XBOX ONE平台
  • 新增: 改进了孤立的Xbox Live会话的处理和清理。
  • 新增: 添加了Xbox Live电脑在线子系统服务器模块的初始版本。
  • 新增: 默认情况下引擎被设置为使用2014年7月的QFE1 XDK。
  • 在HandleSpecialUnlock中的最优化缓存刷新。
  • 已修复对仅有内容的项目打包时会给出空文件组的错误。
  • 略微优化了贴图烘焙时间。
  • 修复多个贴图平铺破损bug。
  • 修复在Xbox Live会话管理中的崩溃。
  • 修复在用户接受Xbox Live游戏邀请时,如此时游戏没有运行所造成的不触发FOnSessionInviteAcceptedDelegate的问题。
PlayStation 4平台
  • 新增: Morpheus DVT 1.1支持!
  • 新增: 改进的Morpheus支持,包括来自于索尼对DVT硬件支持、着色器以及追溯的诸多修复
  • 新增: ICU支持!
  • 新增: 对将PlayGo块写入哪个蓝光图层的游戏控制。
  • 新增: 游戏特定的coredump处理。
  • 新增: 运行时将调用栈地址的转换为函数名称。
    • 当未连接到调试器时,失败的断言现在会把解码的调用栈函数名称转存到PS4控制台输出。
  • 更好地处理GPU超时 - 修复在调试和处理由于CPU/GPU的剃刀工具捕获导致的超时所触发的无效超时检测问题。
  • 缓冲清理修复 - 如首个MRT对象没有CMask,修复对潜在的MRT对象的双向清理。在清理CMask缓冲前刷新CMask缓存。
  • FUniqueNetIDPS4使用异步NPID查找。
  • HTTP请求恰当地处理200个范围内的响应代码。
  • 修复Morpheus渲染以使游戏/渲染进程可以再次并行运行。
  • 条带粒子优化。
  • 对PlayGo和非PlayGo打包的多种打包修复。
  • 修复着色器SDB输出文件夹路径(现在转存到\Saved\ShaderDebugInfo\SF_PS4\sdb)
  • 修复使用陈旧的均匀缓冲器GPU粒子造成各种失真的问题。
  • 修复测试工具包上由调试键盘导致的Development(开发)版本崩溃的问题。
  • 修复FGnmDynamicRHI::RHIUpdateTexture2D中错误的类型转换。
HTML5平台
  • HTML5现在需要Emscripten SDK 1.21。您可以从以下网址安装:http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html。请注意: 这是Emscripten SDK的新位置。

模板

  • 新增: 更新了TP_2DsideScrollerBP,使之在多人情境中更好用。
  • 新增: 驱动控制器旋转而非本地旋转。
  • 新增: 启用精灵图标翻书贴图组件的复制(服务器->客户端已可正常运行,但是客户端->服务器仍需RPC)。

SLATE

  • 新增: 当用户在Slate外点击时,Slate控件现在可以通过注册/取消注册来获取通知。
  • 新增: Slate画刷现在支持对图片的镜像。
    • 使用FSlateBrush上全新的“Mirroring(镜像)“变量,您现在仍可以设置它
  • 新增: SAssignNew现在可以分配给TSharedRef。
  • 新增: SWidget::OnPaint()和SWidget::Paint()的签名现在已改为包含一个FpaintArgs类型的额外参数。
    • 对Super::OnPaint()的调用直接传递FPaintArgs参数。
    • 在绘制子控件时,传入Args.WithNewParent(this)给ChildWidget->Paint()。
  • 修复在按下ESC键以锁定聚焦时的WidgetReflector销毁ESC键的bug(导致按Play会退出)
  • 修复了使用自定义Slate描画要素的一种竞态情形。

物理

  • 新增: 新建约束可视化。我们现在使用红绿蓝色的三个扇形,它们应能更容易地在PhAT中使用。
  • 新增: 为径向伤害添加了伤害预防渠道。
  • 新增: 对蓝图显示禁用的约束物理碰撞。
  • 新增: 显示来自PhysX的更多节点API。
  • 新增: 显示约束的角度引用帧偏移。
    • 在蓝图编辑器内,我们无法修改引用的约束帧。这个新值让我们可以手动设置它。
  • 新增: 对更为慢速的解析重叠模拟对象显示最大非渗透速度。
  • 为拖曳/放置操作而移除对非碰撞对象上的碰撞启用。现在对可见性轨迹不应有碰 撞响应。
  • 简化的导航群集图表以此仅作为快速‘路径存在‘检查。
  • 自MovementComponent的停止移动将会退出路径跟随。
  • 重新在APEX中启用RT销毁。我们尚不直接支持此功能,但APEX库将会把此标识重新启用。
  • 重叠检查系统性能: 蓝图重叠查询现在会检查异步场景。
  • 改进PhAT内的撤销操作。
  • 改进PhAT约束的复制和粘贴操作。
  • 改进bSimulatePhysics编辑可扩展性。
    • 添加UPrimitiveComponent::CanEditSimulatePhysics,以使单个组件能决定模拟是否能在其物理设置下起作用。
    • 如投射树位于详细信息面板自定义中则替换。
    • 修改了基础UPrimitiveComponent的行为,这样如果*组件*上而非BodyInstance上具有有效的刚体设置,则其将可编辑
  • 为样条曲线网格物体修复"UseConvexAsSimple"碰撞。
  • 修复在使用柔和顶点创建多凸面壳体时PhAT中的崩溃
    • 这实际上是不支持的,但编辑器将会触发警告而不会发生崩溃。
  • 修复了错误地将最大角速度传递给刚体实例的问题。
  • 修复PhAT为非树叶刚体添加新刚体而非创建节点的问题。
  • 修复PhAT删除非树叶刚体以便使关节自动修正的问题。
二维物理约束
  • 新增: 可以更轻松地将三维物理刚体约束到二维平面(每个刚体或项目的宽度)。

音频

  • 新增: 添加多渠道支持到Opus文件格式。
  • 新增: 添加对Opus文件格式的不同示例速率的支持。
  • 新增: 添加在Windows上对音频动态载入的早期实验性支持。在之后的版本中将会对其进行改善。
  • 从AudioDecompress.cpp/h中分割Opus和Vorbis类
  • 从虚幻引擎3音乐系统中移除残内容。
  • 在从内容浏览器中打开SoundClass编辑器时,将会选中编辑的SoundClass并显示其值,而非SoundClass层次结构的SoundClass根值。
  • 防止完整的音频数据以动态载入声音的方式被烘焙/载入。
  • 防止在按下动画预览按钮直接设置回放位置时,声音和其它通知的播放。

实时动态载入插件支持

  • 新增: 添加了针对游戏和编辑器的实时动态载入插件API!
    • 实现了向实时动态载入网络进行实时的 视频/音频  广播
    • 支持在编辑器和游戏内显示您的网络摄像头。
  • 新增: 对虚幻编辑器的动态载入实时广播的实验性支持(尚不可使用)
  • 新增: 对Twitch广播的实验性支持(尚不可使用)
    • 您需要获取Twitch SDK并自己编译引擎来尝试
    • 应用向Twitch进行实时 视频/音频 广播
    • 支持在编辑器和游戏内显示您的网络摄像头
    • 使用基于浏览器的验证来登录到Twitch
    • 注意: 在法律允许的范围内,Epic无法发布Twitch SDK给您。请参阅/Engine/Source/ThirdParty/Twitch/InstallingTwitchSDK.txt以获得更多信息。

动画

  • 新增: 为角色编辑器添加了预览根骨骼运动的支持。
  • 新增:其他的角色编辑器易用性改进
    • 重命名角色编辑器动画滑动菜单及工具提示,使之对用户更为好用。
    • 修改AnimNotify使之支持所有的AnimSequenceBase。
    • 角色编辑器默认布局按每个选项卡进行改变。主要对骨架/网格物体选项卡进行了简化。
    • 变更自定义插槽为网格物体插槽。
    • 支持资源选取器的缩略图大小并为Persona来调整它。
    • 变更默认情况下的选项卡资源选取器为列表视图。
    • 为每个选项卡添加工具栏 - 导入/重新导入/创建资源。
    • 调整添加型设置使之获得更好的警告。
    • 修复多个Persona被打开情况下的菜单项目以多次显示。
  • 新增: 添加动画资源的缩略图 (AnimSequence, BlendSpace, AnimComposite, AnimMontage, AnimBlueprint)。
  • 新增: 添加动画蓝图的骨骼驱动控制器的骨架控制节点。
  • 新增: 添加鼠标悬停时对Personas资源浏览器的悬浮动画资源预览。
  • 新增: 添加在Persona视口中的显示信息选项,诸如基础信息,详细信息以及无。基础选项和静态网格物体编辑器一样简单。
  • 新增: 在Persona中添加保存动画资源菜单。
  • 新增: 对每种动画编辑器类型添加动画锚点.
  • 新增: 动画蒙太奇插槽名称在插槽为空的情况下会显示错误信息以提供有效的插槽名称。
  • 新增: 添加的骨架插槽不再修改骨架网格物体。
  • 新增: 蓝图和本地通知现在可以使用新建本地事件自定义其在通知面板中的名称。
  • 新增: Persona中的骨架现在即使在隐藏状态下也可以选择,只要网格物体具有物理资源设置。
  • 新增: 现在双击动画图表的玩家节点可以打开该资源的相关编辑器。
  • 新增: 变更Persona轨迹中的缩放使之基于鼠标位置而非轨迹中心。
  • 新增: 创建并行动画评估的自定义图表任务以降低系统消耗。
  • 新增: 按住Shift并点击递归调用扩展/合并现在也可以运行于Persona骨架树。
  • 从所有的Persona模式条的骨架中移除重定向UI。
  • 改进Persona工具提示以及互动教程。
  • 移除单击动画预览,采用悬浮预览。
  • Persona的动画模式中的视口修改栏被移除。
  • 将通知面板删除绑定从Persona中移除并移入面板中,以停止Persona对所有删除命令的消耗。
  • AnimSequence.bLoopingInterpolation标识被移除。如果您想要从末帧添加插值到首帧,请使用Persona中的菜单(添加循环插值)。
  • 更新引擎层面的蓝图通知以利用新建自定义命名函数。
  • 修复在运行"静态网格物体UVs"测试时的崩溃。
  • 修复缩略图代码有时使用不正确缩略图的问题。
  • 修复在设置新动画时不重置时间的问题。
  • 修复在参数变更时混合空间参数更新不正确的问题。
  • 修复向量化的FTransform的不匹配名称。
  • 修复冻结之后悬浮预览的空白动画资源
  • 修复与外力抵触的根骨骼运动,使之仅在根骨骼运动蒙太奇播放时才应用。
  • 新增: 轨迹函数现在接受向量的文本值
  • 新增: 动画蓝图现在在事件图表中创建默认所有者节点/更新节点。
  • 在同一时间位置的AnimNotifies现在被保存在其轨迹索引序列中
FBX
  • 所有的FBX错误和警告现在都被链接到文件页面并且有解释性的工具提示。
  • 修复在导入缺失骨骼影响的顶点时的可能崩溃。

在线

  • 修改了VoIP代理处理以确保"开始/停止 通信"总被捕获。这可以防止可能的崩溃。
  • 修复Xbox LIVE实现中的崩溃bug。

网络

  • 新增: 对网络分析器的多个UI改进。
  • 新增: 对网络分析器的多个UI改进。
  • 对异步网络对象载入代码的诸多更新。
  • BSD IPv6 SetIp函数已被更新以正确解释端口号。
    • 修复在命令行上通过UnrealFrontend传递端口号时的网络文件系统部连接的问题。
  • 客户端现在会在载入资源前确认其具有和客户端完全相同的包。
  • 诸多ULocalPlayer管理清理(使其对于离线/在线游玩的分屏玩家管理更为容易)。
  • 射击游戏菜单管理清理,统一的对话框支持,等等。
  • 射击游戏现在支持对不同失败例子的诊断信息,让射击游戏变得更容易在游戏机平台使用,并证明这些OSS APIs是合适的。

核心

  • 新增: 为模块添加了PostEngineInit载入阶段,这使得在GEngine/GEditor被创建后,模块可以被注册。
  • 新增: 可在命令行上覆盖配置选项。使用以下格式:
    • ini:IniName:[Section1]:Key1=Value1,[Section2]:Key2=Value2
  • 新增: 在虚幻pak中添加文件系统区块校准选项。防止小文件跨文件系统区块界限,它们会在某些平台上产生性能冲击。以下选项可以帮助降低性能消耗。使用–blocksize=X[KB|MB]以启用。
  • 添加ENGINE_API到FComponentInstanceDataBase,使之可被用于其它模块。
  • 添加取入多个文件的ISourceControlLabel::Sync()重载。
  • 新增: 添加在某个文件无法在项目更新时被删除的恰当错误信息,并添加功能在需要的情况下来迁出项目文件。
  • AActor::OwnedComponents将不再作为UPROPERTY显示,因为它造成了序列化问题。
  • 新增: 记录对象的生命周期的FScopedDurationTimerLogger类。
  • 新增: FReferenceCollector具有新建的辅助成员函数: 重载的AddReferencedObjects接受TArrays, TMaps和TSets。
  • 新增: FBlackboardKeySelector::AddRotatorFilter现在使用CreateNamedObject。
  • 新增: 使得UPrimitiveComponent::GetUsedTextures为虚函数。
  • 新增: 当前也会搜索插件目录以查找项目模板。
  • 新增: PCIP.SetDefaultSubobjectClass和PCIP.DoNotCreateOptionalDefaultSubobject将不再被用于类初始程序列表之外的内容。
  • 新增: TArray的稳定排序算法。相比传统排序,速度要慢,但它保持相同元素的输入顺序不变。*
  • 新增: ScriptPlugin现在支持脚本生成的蓝图类,并能将任意蓝图类设置为基类。
  • 新增: TLinkedList和TDoubleLinkedList现在支持C++11的syntax范围。
  • 新增: TUniqueObj构造函数现在会在可变参数模板不可用时支持0-4参数。
  • 新增: TArray::Emplace现在会在可变参数模板可用而0-4参数不可用时支持任意数量的参数。
  • 新增: 在VS2013版本中启用对可变参数模板的支持。
  • 变更FGameplayDebuggerExec::Exec(...)以使用TActorIterator而非FActorIterator。
  • 清理StringClassReference。此类现在是StringAssetReference的子类并应类推。
  • 编辑器内的重命名现在也支持StringAssetReferences。
  • 对UMeshComponent的改进,并将其作为基类。
    • 更新了UMeshComponent::PrestreamTextures和UMeshComponent::SetTextureForceResidentFlag以清理GetUsedTextures并使之称为虚函数。
    • 修复在通过UMeshComponent::SetMaterial来尝试扩展材质数组时的数组绑定断言
  • 新增: ParticleSystemAudit命令行开关已从虚幻引擎3中恢复。它使用资源注册表而非数据库。
  • 如其查找到的玩家控制器不是首个本地玩家控制器,则让FGameplayDebuggerExec::Exec来清理重复符(并因此而未能创建/启用工具)。(不应发生,但之前没有做正确的保护。)
  • 虚幻引擎启动程序不再在Visual Studio或Xcode中调试时载入。
    • 添加能覆盖它的新命令行参数"-ForceLauncher"。
  • 更新贴图动态载入代码,从而能对所有UMeshComponent衍生类做相同处理,使得USkeletalMeshComponent或UStaticMeshComponent的特殊处理变得通用。
  • 然后使用FEditorStyle中的硬编码搜索的一些位置转而使用FClassIconFinder(让您可以在您的模块中指定类图标)。
  • 从ScriptPlugin中移除ScriptAsset, ScriptFunction和ScriptActor类
  • 移除如关闭内联扩展会造成CoreUObject模块中多个模板失败的DLLEXPORT说明。
  • 如果UField的工具提示不存在,转而使用域名。
  • 修复‘stat unitgraph’不出现在控制台自动完成的问题。
  • 修复来自于源控制的文件复制不包含分支历史的问题。
  • 修复在使用'stat dumpframe'时不显示self/otherchildren(自有/其它子项)的问题。
  • 修复造成低频率GB发生于不恰当时间的bug。
  • 修复在项目模块载入失败时的崩溃问题。
  • 修复在强制发布版本中的STAT为true时产生的编译器错误。
  • 修复FMallocBinned中的ValidateHeap()和dumpAllocatorStats()的多线程崩溃。
  • 修复在命令行上启用窗口模式时无法切换全屏模式的问题。
  • 修复在插件模块不存在于启动程序时产生的启动时编译的问题。
  • 修复在对象不匹配游戏名称处的编辑器编译问题。
  • 修复在非美国的 国家删除UnrealBuildTool环境变量的问题。
  • 修复分支创建多个文件的问题。
  • 修复FTransform详细信息自定义对包的修改不正确的问题。
  • 修复字符串中心的FString::InsertAt插入无效字符的问题
  • 修复由于启动无激活的关联内容的组件而造成基于IME的IMM崩溃的问题(例如,如果您在编辑器视口有聚焦的时候输入文字)
  • 修复在ULinkerLoad已经由VerifyImport通过重定向来创建时不再尝试重新创建导入的问题。
  • 修复当无对象平台在命令行中被明确指定时,BuildCookRun自动命令会选取当前运行的平台而不总是Win64的问题。它修复了在使用BuildCookRun时的Mac问题。
  • 修复其它动态载入包的导入列表中的未知脚本包,现在它会被恰当地进行处理而不是崩溃。
GAMEPLAYDEBUGGER模块变更:
  • 添加功能(可通过模块接口来访问)以供在给定特定玩家控制器的情况下创建调试actor。
  • 变更GameplayDebugger NOT从而在添加玩家控制器时自动创建调试actor。
  • 其正在使用的信息仅发生于编辑器内,因此在游戏中不起作用。另外,在游戏中,我们并不需要每个玩家控制器都创建调试actor。因此,现在由每个用户来决定使用哪个控制器来创建调试器。
  • 为玩家控制器创建调试器的正确方法是让玩家控制器实现PostInitializeComponents(),在该处(在调用Super函数实现后),它可以调用如下代码:
  • CodeSnippet
更快的C++编译时间
  • Engine 中的268 个头文件具有多余的include声明, 根据使用原则修复了其中的205个。
  • 从Engine 模块的私有预编译头文件中删除了 17 个不必要的include声明。
  • 作为持续改进编译时间的成果, 一些includes已经被从公共头文件中移除了 。移除的文件如下所示。您可能需要添加以下这些头文件到您的项目源代码中,以防其无法编译。
    • RenderUtils.h
    • Debug/DebugDrawService.h
    • KeyState.h
    • SceneManagement.h
    • ShaderParameters.h
    • ShaderCore.h
    • ShaderCompiler.h
    • ShaderParameters.h
    • MaterialShared.h
    • PrimitiveUniformShaderParameters.h
虚幻构建工具改进
  • 新增: 变更UBT来编译标识以供其在DebugGame配置到整体游戏中运行(无需再指定-debug)。
  • 新增: 添加更好的冗长调试输出以检测使用共享PCH头文件的问题。
  • 新增: 更快的启动时间(降低扫描Uobjects的包含文件的时间)。
  • 新增: UBT现在为VS2013添加了VCToolChain中的/FS标志,以确保使用PDB的并行编译能正常运行。
  • 新增: UBT现在检测再发布依赖的违反情况。模块可被标记为可再发布或不可再发布 -- 主要取决于所处位置,Editor和Development文件夹模块是不可再发布的,但其可在必要的情况下被重载覆盖。在非调试和非编辑器版本中,UBT会检测构建的游戏是否依赖于一些不可再发布的模块。同时程序也不会验证程序。
  • UBT将不再使用ini文件来获取插件列表以供程序编译。项目目标规则文件应制定编译的插件。
  • UnrealBuildTool的性能: 禁用了发布版本中的冗长输出。
    • 发布版本中默认不会再定义TRACE。
    • 如果您想要bPrintDebugInfo正常运行,请使用Debug(调试)版本或定义TRACE为1。
  • 修复提供共享的PCH而在整体版本中不生成且使用其独有PCH的模块。
  • 修复整体版本检测不到在头文件名称不同时需要独特的PCH来使用提供共享的PCHs的模块的问题。
  • 修复在插件静态库被修改后,UnrealBuildTool不重新链接对象的问题。忽略了相关性,因为其生产操作被标记为创建导入库。
UNREALHEADERTOOL
  • 移除'ScriptPlugins' ini设置。插件将会根据其在uplugin文件中指定的“目录”来被发现(对UHT来说,它应使用“UnrealHeaderTool.Code Generator”作为前缀。)

已知问题

  • 有一个IPP相关的问题,即如果用户尝试使用具体的应用程序id(com.yourcompany和com.yourcompany.gamename.*相反)来导入移动平台规范 ,那么它将无法找到导入的移动平台规范。解决方法如下:
  1. 创建由通配符表示的移动平台规范。这很可能是最容易的解决方法,并且此规范将对任何您在开发中的游戏都有效。
  2. 在您的Game/Build/IOS目录创建Info.plist。您可以使用模板i