34. Version Upgrade

34.1. AGX Dynamics for Unreal 2.0

Terrain particle rendering is now performed by a Particle Rendering Component instead of the AGX Terrain Actor. The UAGX_SoilParticleRendererComponent is a built-in Component that behaves similarly to the way the AGX Terrain Actor did particle rendering previously, i.e. it uses a Niagara System to render the particles. Note that the Niagara System Asset used for particle rendering has been changed, and old versions of this Asset will likely not be compatible anymore. The built-in Niagara System Asset at AGXUnreal/Content/Terrain/Rendering/Particles/SoilParticleSystem/PS_SoilParticleSystem may be used. Also see the new UAGX_UpsamplingParticleRendererComponent that does particle upsampling on the GPU for a better visual experience.

Statistics gathered from AGX Dynamics, and displayed with stat AGXDynamicsStepTimers and stat AGXDynamicsFrameTimers now cover more of what AGX Dynamics reports. There are now more entries than in prior versions, and some entries have been renamed to better matc the names in AGX Dynamics.

Some Barries types are now struct instead of class.

UAGX_Simulation Add and Remove functions now return a boolean value to indicate the result.

Shovel has been refactored in AGX Dynamics which has been reflected also in AGX Dynamics for Unreal. Cutting Direction is now Tooth Direction instead and Tooth Length produces geometrical changes to the Shovel collision shape. Cutting Direction is deprecated and during load of old data the value of Cutting Direction is read into Tooth Direction and Tooth Length is set to zero to prevent any change in the Shovel collision geometry.

Terrain Properties is now it’s own Asset type. Previously, some of these proeprties where exposed directly on the Terrain Actor. These have been moved to the new Terrain Properties Asset, and more Terrain Properties have now been added.

Shovel Components now register themselves with the Simulation on BeginPlay. This means the Shovel Components array in the Terrain Actor no longer exists. When using Terrain Paging, any Shovel or Rigid Body that should be tracked still needs to be added to the Terrain Paging Settings in the Terrain Actor Details Panel.

34.2. AGX Dynamics for Unreal 1.16

Scale constant moved from Wire to Wire Parameter Controller, to better match the AGX Dynamics API.

34.3. AGX Dynamics for Unreal 1.14

34.3.1. Rigid Body Move To Function

Support quaternions, in addition to rotators, when calling Move To on a Rigid Body. Blueprint scripts using the Move To node may need to recreate it.

The addition of 64-bit floating-point variants of Constraint functions is mostly backwards-compatible since the 32-bit variants are still available but in some cases it is necessary to right-click > Refresh Nodes and reconnect the input and output wires.

34.3.2. Barrier Module Header Files

More internal Barrier module types exposed to project’s Barrier modules. Some header files moved to the BarrierOnly directory. FEmptyShapeBarrier removed, use FShapeBarrier instead.

34.3.3. 64-bit Floating-Point Get And Set Functions

Getter and setter functions for data that is 64-bit in AGX Dynamics is not 64-bit in the Blueprint API as well. The old functions still exist but has been marked deprecated.

34.3.4. LidarLineTrace Enum Name Changes

Enum EAGX_LidarScanPattern has been renamed to EAGX_LidarLineTraceScanPattern. Enum EAGX_LidarExecutonMode has been renamed to EAGX_LidarLineTraceExecutonMode.

Instances of the LidarLineTrace Component may need to be updated.

34.4. AGX Dynamics for Unreal 1.13

No breaking changes.

34.5. AGX Dynamics for Unreal 1.12

34.5.1. Camera Sensor Component

The Camera Sensor Component has been revamped to support both 8-bit and 16-bit color channels. This change resulted in a new class hierarchy that is not backwards compatible with the previous Camera Sensor Component.

34.5.2. Shape Contact Blueprint Function Library

For consistency, the Shape Contact parameter to various Blueprint Callable functions has been renamed from Shape Contact Ref to Shape Contact. You may get the following error message when upgrading the plugin in an existing project:

In use pin  Shape Contact Ref  no longer exists on node

This is fixed by dragging the input wire from the old input pin to the new one.

34.5.3. Box Shape Component > Half Edge

The Half Edge property on Box Shape Component is no longer directly exposed to Blueprint Visual Script. Use Set or Get Half Extent instead. This is required because during runtime it is not enough to change the property on the Unreal Engine object, the Half Edge must also be updated on the AGX Dynamics object and the render mesh, if visible, must be updated.

34.6. AGX Dynamics for Unreal 1.11

34.6.1. Wire

With the introduction of parent frame in Wire Component routing nodes, the Location property moved into the frame. The following image shows how to create a wire routing node and set the local location of the new node’s frame. It also shows how to set the name of the parent Scene Component.

Creating a wire routing node with a local location and frame parent name.

Creating a wire routing node with a local location and frame parent name.

34.6.2. Terrain Material Split

To better match AGX Dynamics the Terrain Material asset type has been split so that a Terrain has one Terrain Material and one Shape Material, instead of only a Terrain Material. When a Terrain Material asset saved before the split is opened the Details panel will contain a message stating that some properties have been removed from Terrain Material along with a button to create a new Shape Material asset and populate it with those properties. The Terrain’s Shape Material property should then be set to this newly created Shape Material. This should be done for all Terrain Material assets.

Additionally, any Contact Material assets that used to reference the Terrain Material should be updated to instead reference the newly created Shape Material. During load of such a Contact Material will get a warning in the Output Log similar to

Warning: Serialized Class /Script/AGXUnreal.AGX_TerrainMaterial for a property of Class /Script/AGXUnreal.AGX_ShapeMaterial. Reference will be nullptred.
  Property = ObjectProperty /Script/AGXUnreal.AGX_ContactMaterial:Material2
  Item = AGX_TerrainMaterial /Game/YourProject/YourFolder/YourContactMaterial.YourContactMaterial