32. Changelog

32.1. AGX Dynamics for Unreal 1.11.0 (2024-05-20)

Below the major features and changes introduced as of version 1.10.0 are stated.

32.1.1. Unreal Engine 5.4 Support

The plugin now supports Unreal Engine 5.4. The currently supported Unreal Engine versions are 5.2, 5.3 and 5.4.

32.1.2. Parent Frame in Wire Routing Nodes

When routing a wire it is now possible to specify a parent frame other than the wire component. This means that one can place a Body Fixed Node next to a Rigid Body Component and have the wire node follow the Rigid Body when it is moved in the Unreal Editor. For more information see AGX Wire Route.

32.1.3. Terrain Material Split

To better match the AGX Dynamics API AGX Terrain now has two physics materials, one used for collisions with Rigid Bodies and one for interactions with Shovels. Some manual steps are required to upgrade scenes with an AGX Terrain from prior versions. See Terrain Material Split.

32.1.4. Initial Joint Angle During URDF Import

The URDF importer now supports custom initial joint angles, making it possible to specify the initial configuration of the imported model.

32.1.5. AGX Dynamics Version Updated to 2.37.3.3

The bundled AGX Dynamics has been upgraded to version 2.37.3.0. For details see the AGX Dynamics changelog.

32.1.6. Buf Fixes and Improvements

A Paging Terrain no longer reads heights from the source Landscape into the template Terrain object, which reduces memory consumption. The camera sensor now has Blueprint Callable function to set the resolution. Deprecated Components has been moved to a separate group and given a custom icon to make it clearer that they should not be used. Fixed a bug in the deformable Terrain Material causing normals to not be updated due to deformations. Track now has a default render mesh, making it possible to see default rendered Tracks.

32.2. AGX Dynamics for Unreal 1.10.1 (2024-03-26)

Patch release that exposes Electric Motor Controller parameters to Blueprint Visual Script.

32.3. AGX Dynamics for Unreal 1.10.0 (2024-03-22)

Below the major features and changes introduced as of version 1.10.0 are stated.

32.3.1. Track Rendering

The Track Component now renders itself without the need for the BP_TrackRenderer Blueprint. The new Track renderer uses Instanced Static Mesh which interacts better with Temporal Super Resulution and produces less ghosting artifacts compared to the old renderer. Custom Track rendering is still possible in the same way as before.

32.3.2. Terrain Particle Data Interface

Terrain now uses Niagara Data Interface instead of a render target to communicate particle state from AGX Dynamics to Niagara. The particle data is stored with presistent indices instead of densely packed, which means that there may be holes in the data. Holes can be detected with the new Exists particle attribute. Custom Terrain particle renderers that uses the now removed render target should be updated to read through the Niagara Data Interface instead. See PS_SoilParticleSystem in the plugin content for an example. For more details see the Particle Rendering section of the user manual.

32.3.3. AGX Dynamics version updated to 2.37.3.0

The bundled AGX Dynamics has been upgraded to version 2.37.3.0. For details see the AGX Dynamics changelog.

32.3.4. Bug Fixes and Improvements

Asset icons has been added to asset types provided with the plugin. A few utility functions has been added, such as CalculateCenterOfMass and AddParentVelocity. Deselecting a Wire Component now also deselects any selected wire routing node. Mesh data is created even for non-visible Shapes, making it possible to detect them using e.g. Line Trace. Camera Sensor now includes post-process effects. Simulation TimeStamp and TimeStep is now of double precision floating point type. Exported applications that use Trimesh Shape with non-Allow-CPU-Access Static Mesh assets no longer crash on Linux. A problem with the material library assets when packaging projects has been fixed. A bug in the computation of Shape positions in attachment hierarchies has been fix.

32.4. AGX Dynamics for Unreal 1.9.0 (2024-02-13)

Below the major features and changes introduced as of version 1.9.0 are stated.

32.4.1. Wire Controller

AGX Dynamics for Unreal now exposes the AGX Wire Controller through Blueprint Visual Scripting and C++. The Wire Controller manages global wire settings, those which affect all wires or inter-wire interactions. For more details, see the Wire chapter of the user manual.

32.4.2. Wire Rendering

The Wire Component now renders itself without the need for the BP_WireRenderer Blueprint. Wire rendering is now also active during edit (before Play). The new Wire renderer uses Mesh instancing and should offer better performance than the now deprecated BP_WireRenderer.

32.4.3. Camera sensor (experimental)

AGX Dynamics for Unreal provides a Camera Sensor Component that can be used to capture the scene from that camera’s point of view. It also provides convenience functions for getting the image data either as an array of pixels (RGB) or as a ROS2 sensor_msgs::Image message. In addition to the Camera Sensor this release also contains an experimental implementation of a lidar sensor. For more details, see the Sensors chapter of the user manual.

32.4.4. License file copy tool

It is now easier to copy over existing license files from previous AGX Dynamics for Unreal installations to new ones, avoiding the need for unnecessary license activations. This tool is available from the Unreal Editor by selecting from the top menu AGX > License > Activate service license....

32.4.5. Bug Fixes and Improvements

FAGX_ConstraintBodyAttachment now supports beeing added to non-AGX_ConstraintComponent Components. Minor bugfixes and improvements.

32.5. AGX Dynamics for Unreal 1.8.0 (2023-12-08)

Below the major features and changes introduced as of version 1.8.0 are stated.

32.5.1. ROS2 Support

Support for ROS2 has been added. This means that it is now possible to send and receive ROS 2 message using both Blueprint Visual Script and C++, including Quality of Service control. A library of standard message types are supported, and it is also possible to build and parse custom messages. For more information see the ROS2 chapter of the user manual.

32.5.2. Shovel Component

A new and improved way to configure shovel properties has been introduced in the form of a Shovel Component. This Component replaces the old way which used multiple Components to define the edges and cutting direction of the shovel along with a long list of per-Shovel properties in the Terrain Actor. The new implementation store the Shovel properties in a new asset type so that per-Shovel settings can be shared between multiple shovels, and the edges and cutting direction is stored within the Shovel Component, reducing on the number of Components needed.

For more information see the Creating A Shovel section of the user manual.

The old way of configuring shovels is now deprecated and will be removed in a future release.

32.5.3. Can Collide on AGX Terrain

A toggle for Can Collide has been added to AGX Terrain. Toggle this off to disable contact generation between the terrain and any Shape in the scene.

32.5.4. Contact Point Visualization

A new toggle named Draw Shape Contacts has been added to the plugin settings. When enabled contact points generated by AGX Dynamics are visualized in the viewport.

32.5.5. AGX Dynamics version updated to 2.37.0.1

The bundled AGX Dynamics has been upgraded to version 2.37.0.1. For details see the AGX Dynamics changelog.

32.5.6. Component Reference Consolidation

A new unified Component Reference type, FAGX_ComponentReference, has been introduced and used throughout the plugin. This type replaces the multiple different types previously used to reference e.g. Rigid Bodies and Scene Components. The type-specific reference types still exists but inherits from FAGX_ComponentReference instead of duplicating all functionality. A consequence of this is that the member variable for the name of the referenced Component is less specific. Instead of RigidBodyName and SceneComponentName the member variable is now just Name. CacheCurrentSceneComponent has been removed.

32.5.7. Bug Fixes and Improvements

Unreal Engine assets created when AGX Dynamics archives are imported are now named according to Epic Game’s naming conventions. This means, for example, the Static Meshes are named with the SM_ prefix. Imported render meshes will be assigned a render material on the asset level in addition to on the Static Mesh Component in the generated Blueprint class.

32.6. AGX Dynamics for Unreal 1.7.1 (2023-10-04)

AGX Dynamics for Unreal 1.7.1 is a patch release that does not introduce new features.

32.6.1. Level Transition bug fix

The Simulation object will now release it’s AGX Dynamics resources on Level Transition and initialize again in the new Level. This enables users to perform Level Transition when using AGX Dynamics for Unreal.

32.7. AGX Dynamics for Unreal 1.7.0 (2023-09-26)

Below the major features and changes introduced as of version 1.7.0 are stated.

32.7.1. Shape and Contact Material Library

Shape Materials and Contact Materials defined in the AGX Dynamics material library are now present in the AGX Dynamics for Unreal Content. The material library includes several Shape and Contact Material Assets of common material types that can be used when creating physics models in AGX Dynamics for Unreal. For more details, see the User Manual.

32.7.2. Unreal Engine 5.3 support

The plugin now supports Unreal Engine 5.3. The currently supported Unreal Engine versions are 5.1, 5.2 and 5.3.

32.7.3. AGX Dynamics version updated to 2.36.1.3

The bundled AGX Dynamics has been upgraded to version 2.36.1.3. For details see the AGX Dynamics changelog.

32.7.4. Record and Playback

Experimental feature Play Record is now avaiable through the Play Record Component. During recording it writes data to a Play Record Asset which is stored permanently for later playback. Currently Constraint positions can be recorded and played back when using the Play Record Component. For more details, see the User Manual.

32.7.5. Shovel property Bottom Contact Threshold exposed in UI

The property Bottom Contact Threshold can now be set for each Shovel in the Simulation from the Details Panel.

32.7.6. Miscellaneous improvements and bug fixes

Asset categorization in Content Browser context menu. Rigid Body Velocity Damping handedness bug fix.

32.8. AGX Dynamics for Unreal 1.6.0 (2023-06-16)

Below the major features and changes introduced as of version 1.6.0 are stated.

32.8.1. Plotting

It is now possible to create plots from Blueprint or C++ in AGX Dynamics for Unreal. For more details, see the User Manual.

32.8.2. Terrain Render Material workflow

It is now easier to use custom Render Materials with AGX Terrain. For more details, see the User Manual.

32.8.3. Improved built-in Terrain Render Material

The M_DeformableLandscape Terrain Render Material included with AGX Dynamics for Unreal now features improved track mark visibility, overall looks and is easier to customize through Material Instances created from it.

32.8.4. Last version supporting Unreal Engine 4.27

AGX Dynamics for Unreal 1.6.0 will be the last version to support Unreal Engine 4.27.

32.8.5. Bug fixes

Bug fixes such as Shovel cutting direction normalization and some other minor fixes are included as well.

32.9. AGX Dynamics for Unreal 1.5.1 (2023-05-15)

AGX Dynamics for Unreal 1.5.1 is a patch release that does not introduce new features. The important difference between version 1.5.0 and 1.5.1 is that Unreal Engine 5.2 is now supported.

32.9.1. Unreal Engine 5.2 support

The plugin now supports Unreal Engine 5.2. The currently supported Unreal Engine versions are 4.27, 5.0, 5.1 and 5.2. Important: AGX Dynamics for Unreal 1.5.1 for Unreal Engine 4.27 is not avaiable via Epic Games Marketplace. It must instead be downloaded from: AGX Dynamic for Unreal 1.5.1. This only applies to Unreal Engine 4.27, AGX Dynamics for Unreal 1.5.1 is avaiable for Unreal Engine 5.0, 5.1 and 5.2 via Epic Games Marketplace as usual.

32.10. AGX Dynamics for Unreal 1.5.0 (2023-05-08)

Below the major features and changes introduced as of version 1.5.0 are stated.

32.10.1. Terrain Paging

Terrain Paging, allowing usage of a Terrain with big Landscapes while keeping excellent performance, is now supported. For more details, see the User Manual.

32.10.2. AGX Dynamics version updated to 2.36.0.0

The bundled AGX Dynamics has been upgraded to version 2.36.0.0. For details see the AGX Dynamics changelog.

32.10.3. Constraint Self Collision Toggle

A new toggle has been added to all Constraints: Self Collision. By setting this to false any overlap between the two Rigid Bodies attached to that Constraint will not result in any contacts. Default is true, i.e. contacts are generated by default.

32.10.4. Collision Groups on Wire and Terrain

Collision Groups can now be added on Wires and Terrains the same way as for Shapes. This makes it easy to selectively disable collisions between Wires, Terrains and other objects in the Simulation.

32.10.5. Contact Reduction Level as an enum

The Contact Reduction Level of Contact Materials now uses an enum instead of a numeric value. This is exposed as a drop-down list in the GUI, making the setting more clear and easy to use. Note that when an old project is opened with AGX Dynamics for Unreal 1.5.0 and newer, any numerical value larger than 3 for this property will get “truncated” to mean the enum literal Minimal. This may therefore affect the Simulation behaviour of old projects opened in AGX Dynamics for Unreal 1.5.0 or newer.

32.10.6. Expose MoveTo To Blueprints

An AGX Dynamics utility function that computes linear and angular velocities for a kinematic Rigid Body so that it reaches a target position and rotation after a specified time.

32.10.7. Improved revision information in About dialog

The AGX About dialog now contains unique build revision information. This information is helpful to share when e.g. contacting the support team to report issues or get support.

32.10.8. Viewport Icons

The Wire Actor, Terrain Actor, Contact Material Registrar Actor and Collision Group Disabler Actor now all have uniformly styled Viewport icons making them easier to find in the Viewport.

32.10.9. Improved module dependency management

When using AGX Dynamics for Unreal from an Unreal C++ project, it is no longer required to list the AGXUnrealBarrier as a dependency in the projects <YOUR_MODULE_NAME>.Build.cs files. Having only AGXUnreal as a dependency will automatically make AGXUnrealBarrier available in your project.

32.10.10. Bug fixes

Bug fixes such as to Rigid Body references in Blueprints, auto-fit, and Contact Material friction coefficient propagation during live edits.

32.11. AGX Dynamics for Unreal 1.4.1 (2023-03-21)

AGX Dynamics for Unreal 1.4.1 is a patch release that does not introduce new features. Fixes issue with Shape transformation being locked in Blueprint after performing AutoFit. Fixes issue with crash during Model Synchronization.

32.12. AGX Dynamics for Unreal 1.4.0 (2023-03-13)

Below the major features and changes introduced as of version 1.4.0 are stated.

32.12.1. Model Synchronization

It is now possible to synchronize a Blueprint of a previously imported model against an AGX Dynamics archive (.agx). The Blueprint will be updated according to the selected archive (.agx) but without overwriting user changes. This is useful if the original archive (.agx) has been changed but a complete, new, import is not desired. For more details, see the User Manual.

32.12.2. Unreal Engine 5.1 support

The plugin now supports Unreal Engine 5.1. The currently supported Unreal Engine versions are 4.27, 5.0 and 5.1.

32.12.3. Open World Landscape support

The Terrain now supports Open World Landscapes. For more details, see the User Manual.

32.12.4. AGX Dynamics version updated to 2.35.0.0

The bundled AGX Dynamics has been upgraded to version 2.35.0.0. For details see the AGX Dynamics changelog.

32.12.5. Simulation Step Forward Delegates

It is now possible to bind custom Events from Blueprint or C++ to any of the Pre- or Post Step Forward delegates, now exposed by UAGX_Simulation. For more details, see the User Manual.

32.12.6. Terrain Displacement Map

The Terrain Displacement Map now uses the Terrain Bounds to determine it’s overall size. This leads to improved memory usage and performance compared to previous versions, when using Terrain Bounds smaller than the overall Landscape. The height update algorithm of the Terrain Actor, responsible for updating the Displacement Map, has also been updated to increase its performance.

32.12.7. Example Terrain Displacement Material updates

The example Terrain Displacement Material now supports non-square and non-centered Landscapes. It will resize/scale itself automatically to the Landscape.

32.12.8. Observer Frame Component

There now exists a dedicated Observer Frame Component, whereas previously this was represented by an ordinary Scene Component.

32.12.9. Simulation performance improvement

The default number of threads used by AGX Dynamics has been increased from 1 to 4, allowing for faster simulations on mutli-core processors. The number of AGX Dynamics threads can be set from the plugin settings.

32.12.10. Landscape Material parameters renaming

The Landscape Material parameters set by the Terrain to specify the size and position of the Terrain has been renamed so that they now begin with Terrain instead of Landscape. For example, LandscapeSize has been renamed TerrainSize. An example usage of this can be seen in M_DeformableLandscape asset located in AGXUnreal/Content/Terrain/Rendering/HeightField.

32.13. AGX Dynamics for Unreal 1.3.1 (2022-11-16)

A bug fix release for the 1.3 line of versions, with some new features.

  • Add Terrain Bounding Volume, making it possible for a Terrain to cover a subset of a Landscape. * Additional feature support, such as multiple Terrains per Landscape and digging in Open World Landscapes, is in development.

  • Support non-square and non-origin Landscapes and Terrains in the example Deformable Landscape material. * Additional material parameters have been added to set the Landscape size and location.

  • Automatic Landscape and Terrain material parameter passing for size and location. * The Landscape must have the Use Dynamics Material Instance setting enabled for this feature to work.

  • Add support for linear and angular velocity damping on Rigid Body.

  • Add live editing of Terrain properties during Play In Editor sessions.

  • Add a number of Terrain Material properties, including excavation and particle properties.

  • Add a number of Shovel properties,

  • Add a number of GetFrom overloads in FAGX_AGXDynamicsObjectAccess.

  • Some Terrain Material properties has been given more descriptive names.

  • Shape Components are now hidden during Play when Hidden In Game is enabled.

  • Fix a unit conversion bug with Terrain Max Depth. The value is now correctly read as Unreal units, i.e. cm.

  • Clarify Damping vs Spook Damping in user manual.

  • Reduced log verbosity.

32.14. AGX Dynamics for Unreal 1.3.0 (2022-10-27)

Below the major features and changes introduced as of version 1.3.0 are stated.

32.14.1. Track

Support for Track which exposes functionality of AGX Dynamics Track in AGX Dynamics for Unreal. For further detail, see the User Manual.

32.14.2. AMOR (Adaptive Model Order Reduction)

Support for AMOR (Adaptive Model Order Reduction) which exposes functionality of AGX Dynamics Merge Split Handler in AGX Dynamics for Unreal. For further detail, see the User Manual.

32.14.3. Faster imports of AGX Dynamics archives and URDF files

The performance of the pipeline for importing AGX Dynamics archives (.agx) or URDF files have been improved. This was done utilizing multithreading and the performance gain will therefore be tightly linked with the computer hardware.

32.14.4. Configurable setting for number of threads used by AGX Dynamics

From the project settings, it is now possible to change the number of threads that will be used by AGX Dynamics. For further detail, see the User Manual.

32.14.5. Asset type classes redesign

Asset type classes, such as AGX_ShapeMaterial and AGX_TerrainMaterial among others, have been redesigned such that they are no longer split up into several classes depending if they represent an Asset in the Content Browser or something that is instantiated in the game world. Instead, they have been combined into a single class which may represent any of these cases. This change mostly affect interaction with these classes through C++ code, and not so much interaction via Blueprint or other parts of the Unreal Editor.

32.14.6. Extended AgxDynamicsObjectsAccess

The AGX_AgxDynamicsObjectsAccess class has been extended to also include agxTerrain::Terrain and AMOR (Merge Split) related classes.

32.14.7. AGX Dynamics version updated to 2.34.0.0

The AGX Dynamics version that AGX Dynamics for Unreal is built against is now 2.34.0.0. For details see the AGX Dynamics changelog.

32.15. AGX Dynamics for Unreal 1.2.0 (2022-06-02)

Below the major features and changes introduced as of version 1.2.0 are stated.

32.15.1. New Wire Renderer algorithm

A new Wire Renderer algorithm has been added to the BP_WireRenderer called Fixed Length Spline Meshes that was created in order to combat an issue where the Wire seems to blink rapidly when rendered to the screen. This algorithm can be selected in the Details panel of the BP_WireRenderer. Note that for really long Wires, this algorithm might cause performance issues since the number of Spline Meshes can become large. Increasing the Segment Length variable can help with this. Changing the algorithm back to the old One Spline Mesh Per Wire Segment is also possible.

32.15.2. Constraint visualization scaling

A new setting for scaling Constraint visualizations on screen has been added called Constraint Visualization Scaling Distance Max. It was introduced to avoid Constraint visualization graphics to get too large on the screen. Read more details in the User Manual.

32.15.3. Unreal Engine 4.25 not supported

Support for Unreal Engine 4.25 has officially ended. The currently supported Unreal Engine versions are 4.26, 4.27 and 5.0.

32.15.4. General bug fixes and stability improvements

A number of bug fixes and stability improvements has been added.

32.16. AGX Dynamics for Unreal 1.1.0 (2022-05-02)

Below the major features and changes introduced as of version 1.1.0 are stated.

32.16.1. Unreal Engine 5.0 support

The plugin now supports Unreal Engine 5.0. AGX Dynamics for Unreal 1.1.0 is the last version to support Unreal Engine 4.25.

32.16.2. New license system support

The AGX Dynamics service license system is now supported including support for offline activation. See the chapter about Licensing in the User Manual for more details.

32.16.3. Constraint2D Controllers exposed to Blueprint

The Constraint2D Controllers can now be accessed from Blueprint.

32.16.4. FAGX_RealInterval introduced

Replaces FFloatInterval where it was used to represent potentially infinite intervals passed to AGX Dynamics. Also adds supports for scientific notation in Details panels. Works around a bug in Unreal Engine 4.27 causing Unreal Editor to crash when selecting an AGX Constraint containing infinite force range.

32.16.5. AGX Dynamics Statistics

Statistics about the state of the Simulation can easily be enabled by running the Console command stat AGXUnreal inside the Unreal Editor. See the chapter about Statistics in the User Manual for more details.

32.16.6. Observer Frame import from AGX Dynamics archives

Observer Frames are now imported from AGX Dynamics archives as Scene Components.

32.16.7. Icons for the AGX toolbar menu entries

Icons has been added to the AGX toolbar menu entries.### Third party library dependency fixes for Linux. Reduced storage usage by not passing symlinks through Unreal Build Tool. Instead using patchelf to remove the need for library symlinks.

32.16.8. AGX Dynamics version updated to 2.32.1.0

The bundled AGX Dynamics has been upgraded to version 2.32.1.0. For details see the AGX Dynamics changelog.

32.16.9. General bug fixes and stability improvements

A number of bug fixes and stability improvements has been added.

32.17. AGX Dynamics for Unreal 1.0.0 (2022-02-22)

This marks the first public release of AGX Dynamics for Unreal that builds upon years of experimentation and beta releases in collaboration with early-access users. AGX Dynamics for Unreal is a plugin for Unreal Engine that integrates the physics engine AGX Dynamics, giving Unreal Engine users access to industry grade physics simulations. Notable changes since the last beta release include support for contact warmstarting, scientific notation for material properties, Blueprint driven simulation stepping and integration of a few of AGX Dynamics’ performance counters into the Unreal Engine stats system.