July 16, 2014

Unreal Engine 4.3 Release!

By Ian Shadden

Unreal Engine 4.3 includes greatly improved mobile support, awesome new rendering features, improved Blueprint workflows, and strides toward an excellent experience on Mac and laptops. Be sure to check out the new World Composition tools, spline features, and the preview of Paper2D, our 2D toolset! Today we’re also shipping SpeedTree 7 support, our work on Metal API for iOS 8 to date, and new Oculus Rift features such as time warping.

We’d like to extend our gratitude to all of the amazing developers who contributed code to the upcoming 4.3 release.

3dluvr, abergmeier, alixSilkin, Allegorithmic, bigzer, Chris-Bond, CoherentUE4, Rama, Ixiguis, mpolaczyk, pzurita, raziel2001au, robert-wallis, RushPL, solid-angle, stephenwhittle, thk123, timdonkssbc100, vakathil, Xaklse, Zoubi

New Features

Rendering

New: Movable Skylight

Skylights can now support the Movable mobility setting!

  • This type of light supports dynamic scene changes.
  • It gets shadowing from SSAO and a new feature called Distance Field AO.
New: Distance Field Ambient Occlusion

This feature computes AO from Signed Distance Fields which are used to represent the static meshes in the scene. The static meshes can be moved at runtime and the AO will update.

Original:

Distance Field Example Original

With Distance Field AO:

Distance Field AO

New: Skylight Global Illumination

Lightmass now computes global illumination for Stationary and Static skylights!

Original:

Zen Gardens

With Global Illumination:

Zen Gardens With Global Illumination

  • You can use Indirect Lighting Intensity on the sky light to control how bright the bounce lighting is.
  • Just like all Stationary lights, if you change the color or intensity at runtime, it only applies to the direct lighting, since the bounce lighting is baked into the lightmap.
New: Translucency Shadowing from Stationary Lights

Stationary lights now properly shadow translucent materials!

Original:

Transluceny shadow original

Static Shadowing for Translucency:

Static Shadowing for Translucency

  • This is achieved by computing a shadow depth map in Lightmass covering the light's influence.

2D Game Tools Preview

The Paper2D plugin is now enabled by default in the engine, so it will be usable in content-only games in 4.3.

A 2D side scroller game template has been added as well! (BP and C++ variations)

Paper2D Scroller Template

Paper2D in Editor

Editor and documentation now work to properly message the state of Paper2D in 4.3

  • Sprites and Flipbooks are ‘Early access’
  • 2D collision/physics, terrain splines, atlasing groups, and tile maps are ‘Experimental’ (hidden behind enable flags where possible)

AI Tools: Behavior Tree

Blackboard Editing & Debugging in the Behavior Tree Editor

You can now edit and debug Blackboard entries inside the Behavior Tree Editor. You can access the Blackboard Editor by switching to the new ‘Blackboard’ mode:

Blackboard mode

You can then edit the blackboard in a similar way to Blueprint variables by adding keys:

Editing Blackboard

You can also remove and rename keys with hotkeys & the right-click context menu.

When debugging, blackboard values are displayed for inspection. As before you can still switch between current and saved (previous) debugging contexts:

Switch to Current or Saved Blackboards

The blackboard is also displayed for quick reference in the behaviour tree mode:

Blackboard TreeMode

New: “New Node” Shortcuts

The Behavior Tree Editor has had some new buttons added to its toolbar, allowing users to quickly create new Blueprint node types for tasks, decorators and services:

New Mode Shortcuts

  • Blueprints for these new nodes are created in the location of the currently edited behavior tree. If there is more than one potential class to create a node type from, then the button will appear with a dropdown to allow class selection.
New: Oculus Rift Upgrade
  • Upgraded to new Oculus SDK (0.3.3-pre.1 SDK), with latest goodies!
  • Oculus Rift DK2 supported out of the box, with full motion tracking
  • New direct rendering path and time-warping, which significantly reduces latency on the device.
  • Check out our new “Couch Knights” sample, created to show off the new Oculus Rift DK2’s capabilities

Couch Knights

New: SpeedTree 7 Supported

You can now import SpeedTree assets into Unreal Engine!

SpeedTree 7

SpeedTree trees and plants will all include light map UVs, dynamic LOD and wind effects. Those who download the new version will have several options:

  • The SpeedTree for Unreal Engine 4 Subscription Modeler, available on Windows and Mac OS X at $19 USD per month. No royalties, per-title or per-platform fees apply.
  • Trees for sale – seasonal variations, various triangle counts etc.
  • Three free sample trees that can be dropped into any UE 4.3 project.
  • Everything will be available at the SpeedTree Website.

SpeedTree 7 Demo

Large World Support

New: World Composition

You can create sub-levels and position them anywhere on this map.  They will be loaded automatically in the game.

Level Composition

  • Turn on Enable World Composition in your level’s World Settings to activate this (the level must be saved to enable this feature).
  • You can use the Minimap button on the Level Browser toolbar to access a world map.
    Level Browser
  • New documentation and Sample Games will be coming later.
  • This feature replaces the experimental World Browser feature in earlier builds.
Level Browser Redesign

The Level Browser (accessed through the Window menu) has seen a significant update in 4.3.

Level Browser Redesign

  • All the file operations (create new, save, save as, add, merge, etc) were moved from context menu into the toolbar button Levels.
  • Status bar has new view options: Display actor count for each level and Display full package names.
  • Less used operations like level transformations, Streaming Volumes management, and others can be done though Level Details panel which can be summoned by clicking a Details button on the Levels panel’s toolbar. Level Details is independent from the regular Details panel, that means it will show only selected level details. It also supports multi-selection.
  • In PIE the Levels panel will show simulation status of each level, hidden levels will have their visibility “eye” closed and unloaded levels will have their name color in gray.
  • When you drag a level into blueprint graph it will create GetStreamingLevel node for that level.
  • If something is missing or work incorrectly in a renewed Levels tool you can switch back to old Levels tool by using –oldlevels commandline parameter.
New: Render To Texture Blueprint

New texture baking features available with the ‘RenderToTexture_LevelBP’ Blueprint! In the Engine\Content\ArtTools\ directory now houses a blueprint named the RenderToTexture_LevelBP. This blueprint offers a few different baking options.

Some quick notes on usage:

  • RenderToTexture_LevelBP must be located at 0,0,0 in the world
  • You must have a player start in the world at 0,0,0 with 0 for rotation as well otherwise the camera will get the editor viewport rotation.
Render Unwrapped Material to Textures

This unwraps with a companion material function using a vertex shader. This can be useful if you want to bake out the result of something like World Aligned Textures to cut down on cost or if you for some reason needed to capture the engine static lightmap of a mesh to do something custom with it.

Unwrapped Material Textures

Render 3D Imposter Sprites

Imposters are like sprites that are represented from all view angles so they can rotate and light in 3D.

Render 3D Imposter Sprites

Example Imposters:

One of the meshes near the middle is a real static mesh, the rest are imposters.

Example Imposters

It also supports a mode called "Single Rotation Axis" which is meant to represent a billboard for a distant object on the horizon. What that does is only rotate the mesh around Z so that you get either more frames or more resolution than a full imposter.

Single Rotation Axis

This is a test scene using the Single Rotation axis imposters. Here the material was set to randomly rotate the position of the 'flipbook' by using worldposition, giving each a unique rotation.

World Rotation

Render a Per Object Shadow Depth Texture

This mode bakes a depth map from a specified light view and can be used to do a custom Per-Object shadow within a material. This example tree material is unlit and the shadow is provided from a depth texture. This was used on the Apple Zen demo.

Render a Per Object Shadow Depth Texture

Flipbook Animations

This mode is very similar to the Imposter sprite function. It uses a series of mesh rotations but this time they are specified by user input rather than pre-set by the blueprint.

It renders out the desired image types as a flipbook texture which can be animated on a sprite anywhere in the engine such as a particle effect.

Flipbook Animations

There is also the option to pass an "Animation Phase" parameter to the target mesh in order to render a vertex shader animation to a flipbook.

Flipbook Animations

New: Credits (Thank you!)

Past and future contributors are immortalized in Unreal Editor with our new Credits screen. We can’t thank you enough!”

Thank You Community Developers!

You can access the new Credits screen through the editor’s Help -> Credits menu.

Blueprints

New: Spline and Spline Mesh Components

We now have the ability to edit Splines directly in the world! By simply adding a Spline Component to your Blueprint and selecting an instance of that Blueprint, users gain access to editing splines within their levels.

Spline Mesh

You can also use a Spline Mesh Component to deform a StaticMesh along a spline. You can define a start and end location and tangent in the Details panel (or by calling functions).

Click on keys to select them.

  • Use the translate widget to move them around (the ‘tangents’ are automatically updated by default).
  • Alt-drag with a key selected to add a new one.

If you want more control:

  • Use the rotate widget to rotate the tangents.
  • Use the scale widget to extend them.

You can also right-click on a key to get a context menu:

If you want, you can also construct the spline inside your Construction Script using the AddSplineWorldPoint and SetSplineWorldPoints functions. If a spline is constructed inside the Construction Script in this way, the ‘Allow Spline Editing Per Instance’ flag should be turned off in the Blueprint defaults.

New: Reroute Nodes

Add Reroute Node... now shows up in the context menu when you click-drag off of a pin; you can make connections to a reroute pin like normal, move it around (by dragging near it or ctrl + dragging on it), and remove it by Alt + Clicking.

You can also put comments on a reroute node by double-clicking on the draggable area below, or hitting F2.

Reroute Nodes

New: Split Struct Pins

Users now have the ability to split a struct pin directly in place on the node instead of having to insert the Make and Break nodes.

Split Struct Pins

This works for both input and output pins of any struct, and if the split struct also contains structs, they can also be expanded. This is currently an Experimental feature and must be enabled in the Experimental section of the Editor Preferences.

New: Expand Enum for Output Pins

You can now enable expanded Enumeration execution pins for Blueprint Nodes. This has existed for input pins for sometime now, but now can be enabled for output execution pins:

Expand Enum for Output Pins

  • Now you can just create an enum, have one as an output parameter for your function, and mark that output parameter it as ExpandEnumAsExecs in the UFunction metadata (C++).
New: Data and Curve Table Support

Evaluate Curve Table Row will return you the output value for Row Name at XY:

Data and Curve Table Support

Get Data Table Row will return you a Row struct that can be broken into its individual component variables:

Get Data Tanble Row

New: Blueprints Control of Anim Trails

You can now control Anim Trail emitters in Blueprint (and code) without anim notifies.

  • The only restriction with this is that the particle system component must be the child of the skeletal mesh component from which you are sampling socket locations.
  • The Begin Trails function of the component will start all Anim Trail emitters in the Particle System.

Blueprints Control of Anim Trails

  • The EndTrails function of the component will end all Anim Trail emitters in the Particle System.

EndTrails

  • You can also alter the trails properties while it is running. Here we alter the width each tick using the game time.

Global Search

New: Global Blueprint Search

Find-in-Blueprints has been given a significant revamp to accommodate feature requests and should now be more robust and useful.

Searching should be more all-encompassing than ever before, finding: nodes, pins, pin values, graphs, variables, variable values, as well as searching animation graphs.

Searching is an asynchronous process, meaning it will not prevent you from using the editor as the search completes, you can also make multiple searches in different Blueprints at the same time.

Find-in-Blueprints now leverages the DDC for the searchable data - when Blueprints are updated their information is refreshed and when another user syncs that Blueprint the searchable data will be unreachable.

When Blueprints are not indexed in the system, it will inform you, as in the below image:

Not Indexed in Blueprints

  • Note: Level Blueprints are not fully supported, though you should be able to search your current level without a problem.

Scalability Updates

For 4.3 we’ve focused on editor performance and CPU usage of the editor

  • To improve editor performance scalability settings are now auto-applied by measuring CPU and GPU performance at editor startup.
    • Scalability settings may reduce the quality of some rendering settings and disable realtime preview in viewports to improve performance. You can read more about the scalability settings that can be applied here.
    • You can disable this feature and change scalability settings manually in the editor via the Quick Settings menu in the level editor toolbar

scalability Icon

Scalability in Editor

  • CPU Usage has been significantly reduced when the editor is minimized.
  • For laptops running on battery power, the editor framerate is throttled to a maximum of 60 hz in order to preserve battery life

Static Mesh Editor

New: Customizable Static Mesh Collision

The Static Mesh editor now supports adding multiple collision primitives of differing types, allowing for the quick creation of a custom collision setup, and modifications to existing collision to fix any issues affecting gameplay.

This can be used to make it easier to shoot through or traverse more complex geometry, as well as place blockers when you do not want to user to be able to. For example:

Static Mesh Example 1

Static Mesh example 2

The Static Mesh Editor now supports Capsule/Sphyl collision geometry too.

  • It attempts to calculate the correct axis it should align itself with, along with the best fit for the mesh. For example:

Capsule/Sphyl Collision

  • All the collision primitives can be selected with the mouse and moved, rotated, and scaled with the editor widget (Spacebar and W,E,R keys toggle manipulation type).
  • Collision primitives can also be multi selected (Ctrl+LMB), focused (F key), duplicated (Alt+drag) and deleted (delete key) if they are no longer needed - all of which should be transactional.

Release Notes

Marketplace

Black Jack is made completely in Blueprint and is mobile ready!

BlackJack

Learning Resources

  • In-Editor tutorials
    • New: In-Editor tutorial screens for Paper2D: Sprites and Flipbooks
  • New: SpeedTree documentation is included
  • New: Math Expression Node documentation page
  • New: Performance & Profiling Guide
  • New: World Composition documentation page
  • New: Matinee Track Reference
  • New: Android Quick Start guide
  • Updates & Improvements to Lighting documentation
    • New: Lighting Quick Start Guide
    • New: Distance Field AO Information & Video
  • Updates & Improvements to Physics documentation
    • PhAT
    • Collision
    • Walkable Slope
  • Updates & Improvements to Animation documentation
    • AnimNotifies & AnimTrails
    • FABRIK
    • Persona Animation Editor Modes
  • Added written tutorial & video tutorial links to the in-editor tutorial home screen
  • Introduction to Cascade Video Tutorial Series
  • Introduction to UE4 Programming Video Tutorial Series

Unreal Engine Launcher

  • New: Improved Layout: moved the top navigation elements to the sidebar and freed up space for the content display on the right.
  • New: Introducing the Library: Clicking on the Library tab brings you to the new home for all your engines, projects, and downloaded content.
  • New: Introducing the Vault: The vault contains all the items you have downloaded from the marketplace. You can quickly create new projects from the vault as needed. The vault allows you to easily remove or update vault items without worry of impacting projects you have already created.
  • New: Support for Preview builds of the Editor
  • Fixed: User should now see the newest download of an engine version instead of seeing older versions
  • Fixed: Fixed an issue creating projects with the 4.3 Editor that could cause a crash

New Additions

Editor and Tools
  • New: Credits! The editor now has a credits screen with everyone who has contributed from the community so far.
  • New: Added low FPS detection to the editor.
  • New: Property editor for default values in User Defined Structure.
  • New: Character Movement Component: Movement input & external forces can now be applied during path following.
  • New: Brush wireframe is now rendered stippled when behind objects when being moved.
  • New: Added Supported Platforms settings to the editor.
    • These provide a way to list the platforms your project is expected to run on.
  • New: Add Code to Project wizard improvements:
    • Improved the way you're notified whether a class with be Public or Private.
    • Added support to create non-UObject classes (empty C++ classes, Slate widgets, and Slate style assets).
    • The module header is now included relative to a known include path (to fix an issue creating classes inside sub-folders).
  • New: Asset View now supports secondary sorting.
  • New: The Packaging settings in the editor now lets you specify additional directories to stage.
  • New: Pressing Alt+Shift+R will now bring up the reference viewer for any selected objects in the level editor and asset viewer.
  • New: Added Edit Asset option to the Reference Viewer context menu.
  • New: Added Randomly Select Seed Array functionality to Random seed settings in Cascade.
  • New: Added the "local space cloth simulation" option in Skeletal Mesh Component.
  • New: Added cloth visualizations for convex collision volumes.
  • New: Added Editor-only functions to allow nodes to override their in-editor icon display.
  • New: Brushes now have unique labels.
  • New: Added Blueprint icon to show which nodes use Blueprint for their logic.
  • New: Added a manager to queue and process My Project requests, and added a cool down. State is now polled.
  • New: Deleting assets forces the Mode tab's Recently Placed list to be refreshed.
  • New: Supports cloth blending between simulated positions and skinned positions.
  • New: Supports to emit particles from simulating cloth vertices/surfaces.
  • New: Revamped LOD panel for skeletal mesh to look like static mesh LOD.
  • New: Auto-save improvements and performance tweaks:
    • You are now able to restore asset files that have not yet been saved to disk as a .uasset file.
  • New: Enable box selecting other kinds of actors in orthographic views (based on the bounds of any visible primitive components)
  • New: Added drop shadow and scaling based on thumbnail tile size to IES lumens display to make it readable.
  • New: Allowed non-interactive, in-editor tutorials to have multiple pages.
  • New: Copy/pasting from a property matrix which does not have common pins no longer crashes.
  • New: Raw and Unit Time Stats now display correctly if Unit Graph is not already enabled.
  • New: Color picker now displays an error when renaming a theme the same as another.
  • Fixed source control state to no longer be fetched for every content browser widget.
  • Fixed the Settings editor to no longer relies on read-only state of ini files.
  • Fixed grid lines to zoom correctly when switching to power of two in preferences.
  • Fixed crash when accessing the localization settings more than once.
  • Fixed crash when syncing 'root' directories from the content browser.
  • Fixed crash when deleting then attempting to rename blackboard key.
  • Fixed crash opening a new Behavior Tree.
  • Fixed crash when importing .jpeg files.
  • Fixed crash caused by the slow task progress dialog.
  • Fixed static lighting on Blueprint mesh components.
  • Fixed RescaleSimpleCollision so that ConvexElems position is updated when the build scale is increased (previously just scaled the verts).
  • Fixed the "build paths" option in the editor.
  • Fixed compiler error and minor optimization.
  • Fixed up Content Browser source control state delegate to use shared pointer semantics.
  • Fixed Behavior Tree diffs being backwards.
  • Fixed landscape editor mode being disabled after undoing the creation of a landscape.
  • Fixed the landscape dropdown in the landscape editor not updating to match the active landscape.
  • Fixed crash when force-deleting a mesh used by foliage. Note: Still not a good idea!
  • Fixed foliage placing on translucent and "no collision" meshes.
  • Fixed typo of "Orthographic"
Persona Animation Editor
  • New: Asset Picker now supports rename functionality.
  • New: Added Tweak UI for Cloth physics properties