虚幻引擎4.4版本说明

Windows
MacOS
Linux

虚幻引擎4.4具有我们的第一个预览版虚幻运动图形技术、我们新的UI设计和脚本工具集。此外,在这个版本的行为树编辑器中,我们的AI逻辑工具在默认情况下是启用的,并且可以让所有人使用!您还将看到Persona动画编辑器和Paper 2D的许多改进。现在对Android和iOS平台的支持甚至更好了,C++编译也更快了。许多新的市场版本已经为4.4版做好了准备!我们正在发布Landscape Mountains样本、Matinee战斗场景、Mixamo动画包和Paper 2D和网络的新内容示例地图。务必去市场上获取这些新样品 - 它们对订阅者是免费的。

我们要感谢所有为即将到来的4.4版本贡献代码的优秀开发人员。

Alex Silkin (alexSilkin)、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-angel)、thk123、Wesley Hearn (wshearn)。

主要新功能

新内容:虚幻运动图形技术(UI编辑器预览)

虚幻运动图形(UMG)技术是我们新的实验性交互式UI设计和脚本工具!

UTMainMenuMockup01.png

这个新的控件编辑器工具允许您在交互式画布上布局UI,并实时创建和预览动画。UMG与蓝图深度集成,因此您可以轻松地连接事件来触发游戏进程更改。UMG构建在Slate UI系统之上,继承了许多非常棒的优点,比如大量的UI控件和一组丰富的特性。

虚幻运动图形技术目前是“实验性”的4.4版本。它还没有完全准备好用于生产,并且可能不向后兼容,但是我们希望您尝试使用并发送反馈!要访问UMG,请在编辑器首选项的实验部分中启用它。

详情请查看我们的4.4版本的UMG文档和我们的演示视频

免费的市场内容

Landscape Mountains - 在这个用世界机器构建并使用UE4的植被和材质系统装饰的展示中,通过悬挂式滑翔机航行穿过广阔的山脉。看看使用UE4和Landscape Mountains创建一个高端的现实主义景观与美丽的山脉是多么简单!

LandScapeMountains.png

Matinee战斗场景 - 了解如何通过挖掘这个使用Matinee构建的战斗场景创建惊人的过场动画,就像专业人士那样。从动画角色到VFX,您将继续了解如何在编辑器中控制一切。初步了解我们的教程和一些简单的Matinee指导

MatineeFightScene.png

Mixamo动画包 - Mixamo为您的项目提供了一个免费的角色和动画包。包含15个动画角色,游戏的原型设计从来没有像现在这样简单!

Mixamo.png

新的Paper2D内容示例地图 - 涵盖与2D游戏创作相关的几个主题,包括:通过Sprite编辑器创建和编辑Sprite,允许您使用Sprite和关键帧创建动画化2D资源的Flipbook,如何使用蓝图控制Flipbook,将物理添加到2D资源,以及如何为Sprite创建经典的低分辨率像素外观。详情请查看随附的Paper2D文档

Paper2DExamplePic.png

新的网络功能内容示例地图 - 说明如何通过蓝图完全实现网络功能。复制部分中的示例展示了在服务器和客户端之间正确传达信息的方法,以及何时使用不同的技术。相关性部分中展示的示例演示了如何处理Actor变得相关的情况,例如当玩家加入正在进行的现有游戏时。执行此操作时请浏览文档

NetworkingFeatureContentMap.png

行为树

新内容:现在可以使用行为树编辑器了!

BehaviorTreeMainPic.png

行为树编辑器允许您在交互式图表编辑器中编辑AI状态逻辑。我们已经对这个工具进行了几个月的稳步改进,我们认为它已经可以在每个人的游戏中使用了!

执行顺序指示器

节点现在有指示器来显示它们将在父范围内执行的顺序。将鼠标悬停在这些指示器上也会突出显示树中相同级别的指示器:

BehaviorTree01.png

调试时,指示器显示树中的总体顺序:

BehaviorTree02.png

节点工具提示

所有内置节点现在都有解释其功能的工具提示。将鼠标悬停在节点上便可查看它的功能。

BehaviorTree03.png

材质

新内容:透明涂层着色模型!

新的 透明涂层 着色模型使得设计顶部有半透明涂层的材质更加容易。

ClearCoat01.png
(注意斑点是在材质编辑器中完成的,不是着色模型的一部分)

这可以用于多层材质,其中,在标准材质(金属或非金属)的表面有一层半透明的薄膜。它专门设计用于在非有色金属上为此第二类光滑彩色薄膜建模。

这些例子包括丙烯酸或喷漆透明涂层,以及苏打罐和汽车漆等金属表面的彩色薄膜。

公开了两个新参数:

  • 透明涂层(Clear Coat)。透明涂层数量,0为标准着色模型,1为全透明涂层模型。这对遮罩很有用。

  • 透明涂层粗糙度(Clear Coat Roughness)。透明涂层的粗糙度。我们的近似值对较小数值是准确的。支持非常粗糙的透明涂层,但对比其现实世界的对手不会很精确。

新内容:管道光源

感谢伟大的社区提交,全局光照光线跟踪器现在支持胶囊体形状的点光源。

TubelightLightmass.png

Paper 2D

Paper 2D Sprite分割

Paper 2D Sprite现在可以分割!

Paper 2D Sprite现在可以分割!这将半透明/遮罩区域和不透明区域分开,降低了GPU渲染它们的成本。

要使用此功能,请将渲染几何体类型设置为分割(Diced),并确保将替代材质设置为资源上的不透明材质。

SpriteDicingPaper2D.png

Persona

改进的动画编辑工作流程!
  • 简化的Persona UI。我们已经改进并简化了Persona中每个模式的布局。

SimplifiedTabs.png

  • 新工具栏!Persona中的每个模式现在都有一个包含常用操作的工具栏。

PersonaToolbars.png PersonaToolbars2.png

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

AnimationThumbnail.png

  • 动画自动预览。您现在可以通过将鼠标悬停在资源浏览器中的资源上预览动画序列。

PreviewTooltip.png

  • 保存所有动画。增加“保存所有动画资源(Save all Animation Assets)”的功能到Persona中的文件(File)菜单。

SaveAllAnimations.png

  • 选择隐藏的骨骼。现在,您可以在视口中选择隐藏的骨骼(网格体必须具有物理资源)。

SelectBoneHidden.png

  • 内联帮助链接。现在您可以使用右边的新帮助链接轻松地为每种动画编辑器类型执行“跳转到文档”操作

MontageErrorMessage.png

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

MeshDetailView.png

  • 动画导入帮助。从FBX文件导入动画时发生的任何错误现在都将在消息日志中有详细的帮助描述。

FBXImporting.png

  • Shift+单击 现在可以用于扩展/折叠骨架树中的层级。

  • Persona视口中的显示信息现在已经简化为仅显示基本信息。

  • 当使用无效的名称作为蒙太奇槽时,将显示一条有用的错误消息。

  • 动画“重定向(Retargeting)”选项现在只显示在骨架(Skeleton)选项卡中。

  • 动画编辑器中的缩放功能现在根据当前鼠标位置进行缩放。

  • 最后,所有引用资源的AnimGraph节点现在都支持 双击 打开资源进行编辑。

蓝图

新蓝图节点:在结构中设置成员

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

BlueprintSetMembers.png

新蓝图节点:设置定时器委托

此节点使在您选择的特定间隔内很容易运行自定义事件。您可以选择使用“循环(Looping)”复选框来重复调用事件。

BlueprintSetTimer.png

平台改进

对移动工作流程进行了大量的改进,包括提供编辑器内教程以帮助进行设备配置。新的图形功能可以在移动设备上使用,例如实例化的植被。Mac版的虚拟编辑器现在响应速度更快,菜单体验也得到了改善,还做了其他几十项修改。Android甚至支持更多的设备,您现在可以从蓝图脚本访问应用程序内购买功能!

请参阅下面的变更列表的其余部分,以获得您最喜欢的平台详细改进项目列表!

编辑器

新内容:将Actor对齐到表面!

变换工具栏上有一个新按钮,允许您在拖动Actor时将它们投射到世界场景中。这对于将对象放置到复杂的几何体上非常有用。

SnapActors01.png

对齐的工作方式有两种,一种是通过拖动平面进行投影(如果您在一个受约束的平面中拖动),另一种是通过在屏幕空间内将Actor投影到世界场景中(当拖动所有3个轴时)。

SnapActors04.png

物理

新内容:简单的2D物理约束!

引擎现在支持轻松地将3D物理对象约束在2D平面内。这应该有助于3D侧滚轮。

2DphysicsConstraints.png

该设置可以应用于每个对象,也可以通过更改项目物理设置应用于整个项目。

在默认情况下,布偶将只约束根主体。这使得布偶的四肢可以在3D中移动,同时仍然保持整个资源在2D平面上。

新内容:自定义摩擦模式

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

FrictionModeCustom.png

默认情况下,我们取两个物体碰撞时的平均摩擦系数。然而,对于像冰这样的情况,这可能是有问题的,因为需要负系数和正系数的平均值达到0。

不同的模式适用于不同类型的效果。如果是冰,您可能想要相乘或者相减,并将冰材质的摩擦力设为0。

摩擦模式可以在整个项目范围内设置,覆盖每个物理材质。

Learning Resources

New Additions

Editor and Tools

  • New: Navigation paths can now auto-recalculate on their own!

  • New: You can now drag and drop to quickly reorder levels in the Levels Browser

  • New: Asset editors docked into the main editor area will now restore to that area when next re-opened.

  • New: Added new material workflow for Cascade.Named materials can now be added to the system which can be referenced by each emitter.These materials can be accessed externally in BPs and code via their name, and can be overridden and so forth.

  • New: Added ability to provide rich tooltip documentation links in many places throughout the editor.

  • New: Live Preview button in the material editor toggles the compilation of the preview material for all edits.When off, the material will only be compiled when Apply is pressed.

  • New: You can now customize asynchronous loading time limit and behavior in Project Settings.

  • New: Content Browser now resets search filter when syncing asset to content browser.

  • New: Moving actors into folders maintains their parent/child hierarchy where appropriate.

  • New: Added surface count and material name to the details panel for selected BSP surfaces.

  • New: Added the ability to flag custom events as CallInEditor and extended the main editor actor details view.

  • New: Actors now default to being aligned to Z-up if they are placed on the background.

  • New: Can now control tiling via the Texture Tiles property as well as the Tiling Distance.

  • New: World Composition context menus are more consistent between different views.

  • New: Level colors are once again shown in the Levels Window.

  • New: MeshMerging tool improvements.

    • Now merges all available UV channels.

    • Now has the ability to specify hard limit for lightmap atlas size.

    • Supports merging painted vertex colors.

  • New: More sub-editors such as Cascade and Matinee will now report diagnostic analytics, to help us improve these tools

  • Live Editor: When new Actors spawn (or re-spawn) they will be immediately initialized with the latest LiveEdited values from the current session.

  • Fixed selecting large amounts of actors freezing the editor for a long time.

  • Level streaming uses incremental components registration, currently up to 10 components per iteration, number can be changed in the project settings.

  • Modifying the existing static mesh import options enables a button which allows the user to reimport.

  • Class viewer no longer crashes when it finds zero results.

  • Modified struct customization for FMatrix and FTransform to work in the same way as the component transform details customization.

  • New: The cancel button now appears on the feedback dialog while autosaving.

  • Restored navmesh error message on HUD when static navmesh is outdated.

  • Removed LocalToWorld scaling when calculating tangents for instanced mesh particles and skinned meshes.Prevents artifacts mesh is being scaled.

  • Removed undo/redo transactions from importing normal maps

  • Removed the spurious 'set brush' transactions when placing geometry.

  • Toggling Level visibility no longer forces layer visibility.

  • Fixed custom navlink ID assignment for static navmesh (without rebuild at runtime).

  • Fixed inconsistent navmesh generation from sublevel's geometry.

  • Fixed navigation relevancy update not being propagated from child components.

  • Fixed bug in ribbons that would break spawning with other particles as their source.

  • Fixed a crash in the Content Browser when dragging the root folder.

  • Fixed issues with '/' and '\' being allowed in project name when creating new project.

  • Content Browser: Moving all parent folders to child folders is now disallowed.

  • Fixed an issue with user default array serialization in Editor Preferences which caused duplicated values in the UI.

  • Fixed an issue where resetting Selection Color (and probably other properties) to default in the Editor Preferences would not update the UI or viewport until the editor was restarted.

  • Fixed visibility tool not showing the visibility layer as its target.

Landscape

  • New: Added Landscape actor icon in scene outliner.

  • New: Added manual rotation option to Landscape editor alpha brush.

  • New: Support exporting terrain with holes to FBX meshes.

  • ALandscapeProxy::DataLayer has been renamed to VisibilityLayer.

  • FLandscapeToolSet has been removed.

  • Fixed issue for adding a component near another component with XYOffset using retopologization tool used.

  • Fixed for deleting/adding component problem, where deleted component or neighbors have LODBias/ForcedLOD case.

  • Fixed Landscape Spline Control Point Mesh mobility to be static.

  • Fixed foliage "fill" tool on spline meshes.

  • Fixed Landscape spline undo/redo crashes (again).

  • Fixed bug in alpha brush that could read off the +X/+Y edges of the supplied texture.

  • Fixed crash when using foliage reapply tool for Landscape layer when layer name is set to "none".

  • Fixed Lightmass lightmap build for LOD Biased components.

Behavior Tree

  • New: Delete and Rename Blackboard keys now work again from right-click menu.

  • New: Behavior tree blackboard decorator can request execution when observed key changes its value.

  • Fixed: Behaviour Trees are now correctly focused on double-click

  • Fixed an issue with the Behavior Tree window getting input focus.

  • Fixed behavior tree loop decorator affecting restarts.

  • Behavior tree tasks will default to InProgress when ReceiveExecute or ReceiveTick event is implemented.

Blueprints

  • New: Can now create BP variables for types that directly inherit from UObject.

  • New: Added BP-callable accessors for spline mesh component values.

  • New: Decal sort order can now be set via Blueprints using SetSortOrder.

  • New: Added a Blueprint log warning for BPs that are migrated during map loads so problems between stale BPs and maps can be detected more easily.It also adds an editor option under the main editor save\load preferences to mark any migrated BPs as dirty in an attempt to aid migration problem resolution caused by maps that have been saved after BPs have been migrated but the BPs have not been saved.

  • New: Can now deprecate BPs using the Blueprint properties.

  • New: Enabled dynamic class loading in the class picker dialog.

  • New: Patched an issue where item expansion states in the dialog were not preserved when a dynamic load occurred.

  • New: Functions and macros now display their category in the My Blueprint panel.

  • New: It is now possible to set a default scale for actor-based Blueprints by editing the root component's scale in Components mode within the Blueprint editor.

  • New: Added new tooltip text using tooltip metadata from C++ node classes and BlueprintDescription text for BP node classes.

  • New: Added new widget overlay system for graph panels, designed to allow more flexibility than the current brush-only implementation.

  • New: The name collision detection code is now more aggressive when duplicating curves/timelines to prevent a problem where duplicate names could emerge and cause asserts.

  • New: Old widget BPs should load in 4.4, but several properties will likely be reset to their defaults.

  • New: This release introduces the ability to mark a Blueprint custom event as a utility function that can be called on actors in the editor.

    • The idea is to provide the flexibility of Blueprints to perform management/peripheral tasks on actors or even just to provide a form of in editor preview on Blueprint functionality.

    • Custom event functions can be marked as being available to this functionality by ticking on Call In Editor in the Blueprint details panel.The UI to call the function is located in the main details panel in the Blutility section, and is populated from the currently selected actor Blueprint.

  • New: Undo/Redo support for deleting unused variables.

  • Blueprint overlap queries also check async scene.

    • Blueprint scene queries already check both sync and async scenes.It turns out the overlap query for Blueprint was not doing this.We've fixed this, but it's possible some behavior will break if you're relying on the old inconsistent behavior.

  • Modified the Blueprint details panel to mark the Blueprint as dirty when changing a custom event's replication setting.

  • Redressed a regression in the Blueprint editor in which shortcut keys became disabled after selecting nodes.

  • Type coercion now works off all wildcard pins in call array function nodes, not just the Target Array pin.

  • Replaced the placeholder icon for the call in editor events with the final version.

  • Removed macro libraries from the variable type dropdown in the Blueprint editor.

  • Removed FUNC_Exec flag from all Blueprint-generated functions.This prevents some functions from being called by simply typing their name in the console.If you'd like to directly call an event from the console, please use the following syntax: ke MyEvent, or replace the with the name of the instance you want to call the event on.

  • Fixed infinite loops in Blueprint code repeatedly spamming alert boxes.

  • Fixed enum node load issue, that was causing the enum to become unselected after reloading.

  • Fixed Blueprint circular dependency issues (issues where one Blueprint relies on another that references that original blueprint).

  • Fixed an ordering issue with rerunning Blueprint construction scripts which was breaking attachments on level load.

  • Fixed constant values as input to SpawnActorFromClass and AddComponent nodes, can now be assigned without creating a variable in your blueprint.

  • Fixed crash that could occur when collapsing and subsequently expanding nodes that included functions or other collapsed graphs.

  • Fixed crash that could occur when loading Blueprints that had soft circular dependencies.

Rendering

  • New: Major progress toward parallelized renderer (can be previewed with 'r.RHICmdBypass 0' console command.)

  • New: Added rich tooltips to material nodes!

  • New: Added compression and sampler types for distance field fonts.

  • New: Added option to TextRenderActor that allows text to render unmodified when using debug visualization modes such as Level Coloration.This tickbox is located under the Rendering category in the details panel and is called Always Render As Text.

  • New: Added exports to various texture classes to allow subclassing in different modules.

  • New: Added Texture property to change maximum resolution limitation (MaxTextureSize in Compression section, Advanced view).This is useful especially for HDR cubemap, which is limited by 512 (hardcoded for performance).

  • New: Changed default rotation for SpawnDecalAtLocation to point downwards.

  • New: Skylight LightColor and Intensity can be animated by Matinee now.

  • Cascade Mesh emitter improvements

    • Mesh emitters that don't use PSA_Velocity or PSA_AwayFromCenter had their rotation rate increase over time, ending up with them spinning uncontrollably after a few seconds, and order of operations between

    • Orientation and Scaling of particles wasn't as expected.These problems are fixed with this update.

    • Additionally, MediumDetailSpawnRateScale has been deprecated and replaced with QualityLevelSpawnRateScale.This new value is tied to the scalability settings' effects quality level, and results in the spawn rate being multiplied by QualityLevelSpawnRateScale for every reduction of effects quality level from Epic.For example, if an emitter's spawn rate is authored to 100, and its QualityLevelSpawnRateScale is 0.5, reducing effects quality to High will result in a spawn rate of 50, going to Medium will set spawn rate to 25.Setting QualityLevelSpawnRateScale to 1.0 results in no change across effects quality changes.

  • Particle effect meshes now adhere to the view mode correctly

  • Beams now pass in a second UV set which covers 0 to 1 in U across the length of the beam.UV set 0 now tiles according to the tiling parameters in the typedata module.

  • Fixed issue where turning on GBuffer Hints in the main viewport crashes the Editor.

  • Extensibility: UMaterialBillboardComponent class is now exposed via ENGINE_API.

  • Batched meshes are now cleared when flushing line batchers.

  • Changing an MID's blend mode to masked now works correctly.

  • Moved the blend separate ARB functions to optional.Added extension check for the GL_ARB_draw_buffers_blend string.

  • Fixed negative colors from SkyLight computations in base pass.

  • Fixed compilation error for materials using world space normals and refraction.

  • Fixed issue where adding a tessellated material to a landscape was causing heavy spiking.

  • Fixed Distance Field AO with cameras that constrain aspect ratio

Gameplay and Framework

  • New: Added GameMenuBuilder module for quick creation of simple menus.

  • New: Added functions to detect if a mouse is connected during runtime.

  • New: Added shadow option to debug text and cleaned up the DrawText function in HUD.

  • New: Added new functions GetInstanceTransform, UpdateInstanceTransform, GetInstanceCount, RemoveInstance and SetCullDistances to InstancedStaticMeshComponent.These are also callable from Blueprints.

  • New: Added latent Blueprint node that allows dynamic manipulation of force feedback based on game events.

  • New: Added possibility to log histogram-like data to visual logger and extended LogVisualizer tool to display that data as 2D graphs onscreen.

  • New: Added support for tutorials to be able to open IDE at a given line.

  • New: Added support for tutorials so they can open or highlight an asset.

  • New: Added support to change the filter on an asset picker after it has been created.

  • New: Added support for setting object properties by FAssetData via PropertyHandles.

  • New: Added CameraActor 'AutoActivateForPlayer' option, so cameras placed in a level can automatically be linked to a PlayerController.

    • Added Blueprint events for Actors when they start and stop being the viewtarget for a PlayerController (OnBecomeViewTarget / OnEndViewTarget).

    • Native C++ events for these (BecomeViewTarget / EndViewTarget) already existed and now trigger the BP events.

    • Changed the order of calls to EndViewTarget / BecomeViewTarget from the PlayerCameraManager, so that the End event occurs first on the old target, followed by the Begin event for the new one (previously it was reversed).

  • New: Allowed static components to move during RerunConstructionScripts for a level that has not been fully added to the world, and add threshold to position/rotation equality checks to prevent unneeded updates to component position.

  • New: Any previous scale value other than (1,1,1) that was set on "non-native" root components (i.e. not created in C++) will be auto-reverted back to (1,1,1) on load.

    • Previously, the default scale value for non-native root components was being ignored at construction time.

    • As a result, we're implicitly reverting those values on load to ensure that both existing instances and new instances will continue to appear at the same scale as they did prior to the update.

  • New: Bind functions for Axis, AxisKey, and VectorAxis added to InputComponent that do not take a delegate to facilitate binding the axis for the purposes of using get value functions.

  • New: Created tutorial for Blueprint-based first-person template.

  • New: Created tutorial for code-based Rolling template.

  • New: Characters walking on SkeletalMeshComponents now maintain relative position and rotation to the bone they're standing on, moving over animated bones rather than staying in place relative to mesh origin.

  • New: Dynamic parameters now copy their parameter names from pre-existing dynamic parameters.

  • New: Editing transform defaults in "Components" mode within the Blueprint editor has been slightly changed.

    • Previously, location, rotation and scale were all exposed, but only for the default scene root as well as for any root component created in Components mode.

    • After the update, location and rotation are now hidden, and scale is now exposed for both "native" (i.e. created in C++) and "non-native" root components.

  • New: Force feedback now supported on PC for XInput devices.

  • New: Force feedback can now be disabled via the PlayerController.

  • New: Full-size screenshots are now displayed in a resizable window.

  • New: Get Display Name now available in Blueprints for class variables.

  • New: InstancedStaticMeshComponents now set the FHitResult.Item property with the index an instance hit by a collision event.This can be used with the above functions to remove a specific instance and replace it with a real StaticMeshComponent to provide interactivity with Foliage or other behavior.

  • New: Introduced UNavigationPath for BP usage - not much one can do with it just yet.

  • New: Instigator can now be set as part of Spawn Actor Blueprint node.If the Instigator is not explicitly set via a wired in pin, the Instigator will automatically be based on the calling context.If Spawn Actor is called from a Pawn context, the Pawn will be the Instigator.If Spawn Actor is called from an actor context, the actor's Instigator will be the Instigator.

  • New: PawnActions have been introduced in the AIModule. Beta level currently.

  • New: The Curve Table editor now displays data in a grid widget.

  • New: Touch events (but not touch over events) are now enabled by default on Player Controllers.

  • New: VisLog file name can be now customized by game-specific code.

  • New: VisualLog is now acquired as a reference rather than a pointer.

  • A level's transform is no longer retained when loading a sublevel after having it's persistent level loaded.

  • Custom splash screen now displays correctly.

  • Deprecated AActor::GetControlledPawn() to avoid confusion with AActor::GetPawn()

  • Disallowed moving actors to another level if any actor is referenced by an open Matinee.

  • Diffed assets no longer appear in the asset picker.

  • DestroyApplication virtual function is properly called for the FApplication.

  • Documented all class metadata tags.

  • Ensured package metadata is loaded when trying to use it.

  • Ensured that rendering resources have been released when a level is deleted.

  • FSlateApplication::SetJoystickCaptorToGameViewport now captures all joysticks.

  • Hid FNavigationPath's properties from public access.

  • ICU initialization provides better diagnostics on failures.

  • Improvements and fixes to LogVisualizer tool: log item double-click reaction to show location in a world, filters for log items and 2D graphs, performance optimizations.

  • Improved display (or not) of edit boxes next to pins on Blueprint nodes.

  • Improved support for OneSky localization services by adding source file information as an extracted comment and a reference comment.

  • Improved localization gathering so that it doesn't gather culture invariant text.

  • Improved localization gathering so that culture invariant text doesn't flag its containing archive or package as requiring localization.

  • Improved localization gathering so that warnings and errors aren't reported for text that isn't gathered.

  • Improved whitespace check when flagging packages/archives for localization gathering based on text contents.

  • Improved navmesh projection precision.

  • Made UNavigationComponent's path recalculation is being done by the path itself now.

  • Pawns without a PawnMovementComponent can still use AddMovementInput() and read the results.

    • Moved ControlInputVector from PawnMovementComponent to Pawn.There are "internal" methods on Pawn for use by the component to access/modify it.

    • Added movement input accessors to Pawn: GetMovementInputVector(), ConsumeMovementInputVector(), IsMoveInputIgnored().

    • Exposed PawnMovementComponent::IsMoveInputIgnored() to Blueprints.

  • Removed inappropriate menu options for Shooter Game sample when running PIE.

  • Removed path variation feature (unused and broken).

  • Revised text chat in Shooter Game sample.Improved visibility flags and stopped focus being changed on clients.

  • Revised the 2D side-scroller C++ template and reduced its Blueprint dependency.

  • Revised Platformer game menus to use new GameMenuBuilder.

  • Several revisions to Vehicle sample game to improve multiplayer support.

  • Widened tooltips (primarily) so that class comments do not get odd wrapping behaviors.

  • Fixed EQS (Environmental Query System) incorrectly timeslicing.

  • The update was subtracting the time remaining for all prior steps after each step rather than subtracting the time remaining based on the time it took to execute the current step.

  • Fixed crash in Shooter Game sample.

  • Fixed crash in GetMousePosition() if Player is null.

  • Fixed navigation links' direction RightToLeft issue.

  • Fixed navigation path's checking if it intersects with a give FBox.

  • Fixed Functional Testing crashing in game mode.

  • Fixed project collision settings (custom profiles/channels/object types) not being saved in the DefaultEngine ini.

  • Fixed a crash that could occur when starting PIE with an open, uncompiled Blueprint.

  • Fixed attachment issues with Blueprint components during RerunConstructionScript

  • Potentially fixed a crash that reportedly occurred while loading a few unique Blueprint assets that were missing a root component.

  • Various fixes to SplitPin feature.

CharacterMovementComponent

  • Characters that are falling and impact geometry with an unwalkable normal can check for a valid landing spot and land if possible.

    • Running and jumping up on ledges is more fluid.Previously the character would "float" for a bit before landing, which would lose velocity.

    • Added virtual ShouldCheckForValidLandingSpot() for custom behavior.Base version returns true when hitting the edge of geometry with the lower portion of the capsule.

  • Bug fixes for Character movement on rotating surfaces, especially for networking.

    • Changed some MovementBaseUtility functions to conform to engine conventions ("location" rather than "position").

    • Changed AActor::PostNetReceiveLocation() to also include rotation (now called PostNetReceiveLocationAndRotation).

    • Fixed incorrect rotation delta computed in UpdateBasedMovement().

    • Fixed replicated rotation overwriting relative rotation for Characters.

    • Fixed simulated proxies not matching the server location when the velocity reached zero.Proxies would move forward one more frame in that case.

    • Fixed bIgnoreBaseRotation being ignored for simulated clients.Absolute rotation is sent in this case instead.

  • Fix issues with ApplyVelocityBraking incorrectly accumulating changes when timestep is over the threshold (issue when framerate is low)

  • Prevent boosting up slopes when lower portion of capsule impacts something while falling.

    • Player collision now feels more natural and less like a capsule.

    • Added HandleSlopeBoosting() to enable easier customization of this behavior.

New: Game Instance objects (persistent gameplay data)

  • New: The Game Instance is a transient object that has a lifetime that exists across level transitions.

  • It is game extendable (set in the Maps & Modes section of the Project Settings) as both a C++ and Blueprint class.

  • It can be used to store cross-level data, manage the game's application state, and act as an owner for objects that you would like to exist across the entire game session's lifetime.

  • The GameInstance exists on both the client and the server, however, because it is a UObject there is currently no replication of data between the instances.

Paper 2D

  • New: Added support for dicing sprite render geometry, separating out translucent/masked quads from opaque ones (WIP).

    • Sprites now have an alternate material and the ability to have a second render section defined using that material (only used for diced geometry right now, with a convention that the alternate material is the opaque one in that case).

    • Adds a new ESpritePolygonMode::Diced value, valid only for render geometry (treated like SourceBoundingBox for collision).

    • Adds opportunistic triangle merging for both collision and render geometry when there are multiple source polygons.

  • New: Added support for casting 3D shadows from sprites (FPaperRenderSceneProxy now obeys CastShadow from the source component).

  • New: Added support for drag-drop reordering of keyframes in flipbooks.

  • New: Added OnFinishedPlaying delegate to UPaperFlipbookComponent, called whenever a non-looping flipbook finishes playing (reaches the end or beginning, depending on play direction).

  • New: Added snap to pixel grid option for pivots (enabled by default on new content), and enforced snap to pixel grid for the source rectangle (always).

  • New: Added a Paper 2D demonstration level to Content Examples.

  • New: Added support for replicating state of flipbook components.

  • New: Added support for importing tile maps and tile sets exported from Tiled 0.90 as JSON.

  • New: Added DLL export to UPaperSpriteComponent and APaperCharacter.

  • New: Added support for Texture Packer 3.5 UE4 export option.

  • New: Added FPaperSpriteSceneProxy to pair with UPaperSpriteComponent, removing some code from the common FPaperRenderSceneProxy parent.

  • New: Significant improvements to tile map support (still experimental, must be enabled in Paper 2D project settings).

    • Added limited support for different projection modes on tile maps (orthogonal, isometric, and staggered isometric; only orthogonal works with in-editor editing).

    • Added adjustable Spacing and Margin values on tile sets (Spacing is a gap per tile in the texture, and Margin is a gap around the border).

    • Added adjustable Z offset per tile in X and Y, as well as per-layer, which permits a fix for z-fighting when using overlapping isometric tiles.

    • Added ability to drag-drop a tile set to make a new tile map actor (just sets the tile width and tile height to good defaults, nothing else).

    • Added a placeholder standalone tile map editor (doesn't edit much yet).

    • Added a component asset broker allowing tile maps components to be used in Blueprints.

    • Added display text for tile map render bounds to tile map editor.

    • Added support for dragging tile map assets into the editor viewport to create tile map actors.

    • Edits to tile sets and tile maps now refresh placed tile map instances.

    • Finished deprecating layer-wide tileset pointer and removed several bogus uses.

    • Made tile set viewer/editor draw translucent/masked textures as translucent.

    • Moved part of the geometry generation to a one-time step on the game thread instead of per-frame (WIP).

  • Improved comments on various types and methods.

  • Improved Texture Packer Json importer handles rotation, trimming and pivot options correctly.

  • Improved source region edit performance.

  • Converted UPaperSpriteComponent to derive from UMeshComponent.

  • Forced wireframe color for opaque sprite sections to green (the color of GPU happiness).

  • UX improvements to the details panel customization for UPaperSprite.

  • Removed Paper 2D texture usage and dependency on Editor Style.

  • Removed display of collision geometry debug text if there is no collision on the sprite.

  • Renamed texture context menu command 'Configure For Sprites' to 'Configure For Retro Sprites' to better reflect the function it performs.

  • Fixed a bug where bSimulatePhysics could not be set on a UPaperSpriteComponent in the Blueprint editor.

  • Fixed unreliable behavior when double-clicking in Source view when PixelsPerUnrealUnit is not 1.0

  • Fixed potential assertion when cooking Paper 2D content (Add ConditionalPostLoad call for associated textures to avoid load-time ordering issues when opening older sprites).

  • Fixed external content reference warnings on placed assets that use the default plugin materials.

  • Fixed broken tangent calculations in FPaperRenderSceneProxy that caused bogus lighting on lit sprites.

Platforms

Windows

  • New: Added function to detect connected mice on Win64/Win32.

  • New: Windows accessibility features are now disabled while the game/editor are running.

  • Windows XP support can now be enabled in the BuildConfiguration.xml like other build options.

  • Error codes added to the Editor analytics for Launch On and File|Package / File|Cook so that we can track what errors users are getting during those process and better direct our efforts to improve the user workflow.

  • Installed SDKs are checked at editor startup.This allows for all of the platforms we support for a particular editor build to be shown in the menus.A platform that is supported but does not yet have the appropriate SDK installed will launch a tutorial for the SDK installation when a menu command is clicked.

  • Bug fix for missing OpenGL extensions and entry points for OpenGL 3.x on windows.

  • Fixed issue with IPP where if the mobile provision was updated it would properly copy it into the provision library.

  • Addition of new API for platforms to allow detecting whether or not everything is ready/installed to be able to build, cook, package, deploy, and run a game.

Mac

  • New: Added support for using libs in Binaries/ThirdParty in self-contained Mac app bundles.

  • New: Added Close item to Window menu in Mac menu bar (Cmd+W)

  • New: Ctrl and Cmd keys on Mac are no longer treated as the same key and can be assigned to shortcuts separately.

  • New: Deferred updating offscreen, 1x1 tooltip windows to improve Mac Editor responsiveness.

  • New: Implemented a Mac OS X native feedback window for slow tasks that shows progress, an optional log and provides the ability to cancel the operation.

  • New: Mesh fracturing in Destructible Mesh editor works on Mac now.

  • New: Refactored menu code to use the Mac menu bar instead of custom per-window menus.

    • The main menu now reflects the currently focused window like other Mac apps.

    • Level editor widgets that lived in the menubar have moved to the window's titlebar.

  • New: The editor will now save the project plist (found in the Project Settings for iOS) to Game/Build/Info.plist.This is different from previous versions where it saved it to Game/Build/Game-Info.plist.For the time being, the editor and tools will continue to look for Game-Info.plist, but this will be deprecated in the future.

  • New: Updated Mac to p4api-2014.1 so that we may support SSL connections.

  • New: Updated Mac OS X version check to warn users if their version is older than 10.9.4 plus fixed the check so it no longer detects 10.10 as older than 10.9.1

  • Changed trackpad detection on Mac to report trackpad only if at least two fingers are touching it.This should limit issues with people accidentally touching trackpad while using mouse + WASD

  • Do not disable use of glMapBuffer when using MTGL as there is an OpenGL bug that results in rendering errors in that case.

  • Exposed the amount of VRAM in the GPU to the OpenGLRHI on OS X.

  • Improved the code for enumerating installed engine versions in UE4EditorServices so that it doesn't include incomplete or deleted installs.

  • Improved RMB handling in SNodePanel for Magic Mouse and trackpad.

  • Improvements to Mac IME support:

    • Show the range being edited by a pop-up glyph selection window.

    • Properly clear the marked and composed ranges when IME ends so that further typing or clicking works as expected.

    • Make sure that the caret position updates correctly when editing a composed range.

  • On OS X Use uuid_generate rather than implementing our own GUID generation.

  • Optimized UBT on Mac.The time it takes to determine if the target is out of date is much shorter now.

  • Only flush after glTexStorage calls when necessary to avoid inhibiting performance on Macs with unaffected GPUs.

  • Removed the GL_TEXTURE_BUFFER workaround for OS X the OpenGL driver fix is in 10.9.4.

    • All Macs will use the GL_TEXTURE_BUFFER path now as everything but a 2013 Mac Pro running 10.9.3 will work correctly.

  • Stopped using Cocoa's child window mechanism since it isn't what we want.

    • Tear-out or panel-style windows are raised to float above normal windows.

    • All windows appear in Expose/Spaces/Mission Control & the are part of system window cycling.

    • Modal windows are treated slightly specially to ensure that the last shown modal window currently still open remains on top and attempts to change focus fail with visual indication.

  • Fixed a problem with the editor creating /Volumes/UE4DDC folder if the shared DDC folder is not mounted on Mac.

  • Fixed issues with zooming blueprint and material editor viewports with Magic Mouse.

  • A few other minor fixes.

Mobile

  • New: Added in-editor tutorials for installing iTunes and Mobile Provisions.These tutorials will appear automatically when you Launch On Device or Package your app.

  • New: Added support for Foliage Instanced Meshes on mobile devices.

  • New: Added extended error checking and in-editor help for many iOS deploy and packaging errors, as well as continued to improve Android device compatibility.

  • New: Added support for PerInstanceFadeAmount on mobile materials.

  • New: The BlackBody material expression is now supported on ES2.

  • The editor will now save the project plist (found in the Project Settings for iOS) to Game/Build/Info.plist.This is different from previous versions where it saved it to Game/Build/Game-Info.plist.For the time being, the editor and tools will continue to look for Game-Info.plist, but this will be deprecated in the future. iOS

  • New: Basic iOS in-app purchase support added to Blueprints.

    • One to query product information given a product id.

    • One to make a purchase of the specified product, by id.

  • New: Metal support improved (up to Beta 4/5)

  • New: Increased the unity file size to prevent jump distance linker errors on iOS.

  • New: iOS frameworks specified in PublicAdditionalFrameworks in a module's Build.cs file will now properly have their headers directory added to the header search path.

  • Fixed issues with devices not being found when deploying to iOS from a Mac for Strategy Game and Platformer Game.

Android

  • New: Added console history.Swipe left or right on the text input to select previous console input.

  • New: Added support for virtual keyboard Slate widget (SVirtualKeyboardEntry)

  • New: Added call to adb which sends an input to unlock the screen before launching the game.

  • New: Android Back input added as an alias for Special Left to improve clarity.

  • New: When launching from the editor to a locked device the screen is now unlocked prior to game launch.

  • Allowed cubemaps with FloatRGBA to be converted to RGBA with clamping of values 0.0 to 1.0 if half float textures not supported.\

  • Removed extra blank lines in console log during packaging with the editor.

  • Tappy Chicken

    • Added 'Android Back' for specific back button support in Android.

Android Compatibility Device List

  • LG G2 (LG-LS980)

  • Samsung Galaxy Note 3 (SM-N900)

  • Samsung Galaxy Note 3 (SM-N900P)

  • Samsung Galaxy S 2 Intn'l (GT-I9100)

  • Samsung Galaxy S 4 mini (GT-i9190)

  • Samsung Galaxy S 5 (SM-G900H)

  • Samsung Galaxy Tab 3 10.1 (GT-P5200)

  • NVIDIA Shield

See our Android Device compatibility wiki page for more information.

Xbox One

  • New: Improved handling and cleanup of orphaned Xbox Live sessions.

  • New: The initial version of an Xbox Live Compute online subsystem server module was added.

  • New: The engine is set to use the July 2014 QFE1 XDK by default.

  • Optimized cache flushing in HandleSpecialUnlock.

  • Packaging of content only projects giving an error about an empty file group has been fixed.

  • Slightly optimized texture cooking time.

  • Fixed several texture tiling corruption bugs.

  • Fixed a crash in Xbox Live session management

  • Fixed an issue that was preventing the FOnSessionInviteAcceptedDelegate from firing if the game wasn't already running when the user accepted an Xbox Live game invite.

PlayStation 4

  • New: Morpheus DVT 1.1 support!

  • New: Improved Morpheus Support, including many fixes from Sony for DVT hardware support, shaders, and tracking

  • New: ICU support!

  • New: Game control over which bluray layer PlayGo chunks are written to.

  • New: Game specific coredump handling.

  • New: Runtime conversion of callstack addresses to function names.

    • Failed asserts now dump decoded callstack function names to the PS4 console output when not connected to a debugger.

  • Better handling of GPU Timeouts - Fixes invalid timeout detection when debugging and handles timeouts due to CPU/GPU Razor captures

  • Buffer clear fixes - Fixed potential double clearing of MRT targets if the first doesn't have a CMask.Flush CMask cache before clearing the CMask buffer.

  • FUniqueNetIDPS4 uses asynchronous NPID lookups.

  • HTTP Requests handle all 200 range response codes properly.

  • Morpheus rendering fix to allow Game/Render threads to run in parallel again.

  • Ribbon particle optimization.

  • Various packaging fixes for PlayGo and non-PlayGo packaging.

  • Fixed shader SDB output folder path (now dumped to \Saved\ShaderDebugInfo\SF_PS4\sdb)

  • Fixed GPU Particles using stale uniform buffers causing various artifacts.

  • Fixed Development builds crashing on Testkits from the debug keyboard.

  • Fixed incorrect cast in FGnmDynamicRHI::RHIUpdateTexture2D.

HTML5

  • HTML5 now requires Emscripten SDK 1.21.This can be installed from http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html.Note: this is a new location for the Emscripten SDK.

Templates

  • New: Updated TP_2DSideScrollerBP to better work in multiplayer scenarios.

  • New: Drives controller rotation instead of local rotation.

  • New: Enable replication on paper flipbook component (works server->client but client->server will still require an RPC).

Slate

  • New: Slate widgets can now register/unregister to get notifications when someone clicked outside them.

  • New: Slate brushes now support mirroring images.

    • You can set this with the new 'Mirroring' variable on FSlateBrush

  • New: SAssignNew can now assign to a TSharedRef.

  • New: The signature for SWidget::OnPaint() and SWidget::Paint() has changed to include an extra parameter of type FPaintArgs.

    • For calls to Super::OnPaint() simply pass through the FPaintArgs parameter.

    • When painting child widgets, pass Args.WithNewParent(this) to ChildWidget->Paint().

  • Fixed bug where WidgetReflector would consume the ESC key when pressing it to lock focus (caused Play to exit)

  • Fixed a race condition using custom Slate draw elements.

Physics

  • New: New constraint visualization.We now use three fan shapes with red green blue which should be much easier to work with in PhAT.

  • New: Added damage prevention channel for radial damage.

  • New: Exposed disable constraint physics collision to Blueprints.

  • New: Exposed more joint APIs from PhysX.

  • New: Exposed constraint angular reference frame offset.

    • In blueprint editor case it was not possible to modify constraint frame of reference.This new value allows to set it manually.

  • New: Exposed max depenetration velocity for more slowly resolving overlapping simulated objects.

  • Removed enabling collision on no collision object for drag/drop operation.Now no collision should not respond to Visibility trace.

  • Simplified navigation cluster graph to work only as fast 'path exists' check.

  • Stopping movement from MovementComponent will abort path following.

  • Reenabled RT destruction in APEX.We are still not supporting this directly, but the APEX libs will have this flag turned back on.

  • Overlap check performance: Blueprint overlap queries now check the async scene.

  • Improved undo behavior inside PhAT.

  • Improved PhAT constraint copy and paste behavior.

  • Improved bSimulatePhysics editing extensibility.

    • Added UPrimitiveComponent::CanEditSimulatePhysics to allow individual components to determine if simulation is possible given their Physics setup.

    • Replaced if-else cast tree in details panel customization.

    • Changed behavior of base UPrimitiveComponent so that it is editable if there is a valid body setup on the component rather than on the BodyInstance.

  • Removed destructible components tick and post physics tick.

  • Fixed "UseConvexAsSimple" collision for spline meshes.

  • Fixed crash in PhAT when creating multi convex hull with soft vertices

    • This is actually not supported, but the editor will properly issue a warning instead of crashing.

  • Fixed incorrectly passing max angular velocity to body instance.

  • Fixed PhAT adding new bodies not creating joints for non-leaf bodies.

  • Fixed PhAT deleting non-leaf bodies so that joints are automatically fixed up.

2D Physics Constraints

  • New: Easily constrain 3D physics body to a 2D plane (per body or project wide).

Audio

  • New: Added multi-channel support to Opus file format.

  • New: Added support for different sample rates to Opus file format.

  • New: Added early experimental support for Audio Streaming on Windows.This will be improved in upcoming releases.

  • Split Opus and Vorbis classes out of AudioDecompress.cpp/h

  • Removed vestigial bits of the UE3 music system.

  • When opening the SoundClass editor from the Content Browser, the SoundClass edited will be selected and have its values shown, not the values of the SoundClass root of the SoundClass hierarchy.

  • Prevented full audio data from being cooked/loaded in streaming sounds.

  • Prevented sounds and other notifies from playing when animation preview buttons set the playback position directly.

Live Streaming Plugin Support

  • New: Live Streaming plugin API for games and editor added!

    • Implements live video/audio broadcasting to a live streaming network

    • Supports displaying your web cam in the editor and in-game

  • New: Experimental support for streaming live broadcasts from Unreal Editor (not ready to use yet)

  • New: Experimental Twitch broadcasting support (not ready for use yet)

    • You will need to acquire the Twitch SDK and compile the engine yourself to try this out

    • Implements live video/audio broadcasting to Twitch

    • Supports displaying your web cam in the editor and game

    • Uses browser-based authentication to login to Twitch

  • NOTE: Epic cannot legally distribute the Twitch SDK to you.See /Engine/Source/ThirdParty/Twitch/InstallingTwitchSDK.txt for more information.

Animation

  • New: Added support to Persona for previewing root motion.

  • New: Additional Persona usability improvements

    • Renamed Persona animation scrub menu and tooltip to be more user friendly.

    • Changed AnimNotify to support all AnimSequenceBase.

    • Persona default layout change per tab.Mainly simplified for skeleton/mesh tab.

    • Change Custom socket to Mesh socket.

    • Supported thumbnail size of asset picker and tweaked it for Persona.

    • Changed tab asset pickers to be list view by default.

    • Added Toolbars for each tab - import/reimport/create assets.

    • Tweaked Additive setting to work better with a better warning.

    • Fixed menu item to show multiple times if multiple Persona are opened.

  • New: Added thumbnails for animation assets (AnimSequence, BlendSpace, AnimComposite, AnimMontage, AnimBlueprint).

  • New: Added bone driven controller skeletal control node for animation blueprints.

  • New: Added floating animation asset previews to Personas asset browser on mouse hover.

  • New: Added Display Info options in Persona's viewport such as Basic, Detailed and None.Basic option is as simple as static mesh editor.

  • New: Added Save Animation Assets menu in Persona.

  • New: Added documentation anchors for each animation editor type.

  • New: Anim montage slot name shows an error message to provide a valid slot name if it is empty.

  • New: Adding skeletal sockets no longer dirties the skeletal mesh.

  • New: Blueprint and Native notifies can now customize their names in the notify panel using a new native event.

  • New: Bones in Persona can now be selected even when hidden as long as the mesh has a physics asset setup.

  • New: Double-clicking animation graph player nodes now opens the relevant editor for the asset.

  • New: Changed zoom in Persona tracks to be based on mouse position instead of track centre.

  • New: Created custom graph tasks for parallel animation evaluation to reduce overhead.

  • New: Shift-Click recursive expansion/collapse now works in Persona skeleton tree too.

  • Removed retargeting UI from all Persona modes bar Skeleton.

  • Improvements to Persona tooltips and interactive tutorial.

  • Single-click preview of animations removed in favor of floating previews.

  • Viewport scrub bar in animation mode of Persona removed.

  • Moved notify panel delete hook out of Persona and into the panel to stop Persona consuming all delete commands

  • AnimSequence.bLoopingInterpolation flag is removed.If you'd like to add interpolation from end frame to first frame, please use the menu in Persona (Add Looping Interpolation).

  • Updated engine-level Blueprint notifies to take advantage of new custom naming function.

  • Fixed crash when running the "Static Mesh UVs" test.

  • Fixed thumbnail code sometimes using incorrect thumbnails.

  • Fixed issue with not resetting time when setting new animation.

  • Fixed BlendSpace parameter not updating properly when parameter changes.

  • Fixed mismatched name in vectorized FTransform.

  • Fixed empty animation assets freezing future floating previews.

  • Fixed root motion fighting with external force so that it only applies when root motion montage is playing.

  • New: Trace functions now accepts a literal value for vector

  • New: Anim BP now creates default owner node/update node in Event Graph.

  • AnimNotifies at the same time position are now saved in their track index order

FBX

  • All FBX errors and warnings are now linked to documentation pages and have a descriptive tooltip.

  • Fixed potential crash when importing vertex with missing bone influence.

Online

  • Changes to VoIP delegate processing to make sure "start/stop talking" is always captured.This prevents some possible crashes.

  • Fixed a crash bug in the Xbox LIVE implementation.

Networking

  • New: Variuous UI improvements to network profiler.

  • Stat Net now works correctly and no longer reports 'command not found'.

  • Many fixes to async network object loading code.

  • BSD IPv6 SetIp function has been updated to correctly interpret port numbers.

    • This fixes an issue where the network file system would not connect when passed port numbers on the command line by UnrealFrontend.

  • Clients now verify they have the exact same package as the server before loading assets from them.

  • Lots of ULocalPlayer management cleanup (making it easier to manage splitscreen players for offline/online play).

  • Shooter Game menu management cleanup, unified dialog box support, etc.

  • Shooter Game now shows dialog messaging for various failure cases, work that is being done to help Shooter Game be more console friendly, and prove out those OSS APIs.

Core

  • New: Added a PostEngineInit load phase for modules, which allows modules to be registered after GEngine/GEditor have been created.

  • New: Ability to override config options on the commandline.Use the following format:

    • -ini:IniName:[Section1]:Key1=Value1,[Section2]:Key2=Value2

  • New: Added file system block alignment option in Unreal pak.Prevents small files crossing a file system block boundary which can incur a performance hit on some platforms.This option help reduce that cost.Use blocksize=X[KB|MB] to enable.

  • Added ENGINE_API to FComponentInstanceDataBase so it could be used in other modules.

  • Added ISourceControlLabel::Sync() overload that takes multiple files.

  • New: Added a proper error message if a file cannot be deleted during project upgrade, and added functionality to checkout the project file if necessary.

  • AActor::OwnedComponents will no longer be exposed as UPROPERTY as it was causing serialization issues.

  • New: FScopedDurationTimerLogger class which logs the lifetime of the object.

  • New: FReferenceCollector has a new helper member function: AddReferencedObjects which overloads accept TArrays, TMaps and TSets.

  • New: FBlackboardKeySelector::AddRotatorFilter now uses CreateNamedObject.

  • New: Made UPrimitiveComponent::GetUsedTextures virtual.

  • New: Plugin directories will now also be searched for project templates.

  • New: ObjectInitializer.SetDefaultSubobjectClass and ObjectInitializer.DoNotCreateOptionalDefaultSubobject can no longer be used outside of class initializer list.

  • New: Stable sort algorithm for TArray.It's slower than classic sort, but it's keeping the input order of equal elements.*

  • New: ScriptPlugin now supports script-generated blueprint classes with the ability to set any blueprintable class as the base class.

  • New: TLinkedList and TDoubleLinkedList now support C++11's ranged-for syntax.

  • New: TUniqueObj constructor now supports 0-4 arguments when variadic templates are not available.

  • New: TArray::Emplace now supports arbitrary numbers of arguments when variadic templates are available and 0-4 arguments when not.

  • New: Variadic template supported enabled in VS2013 builds.

  • Changed FGameplayDebuggerExec::Exec(...) to use a TActorIterator rather than FActorIterator.

  • Cleaned up StringClassReference.The class is now a subclass of StringAssetReference and should work analogically.

  • In-editor renames now support StringAssetReferences as well

  • Improvements to UMeshComponent as a base class.

    • Updated UMeshComponent::PrestreamTextures and UMeshComponent::SetTextureForceResidentFlag to work off of GetUsedTextures and made them virtual.

    • Fixed an array bounds assert if trying to expand the materials array via UMeshComponent::SetMaterial

  • New: The ParticleSystemAudit commandlet has been revived from UE3.It uses the Asset Registry instead of a database.

  • Made FGameplayDebuggerExec::Exec clear the replicator (and so fail to create/enable the tool) if the only Player Controllers it finds are NOT the first local Player Controller.(That should never happen, but previously wasn't protected against properly.)

  • Unreal Engine Launcher no longer loads while debugging in Visual Studio or Xcode.

    • Added new "-ForceLauncher" command-line argument that can override this.

  • Updated texture streaming code to treat all UMeshComponent derived classes equally, generalizing the special treatment for USkeletalMeshComponent or UStaticMeshComponent.

  • Updated some places using a hardcoded search in FEditorStyle to use FClassIconFinder instead (to allow you to specify class icons in your own modules).

  • Removed ScriptAsset, ScriptFunction and ScriptActor classes from ScriptPlugin

  • Removed DLLEXPORT specification from a few templates in CoreUObject module that could cause failure if inline expansion is turned off.

  • If a tooltip does not exist for a UField, use the name of the field instead.

  • Fixed 'stat unitgraph' not appearing in console autocomplete.

  • Fixed copying files under source control not maintaining branch history.

  • Fixed an issue with not displaying self/otherchildren when using 'stat dumpframe'.

  • Fixed a bug that cause low-frequency GC to happen at inappropriate times.

  • Fixed crash when project module fails to load.

  • Fixed compiler errors when brute forcing STAT to be true in Shipping builds.

  • Fixed for multithreaded crash in ValidateHeap() & dumpAllocatorStats() in FMallocBinned.

  • Fixed not being able to toggle fullscreen mode when launched with windowed on the command line.

  • Fixed compile-on-startup when plugin modules don't already exist on startup.

  • Fixed compiling from the editor where the target does not match the game name.

  • Fixed scraping of UnrealBuildTool environment variables in non-US locales.

  • Fixed branching creating multiple files.

  • Fixed FTransform details customization not dirtying packages correctly.

  • Fixed FString::InsertAt inserting null characters in the middle of a string

  • Fixed an IMM based IME crash due to starting a composition with no active context (eg, if you typed while the editor viewport had focus)

  • Fixed ULinkerLoad will no longer try to recreate an import if it has already been created by VerifyImport through redirects.

  • Fixed When no target platform is explicitly specified in the command line, BuildCookRun automation command will pick the currently running platform instead of always Win64.This fixes Mac problems when using BuildCookRun.

  • Fixed Unknown script packages in the import list of another streaming package will now be gracefully handled instead of crashing.

GameplayDebugger module changes:

  • Added functionality (accessible through the module interface) for creating the debugging actor given a particular player controller.

  • Changed GameplayDebugger NOT to automatically create the debugging actor when a player controller is added.

  • The message it was using only happens in-editor, so it didn't work in-game.Also, in-game, we don't necessarily want every player controller creating a debug actor.So, it's now up to each user to determine which controllers should create their own debuggers.

  • One correct way to create the debugger for a player controller is to have that player controller implement PostInitializeComponents(), where (after calling to the Super implementation), it can call code like this:

GameplayDebuggerCode1.png

Faster C++ Compile Times

  • 268 headers in Engine module had superfluous include statements, fixed 205 of them according to include-what-you-use principle.

  • Removed 17 unnecessary include statements from Engine module private precompiled header.

  • 1As a result of an on-going effort to improve compile times, some of the includes have been removed from public headers.The list of removed files is below.You may need to add these headers into your project source code in case it does not compile.

    • RenderUtils.h

    • Debug/DebugDrawService.h

    • KeyState.h

    • SceneManagement.h

    • ShaderParameters.h

    • ShaderCore.h

    • ShaderCompiler.h

    • ShaderParameters.h

    • MaterialShared.h

    • PrimitiveUniformShaderParameters.h

Unreal Build Tool Improvements

  • New: Changed UBT to compile a flag for running in the DebugGame configuration into monolithic games (no need to specify -debug any more).

  • New: Added better verbose debug output to detect problems with shared PCH headers.

  • New: Faster startup time (reduced time spent scanning includes for UObjects).

  • New: UBT now adds /FS flag in VCToolChain for VS2013 to ensure parallel builds that use PDB work properly.

  • New: UBT is now detecting redistribution dependency violations.Modules can be marked as redistributable or not -- depends mostly on location, Editor and Development folder modules are non-redistributable, but it can be overridden if needed.In non-Debug and non-Editor builds UBT is checking if game being built is depending on some non-redistributable module.Programs are also not verified.

  • UBT will no longer use ini files to get the list of plugins to compile for programs.Program target rules file should specify the plugins to compile for it.

  • UnrealBuildTool performance: Disabled verbose output in Release builds.

    • TRACE is no longer defined by default in Release builds.

    • If you want bPrintDebugInfo to work, use a Debug build or define TRACE to 1.

  • Fixed modules that supply shared PCHs not generating and using their own unique PCH in monolithic builds.

  • Fixed monolithic builds not detecting that a unique PCH was needed for modules that supply shared PCHs when header file names were different.

  • Fixed UnrealBuildTool not relinking targets after plugin static libraries are modified.Dependencies were ignored because their producing action was marked as creating an import library.

UnrealHeaderTool

  • Removed 'ScriptPlugins' ini setting.Plugins will be discovered by their 'Category' specified in uplugin file (for UHT it should be prefixed with 'UnrealHeaderTool.Code Generator.')

Known Issues

  • There is a known issue with IPP where if a user tries to import a mobile provision with a concrete application id (com.yourcompany.gamename as opposed to com.yourcompany.*) then it will fail to properly find the imported mobile provision.The workarounds for this are as follows:

    1) Create a wild card mobile provision.This is probably the easiest workaround and then the provision will work for any of your games during development.

    2) Create an Info.plist in your Game/Build/IOS directory.You can use the template in Engine/Build/IOS/UE4Game-Info.plist or you can edit your project settings in the editor (Project Settings / IOS Settings) to generate the Info.plist.Make sure the CFBundleIdentifier key matches the mobile provision identifier, usually com.yourcompany.gamename.Once that is done, then running IPP to import the provision and certificate should work fine.

Select Skin
Light
Dark

欢迎来到全新虚幻引擎4文档站!

我们正在努力开发新功能,包括反馈系统,以便您能对我们的工作作出评价。但它目前还未正式上线。如果您对此页面有任何意见与在使用中遭遇任何问题,请前往文档反馈论坛告知我们。

新系统上线运行后,我们会及时通知您的。

发表反馈意见