Chaos Trailing Events not exposed to Blueprints and only accessible via Niagara Chaos DI.
The licensee noticed that the Trailing event is not available to BPs. It's expected that the same data available to Niagara Chaos Destruction Data Interfaces should be available to BPs. On the other hand, on the Niagara side we lack the Removal and Crumbling data available to BPs.
Data should be uniformized on both sides, BP and Niagara.
This behavior is the same since 5.0 and onto 5.6:
BP - events: break, removal, crumbling (not present on 5.0), physics collision
NS - collision, breaking, trailing
The licensee has given some context on their particular use case:
The Niagara Data Interface Chaos Destruction is great to use for setting up some quick prototyping on a destructible, but I'm apprehensive to use it on a larger scale. For it to work with realtime destruction, you always need the Niagara system active and placed in the world so it can pick up the events triggered by chaos destruction instead of dynamically spawning in the system. ( this feels quite backwards having to always load in a Niagara system in a level and pay for the overhead even when it's not getting used)
If you just have 1 type of destruction and a Niagara system that's fine, but once your destruction becomes more complex and dynamic and of different physical types etc, it would mean that you would need quite a few different Niagara systems actively running, waiting for chaos events to happen. (that or you would have to build some management system around it to decide what Niagara system should get loaded at which point, but datachannels would basically do this for you)
Hence why I was exploring the option to set up my own datachannels for chaos destruction. I'm a big fan of the datachannel Island workflow, because it can clean the up the Niagara system when it stops being used. I was looking at doing a simple datachannel write from my chaos event notifies in bp ( which works like a charm), instead of using the Chaos data interface. You have full control there to which datachannel you want to write the info to per chaos asset and it's all dynamic etc. But since we don't have trails available there, we can't hit all our visual targets
Create a blank project
Create a Blueprint from an Actor
Open it and add a Geometry Collection Component
With the added Geometry Collection Component selected, scroll the Details panel to the bottom to the tab Events and check that the available On Chaos events are: Break, Removal, Crumbling, Physics Collision.
Expected result: Trailing events should also be supported
Actual result: Trailing events are not supported
If you create a Niagara System and add a User Parameter Chaos Destruction Data Interface, you gain access to collision, breaking, and trailing (requires enabling Generate Collision/Break/Trailing Data in the Project Settings).
No callstack, but I've checked the source code for the GeometryCollectionComponent, and indeed, the events available to BP are only OnChaosBreakEvent, OnChaosRemovalEvent, and OnChaosCrumblingEvent:
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChaosBreakEvent, const FChaosBreakEvent&, BreakEvent);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChaosRemovalEvent, const FChaosRemovalEvent&, RemovalEvent);
DECLARE_DYNAMIC_MULTICAST_DELEGATE_OneParam(FOnChaosCrumblingEvent, const FChaosCrumblingEvent&, CrumbleEvent);
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnGeometryCollectionFullyDecayedEvent);
DECLARE_DYNAMIC_MULTICAST_DELEGATE(FOnGeometryCollectionRootMovedEvent);
DECLARE_MULTICAST_DELEGATE_OneParam(FOnGeometryCollectionRootMovedNativeEvent, UGeometryCollectionComponent*);
...
UPROPERTY(BlueprintAssignable, Category = "Chaos")
FOnChaosBreakEvent OnChaosBreakEvent;
UPROPERTY(BlueprintAssignable, Category = "Chaos")
FOnChaosRemovalEvent OnChaosRemovalEvent;
UPROPERTY(BlueprintAssignable, Category = "Chaos")
FOnChaosCrumblingEvent OnChaosCrumblingEvent;
// todo(chaos) remove when no longer necessary
FOnChaosBreakEvent OnRootBreakEvent;
FOnGeometryCollectionFullyDecayedEvent OnFullyDecayedEvent;
FOnGeometryCollectionRootMovedEvent OnRootMovedEvent;
FOnGeometryCollectionRootMovedNativeEvent OnRootMovedNativeEvent;
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-273887 in the post.
0 |
Component | UE - Simulation - Physics - Destruction |
---|---|
Affects Versions | 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, 5.6 |
Target Fix | 5.7 |
Created | Apr 22, 2025 |
---|---|
Updated | May 2, 2025 |