July 31, 2014

Unreal Engine 4.4 Preview Notes

By Brandon Sieprawski

The upcoming 4.4 release includes a number of quality improvements for Persona usability, friction mode support, snapping actors to surfaces, constraining 3D physics objects into a 2D plane, and multi-line editable text functionality!

We would like to extend our gratitude to all of the amazing developers who contributed code to the upcoming 4.4 release.

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).

Major New Features

Persona

Improved! Animation Editing Workflow
  • FBX import errors now provide detailed inline descriptions.

FBX Import Errors

  • All AnimGraph nodes that reference assets now support double-clicking to open the asset for editing.
  • You can now preview animation sequences by hovering over the asset in the Asset Browser.

Animation Preview

  • Shift+Click can now be used to expand/collapse hierarchies in the Skeleton Tree.
  • The zoom feature in the Animation Editor now zooms in based on current mouse position.
  • Improved and simplified the layouts for all modes in Persona.

Persona Improve Layouts

  • Each mode in Persona now has a toolbar containing commonly used operations.

Personal Toolbar

Persona Tool Bar 2

  • Added the ability to “Save all Animation Assets” to the File menu in Persona.

Save All Animation Assets

  • You can now select a bone in the viewport when it’s hidden (mesh must have a physics asset).

Select Bones

  • The Display Info in the Persona viewport has now been simplified to only show essential information.

Persona Viewport Essential Information

  • An error message now displays when an invalid name is used for a Montage slot.

Montage Error Messages

  • Easily jump to documentation for each animation editor type using the new help links.

Animation Editor Jump

  • Mesh Detail View displays LOD settings in the order including materials per LOD

LOD screenshot

  • Retargeting option is now only shown in the Skeleton Tab

retargeting

  • Animations now have thumbnails in the Content Browser.

Animation Thumbnails

Blueprints

New: Blueprint Nodes

“Set members (in structure)” blueprint node:

“Set Timer Delegate” blueprint node:

Time Delegate

Materials

New: Clear Coat Shading Model

Recently a new shading model has been added called Clear Coat!

This can be used for multilayer materials where a translucent layer of film is over the surface of a standard material, either a metal or nonmetal. Specifically it was designed to model this second class of smooth colored films over a non-colored metal.

Some examples included acrylic or lacquer clear coats, and colored films over metals such as soda cans and car paint.

Two new parameters are exposed:

Clear Coat

  • Amount of clear coat layer, 0 acts like the standard shading model, 1 is the full clear coat model. This is useful for masking.

Clear Coat Roughness

  • Roughness for the clear coat layer. Our approximation is accurate for small values. Very rough clear coat layers are supported but won’t be very accurate to their real world counterparts.

On the left is the Monte Carlo reference, and on the right is our real time UE4 approximation:

Clear Coat Roughness

(note the flecks were done in the material editor and are not part of the shading model)

Editor

New: Friction Combine Mode

The engine now supports different friction modes!

Friction Combine Mode

By default we take the average friction coefficient when two bodies hit. However, this can be problematic for cases like ice where negative and positive coefficients are needed to average out to 0.

Different modes are useful for different types of effects. In the case of ice you would likely want either Multiply or Min with the ice material’s friction set to 0.

The friction mode can be set project wide or overwritten per physical material.

New: Snap Actors to Surfaces

There is a new button on the transform toolbar which allows you to project actors into the world as you drag them. This can be really useful for placing objects onto complex geometry.

Snap Actors

The snapping works in one of two ways, either by projecting through the drag plane (if you are dragging in a constrained plane), or by projecting the actors into the world in screen space (when dragging in all 3 axes).

Snap Actors Surface Example

Physics

New: Simple 2D Physics Constraints

The engine now supports easily constraining 3D physics objects into a 2D plane. This should help with 3D side scrollers.

2d Physics Constraints

The setting can be applied per object, or project wide by changing the project physics settings.

Ragdolls will by default only constrain the root body. This allows limbs of the ragdoll to move in 3D, while still keeping the entire asset in a 2D plane.

Slate

New Slate Widgets: Multi-line Editable Text

The multi-line editable text functionality in Slate (SMultiLineEditableText and SMultiLineEditableTextBox) should have feature parity with the single-line editable text, and is now considered available for use.

Additionally, the submit changelist description in the editor is now using a multi-line editable text box.

Slat Widgets

Please note that while these are available for use, they are not yet as battle hardened as the single-line versions, and are still under development so may yet require API changes.

Preview Notes

Editor and Tools

  • New: Added ENGINE_API to FComponentInstanceDataBase so it could be used in other modules.
  • New: Added the ability to flag custom events as CallInEditor and extended the main editor actor details view.
  • New: Added support for "lightweight highlighters".
  • New: Added ability to snap actors to surfaces in the world whilst dragging in the viewport.
  • New: Added function to detect connected mice on Win64/Win32.
  • New: Actors now default to being aligned to Z-up if they are placed on the background.
  • New: Dynamic parameters now copy their parameter names from pre-existing dynamic parameters.
  • New: Content Browser now resets the search filter when syncing an asset to the content browser.
  • New: Delete and rename Blackboard keys now work again from right-click menu.
  • New: Can now control tiling via the Texture Tiles property as well as the Tiling Distance.
  • New: The cancel button now appears on the feedback dialog while autosaving.
  • Moved the blend separate ARB fns to optional. Added extension check for the GL_ARB_draw_buffers_blend string.
  • Moved static mesh stat info text into Slate UI.
  • Modified struct customization for FMatrix and FTransform to work in the same way as the component transform details customization.
  • Removed the spurious 'set brush' transactions when placing geometry.
  • Removed Paper2D texture:// usage and dependency on Editor Style.
  • Removed transactions from importing normal maps.
  • Refactored StringClassReference to be a subclass of StringAssetReference.

Behaviour Tree

  • New: Added Behavior Tree execution order index widgets.
  • New: Added Behavior Tree node tooltips.
  • New: Added new tooltip text using tooltip metadata from C++ node classes & 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: Behaviour Trees are now correctly focused on double-click Correctly called through to parent implementation of FocusWindow().

Blueprints

  • New: Added BP-callable accessors for spline mesh component values.
  • Removed macro libraries from the variable type dropdown in the Blueprint editor.

Core

  • Helper functions have been added to FreferenceCollector to be able to automatically add references to TArrays, TMaps and TSets of UObjects.

Rendering

  • New: Added flag to TextRenderComponent that allows text to render unmodified when using debug visualization modes.
  • New: Added compression and sampler types for distance field fonts.
  • New: Changed default rotation for SpawnDecalAtLocation to point downwards.
  • Removed scaling when calculating tangents for instanced mesh particles.
  • Removed LocalToWorld scaling when calculating tangents for skinned meshes.

Cascade

  • New: Particle effect meshes now adhere to the view mode correctly.

Platforms

Android
  • New: Added call to adb which sends an input to unlock the screen before launching the game.
  • Tappy Chicken
    • Added 'Android Back' for specific back button support in Android.

We welcome comments and questions, so please head over to our forums and share your feedback!