Skip to main content

Changelog

Version 1.0 (07/2024)​

  • Initial Release, basic functionalities

Version 1.1 (08/2024)​

  • Network Replication
  • Support for non-physics-simulating Actors and Non-Vehicle Actors
  • Support for impulses through new AddHitToLocation function
  • Various refactorings of the component
  • Removed: "Vehicle Material" setting

Version 1.2 (09/2024)​

  • 12 new functions have been added to influence the materials from the Procedural Mesh, for example to control the vehicle lighting.
  • New getter function has been added to expose the Procedural Mesh.
  • A bug that only one material slot is taken into account (the last index) is also fixed.

Version 1.3 (10/2024)​

  • Demo map:
    • A bug has been fixed in the demo map where the tires constantly slipped into the ground
    • Collisions in the demonstration vehicle have been reworked
  • C++ optimizations have been made. Among other things, all for loops processing large data sets have been parallelized and are now executed using a multithreading process, which applies dynamic chunking depending on system performance and the size of the data set.
  • Multiple UVs are now supported, up to 4 per section of the static mesh.
  • The damage model has been completely revised. Among other improvements, you can now define the damage falloff via a curve. In the curve, you can determine precisely where the center of the damage is and how it should be distributed. You can also apply noise to make the damage appear more dynamic.
  • An "On Impact" event has been added to allow binding, for example, to damage display widgets or anything that needs to be updated after an impact.
  • Collision damping has been improved and now functions more effectively.
  • And much more.

Version 1.3.2 (01/2025)​

  • Fixed an error in the tool that caused the tool to lag when selecting assets.
  • C++ accessibility of all important functions, events and variables.
  • A new experimental feature: ProtectionBox Component, which can protect areas from deformation (for example driver's seat with driver).
  • Minor bugfixes.

Version 2.0 (05/2025)​

  • Upgrade-Guide
  • New documentation (old documentation)
  • Complete overhaul of the Deformable Mesh Tool
  • Switch from DataTable to DataAsset (DeformableMesh)
    • One mesh per data asset instead of potentially multiple meshes in one data table. See Upgrade-Guide
  • Support for external marketplace plugin "RealtimeMeshComponent"
  • Support for LODs (only in combination with RealtimeMeshComponent)
  • Example C++ actor (ExampleDeformableActor)
  • Refactorings
    • Most of the important functions were moved to C++ for better performance
    • All settings are now available in C++
    • Some deprecated functions were removed
    • We now make use of the OnRegister function instead of BeginPlay for earlier loading of the mesh
    • Several functions and properties were re-organized for better readability and usability
  • New Events
    • DeformableMeshLoaded
    • DeformableMeshInitialized
    • DeformableMeshUpdated
    • AfterImpact (this one was broken in previous version)
  • New Settings
    • Performance-Settings
    • Profiling-Settings
  • Networking
    • ResetDeformation is now replicated by default
    • RandomCarColor is also replicated by default
  • ... many small things - too many to list them here :)

Version 2.1 (06/2025)​

Version 2.1.5 (08/2025)​

  • New Hit Zone Component and an example in the Example Vehicle (engine smokes after several impacts).
  • Bugfixes:
    • The After Impact event sometimes triggered while the impact happened and not after the impact happened.
    • Fixed an issue with RMC in Unreal Engine 5.5 (only affecting multiplayer games).
    • Only one Impact Effect could be triggered at a time.
  • Optimizations:
    • Only replicate hits that are actually processed. Previously the component sometimes replicated hits, that would not have been processed due to Impact Registration Interval.
  • Miscellaneous:
    • New Before Impact event that is triggered before a hit is processed.
    • Both After Impact and Before Impact events now include a Component parameter (which is the DeformableMeshComponent that triggered the event).
    • New Settings Min Velocity and Max Velocity for Impact Effect.

Version 2.1.5.1 (09/2025)​

  • Miscellaneous:
    • Removed Settings Min Velocity and Max Velocity for Impact Effect and replaced with Min Impact Strength and Max Impact Strength for better control.
    • Basic documentation for profiling

Version 2.2 (10/2025)​

  • Bugfixes:
    • (Replication) The hit history may have been processed too early, making it appear as if no hits had been replicated.
    • (Replication) The procedural mesh was sometimes not attached correctly for clients and was drive-through.
    • (Replication) It was possible that in rare cases, the processing of the hit history could take place in the GameThread, which led to a crash.
  • Features:
    • You can now change the deformable mesh dynamically using the function ChangeDeformableMesh. Previously you were not able to change it while playing but now you can!
    • We now provide a material function MF_Deform which you can use instead of copying or using our template material.
    • R-Tune exclusive: Move and tilt your wheels on impact using the UpdateWheelPositions function!
  • Miscellaneous:
    • The StaticMeshExample-Actor (BP_DeformationExampleStaticMesh) is now replicated and can switch between the vehicle deformable mesh and a sphere deformable mesh using ChangeDeformableMesh. The key binding for this is "F".

Version 2.2.1 (11/2025)​

Version 2.3​

  • Support for Unreal Engine 5.8
  • Bugfixes:
    • Material slot names are now processed correctly and stored in the mesh component so that they can be accessed (eg. using the function SetMaterialByName). See here for an example.
      • IMPORTANT To use this, the deformable mesh asset must be refreshed once using this version of the plugin.
  • Miscellaneous:
    • The custom material functions that we provided (e.g. AddMaterialInstanceSlot, SetMaterialFloatParam, ...) are now deprecated and will be removed in future updates. They are not required anymore, because you can simply use the generic material functions provided by the mesh component itself. See the linked topic for more information.
    • Hazard lights are not included in the component itself anymore. The logic is very specific and that's why we moved it to the example car blueprint.

Version 2.3.1.1 - GPU Renderer Update​

GPU Deformation Pipeline​

This update moves Easy Static Mesh Deformation Component toward its own GPU deformation pipeline while retaining CPU (Deprecated) for existing projects. The guides below cover configuration, behavior and migration, not just the feature names:

  • Custom GPU renderer: Plugin-local compute shaders update vertex positions and vertex damage colors. Prepared LODs work independently of RealtimeMeshComponent, without per-hit CPU mesh rebuilds as the main deformation solution.
  • GPU Deformation Subsystem: Central hit collection, scheduling and batching for multiple deformable components, with separate mesh ownership and ordered processing.
  • Direction-based damage: Impact-aligned asymmetric dents, noise, shear and buckling. Accumulated section damage makes repeated impacts produce a stronger response.
  • Damage Zone boxes: User-placed front, rear, side, roof, core or custom regions per deformation component, with configurable resistance and blend boundaries.
  • Advanced damage debugging: Optional zone display, section damage/shear, separated hit status and sampled output checks.
  • Multiplayer recovery: Compact damage snapshots, delta hit history, client relevancy recovery and budgeted native replay. Recovery is spread across components to reduce simultaneous replay spikes; retained-history and frame-time limits still apply.

See Upgrading before migrating existing actors and custom Blueprint replay graphs. The GPU workflow targets reduced CPU mesh-update overhead for large meshes, many hits and multiple vehicles; actual FPS depends on the scene and hardware.

Other Changes​

  • Chaos Vehicles is no longer required by the core deformation plugin. It remains an optional dependency for the supplied Chaos vehicle examples. Enable Chaos Vehicles and restart the editor before loading or playing those examples; other deformation setups can run without it. See Examples.
  • Shader installation: Shader sources are included under Source/DeformableMeshComponent/Shaders/Private. Install matching binaries and shader sources together; replacing only the binaries is not sufficient. See Upgrading and the missing-shader FAQ.

Unreleased Fixes​

These changes are pending release. They do not require changes to existing Blueprint graphs or damage settings.

  • GPU renderer cleanup: GPU mesh resources are now released on the render thread before the proxy is deleted. This addresses a render-thread assertion during proxy recreation or level transitions on UE 5.4 and later, where Unreal can delete retired proxies on worker threads. The cleanup also supports UE 5.2 and 5.3; CPU deformation is unchanged.
  • Deformation data loading: Failed initial loads now leave the loading state cleanly without enabling deformation on missing data. Cancelled initialization callbacks cannot initialize an unregistered component, and registering the same component again can complete an interrupted initialization. Existing source-mesh visibility settings and Blueprint loader success callbacks are preserved.