PREVIEW!
A Preview of the upcoming 4.16 release is available now on the Launcher and Github. We have made this Preview available so that our developer-community can help us catch issues before the final release. As fixes are implemented, we will release updated previews throughout the development cycle. Please be aware that the preview releases are not fully quality tested, that they are still under heavy active development, and that they should be considered as unstable until the final release. Developers should not convert their projects for active development on preview releases. Please test on copies of your project instead.
We encourage users to check out the preview to try new features and inform us of any issues which we may not have caught. Links to known and fixed issues for this release are provided below. If you discover any additional issues with this preview release, please report them using the guidelines in the link: How to Report a Bug.
Known & Fixed Issues
-
Unresolved issues in 4.16 Preview targeted to be fixed by the 4.16 Release
-
Issues fixed in 4.16 (the fix may not be included in the current available Preview)
4.16 Preview Summary
This list provides a brief summary of updates in this Preview which may benefit from additional testing. Not all updates may be listed. Full release notes will be made available with the final 4.16 release. We may not be able to provide additional information about updates at this time.
-
Animation/Physics Updates:
-
A new clothing solver from Nvidia called NvCloth replaces APEX. This new solver gives more control over simulation and it is pretty close to the core solver of the previous APEX solution so should behave largely the same, although there are a few slight behavior changes and some extra exposed parameters for inertia settings. We now also always simulate clothing in local space - this gives us the benefit of only having one transform path through the solver and allows external inertia to be tweaked in much finer detail.
-
Vertex & Texture Painting on Skeletal Meshes has been added.
-
Vertex & Texture Painting on Static Meshes has been overhauled to improve usability.
-
A Spline IK node has been added to Animation Blueprints; useful for character spines.
-
Animation Modifiers are a new type of class which allow developers to apply a sequence of actions to a given animation sequence or skeleton. They should always implement OnApply and OnRevert to allow modifying data and remove previously applied changes.
-
Accessing Animation Modifiers is done through a new tab in the skeleton and animation editor.
-
A new set of functions to access specific animation data has been added, they’re contained by a new editor-only function library (Animation blueprint Library).
-
The RigidBody node supports simulating a physics asset inside an Animation Blueprint. This is similar to AnimDynamics, but instead of specifying a node per bone a single node is used for the entire skeletal mesh. Performance has also been improved.
-
PoseDriver has been improved, including more control over selected and modified bones, curve control, and UI improvements.
-
The ability to have Kinematic bodies with simulated parents has been added, allowing effects like a kinematic hand attached to other objects.
-
The ‘Look At’ node has been improved to be usable relative to a bone or socket.
-
Capsule collision can now be imported from an FBX file. You now use the ‘UCP’ prefix on a capsule poly mesh, and it will be removed on import, and replaced by a corresponding capsule collision shape.
-
The ability to store asset viewer profiles on a ‘shared’ or ‘local’ level has been added. This allows team to have a shared set of profiles which can be used as a unified scene to assess art assets. Shared profiles are stored in DefaultEditor.ini and will require you to check out or make it writable.
-
Added support to import Retarget Base Pose. A new option allows you to import the pose from Pose Asset.
-
Animation Export improvements support run-time retargeting results and animation that applies Post Process Graph.
-
Add ‘GetMaterialFromFaceIndex’ function for components retrieves the actual material after performing a complex line trace. This is supported for StaticMeshes, ProceduralMeshes and BSP.
-
The Play Montage Blueprint is an Async node, that can be used in any Blueprint logic to play Anim Montages, and have easy access to some of the callback events it provides.
-
Rendering Updates:
-
Volumetric Fog is now supported. Please follow this link to provide feeback.
-
Volumetric Fog controls are on the Exponential Height Fog Component.
-
Localized fog density can be controlled via particles. To do so, create a Material, set the material’s domain to Volume, and apply it to a particle emitter. The volume material describes Albedo, Emissive and Extinction for a given point in space. Albedo is in the range [0-1] while Emissive and Extinction are world space densities with any value greater than 0. Volume materials currently only work on particles, and only positions inside the particle’s radius are valid.
-
Each light has a ‘Volumetric Scattering Intensity’ and ‘Cast Volumetric Shadow’ setting. (fast-changing lights like flashlights and muzzle flashes leave lighting trails. Disable volumetric fog contribution on these lights with ‘Volumetric Scattering Intensity’ set to 0)
-
Supported lights include:
-
A single Directional Light, with shadowing from Cascaded Shadow Maps or static shadowing, with a Light Function
-
Any number of point and spot lights, with dynamic or static shadowing if ‘Cast Volumetric Shadow’ is enabled.
-
A single skylight, with shadowing from Distance Field Ambient Occlusion if enabled
-
Particle lights, if ‘Volumetric Scattering Intensity’ is greater than 0
-
Not currently supported:
-
Precomputed global illumination
-
Shadowing of Stationary skylights
-
IES profiles and Light Functions on point and spot lights
-
Shadowing from Ray Traced Distance Field Shadows
-
Shadowing from the volumetric fog itself
-
The GPU cost of Volumetric Fog is primarily controlled by the volume texture resolution, which is set from the Engine Shadow Scalability level. Use ‘profilegpu’ to inspect this cost.
-
Distance Field Lighting has been optimized for current generation consoles and mid-spec PC.
-
The Global Distance Field is much faster to update when a Movable object changes.
-
New project settings ‘Eight Bit Mesh Distance Fields’ and ‘Compress Mesh Distance Fields’ which significantly reduce memory requirements when enabled
-
Runtime cost has been reduced between 30-50%
-
Mesh Distance Field generation uses Intel’s Embree ray tracing library, for a 2.5x speedup
-
Vertex Interpolator nodes have been added to the material graph. These nodes offer better control for value interpolation between vertex and pixel work. These are intended as a workflow improvement, there are no changes to interpolator limits nor will shaders change. The feature is compatible with Customized UVs and will pack results together.
-
Post processing now supports Image-based (FFT) convolution for physically realistic bloom effects in addition to the existing bloom method. This new post processing feature is designed for use in cinematics or on high-end hardware.
-
Image based Convolution adds new control parameters to the existing Lens | Bloom section found in Post Process volumes.
-
In using a new texture to serve as the kernel image, it is important to ensure that the full image is present on the gpu and available at full resolution. Two settings are required to ensure this:
-
Mips Gen Setting should be set to NoMipmaps
-
Texture option Never Stream should be selected.
-
Core Updates:
-
Garbage Collection improvements make collection times twice as fast.
-
Removed support for Visual Studio 2013. VS 2015 and VS 2017 are currently supported.
-
Tools Updates:
-
Localized String Tables are now supported. These provide a way to centralize your localized text into one (or several) known locations, and then reference the entries within a string table from other assets or code in a robust way that allows for easy re-use of localized text. String Tables can be defined in C++, loaded via CSV file, or created as an asset.
-
Color Grading improvements include polished UI, a new HSV mode, dynamically changing the min/max value of sliders using Ctrl+drag, and a new Reset button.
-
The Asset Audit Window, built on top of the experimental Asset Management Framework, can be used to audit disk size, memory usage, and general asset properties for many assets at once. It is a specialized version of the Content Browser, and can be accessed from the Window->Developer Tools menu, or from the right click menu in the Content Browser or Reference Viewer. Once you have opened the window assets can be added using the buttons, and platform data loaded out of cooked asset registries can be loaded using the platform drop down.
-
Updates to VR Mode’s UI and interation include a new asymmetrical controller setup where you can change which controller has the interaction laser in Editor Preferences > VR Mode, and an updated Radial Menu with access to all major editor features and UI panels. Additional updates include smoothed interaction lasers and improved teleportation.
-
VR Mode now has access to the Sequencer Editor
-
Physics simulation is now possible in VR mode
-
Smart Snapping in VR Mode uses the bounds of your object to align to other actors in the scene, enabling you to exactly fit them together without needing to build modular assets with a grid in mind.
-
Sequencer Updates:
-
Shot enhancements include pre/post roll and hierarchical bias.
-
UI enchancements include re-sizable tracks and audio thumbnails now render the peak samples with an inner RMS curve
-
Material Parameter Collection Tracks have been added
-
Various minor improvements including Binding Override improvements, additional event receivers on Level Sequence Actors, event ordering, and more.
-
Audio Updates:
-
The new Unreal Audio Engine is available for testing on PC, Mac, iOS, and Android. It is not enabled by default in 4.16 as there is continued work on implementing backends for console platforms, Linux, and HTML5, as well as stability and performance improvements, especially on mobile platforms. It is enabled for each platform by changing the AudioDeviceModuleName ini setting in the platform’s Engine.ini file:
-
For PC, in WindowsEngine.ini set AudioDeviceModuleName=AudioMixerXAudio2
-
For MacOS, in MacEngine.ini set AudioDeviceModuleName=AudioMixerCoreAudio
-
For iOS, in IOSEngine.ini set AudioDeviceModuleName=AudioMixerAudioUnit
-
For Android, in AndroidEngine.ini set AudioDeviceModuleName=AudioMixerAndroid
-
The Steam Audio SDK has a fully-integrated implementation using the capabilities of the new Unreal Audio Engine. Click here for more details.
-
The new Synthesis Plugin contains two new real-time synthesizers written using the new Unreal Audio Engine’s “SynthComponent” class to implement a fully-featured subtractive synthesizer as well as a real-time granulator. It also contains a host of new DSP source and submix effects for use with the new Unreal Audio Engine.
-
Mobile Updates:
-
Android 23 (and above) now supports runtime permissions. Permissions are requested at runtime for the required ones used by the engine, and there is an Android Permission plugin to check for permission (Check Permission BP node), request it (AcquirePermissions BP node), and get the response (OnPermissionsGrantedDynamicDelegate). This is only necessary if Android Target SDK is set to 23 or above, otherwise any permissions in the Android Manifest are granted as usual.
-
4.16 requires Android SDK 23 or higher to be installed. Please use the SDK manager to install it if you have an earlier install. Also, in Android SDK project settings, please change your Android SDK API Level from “matchndk” to “latest”. This will use the newest installed SDK found in your Android SDK platforms directory. There is no need to change the NDK API Level; “android-19” is correct to allow installing your APK on Android version prior to Lollipop (Android 5.0); setting this higher will require Android 5.0+.
-
Improved Virtual Keyboard support on Android (Experimental). A new option in Project Settings > Platforms > Android > APKPackaging enables the improved virtual keyboard. This replaces the dialog input box. When this option is enabled, users should bind event handlers to FGenericApplication::OnVirtualKeyboadShown and FGenericApplication::OnVirtualKeyboardHidden.
-
Mobile performance improvements for Slate and UI rendering. Set the console variable Slate.CacheRenderData=0 to enable the option for Invalidation Panels to cache only widget elements, which improves texture batching and reduces draw calls.
-
HTML5 support for WebAssembly (WASM). This feature comes from Mozilla’s latest Emscripten toolchain (v1.37.9) and reduces app download size, startup times, memory consumption, and improves performance.
-
HTML5 support for WebGL 2. This provides better rendering performance, visual fidelity, and more rendering feature sets.
-
VR Updates:
-
Unified Console Commands across VR platforms. The previous code base did not share common interfaces across HDMs; now there is a shared layer that developers can work from rather than maintaining each platform individually. This provides several benefits such as easier bootstrapping of new platforms, consistent interfaces, and less redundancies in HMD implementations.
-
The mobile multiview path now supports GearVR. Mobile multiview is similar to instanced stereo on the desktop, and provides an optimized path for stereo rendering on the CPU. Enable this in your Project Settings under VR, and restart the editor to take effect.
REMEMBER: Please report any new bugs you find by following the How To Report a Bug Guide