Because UniagaradataInterfaceChaosDestruction::HandleTrailingEvents does not respect incoming TrailingEvent data, the debris velocity during chaos cache playback is always evaluated as zero.
The following workaround works but there is no PhysicalMaterial Mask Implementation :
void UNiagaraDataInterfaceChaosDestruction::HandleTrailingEvents(const Chaos::FTrailingEventData& Event) { ... #if 0 if (GeometryCollectionComponentsFromBreaking.Num() > 0) { TArray<UGeometryCollectionComponent*> ComponentsToRemove; for (auto& GeometryCollectionComponent : GeometryCollectionComponentsFromBreaking) { if (GeometryCollectionComponent) { ... } } for (UGeometryCollectionComponent* ComponentToRemove : ComponentsToRemove) { GeometryCollectionComponentsFromBreaking.Remove(ComponentToRemove); } } #else for (auto& Data : Event.TrailingData.AllTrailingsArray) { if (Data.Velocity.SquaredLength() >= TrailMinSpeedToSpawnSquared) { Chaos::FTrailingDataExt TrailingData; TrailingData.Location = Data.Location; TrailingData.Velocity = Data.Velocity; TrailingData.AngularVelocity = Data.AngularVelocity; TrailingData.Mass = Data.Mass; TrailingData.BoundingboxVolume = 1000000.f; TrailingData.BoundingboxExtentMin = 100.f; TrailingData.BoundingboxExtentMax = 100.f; TrailingData.SurfaceType = 0; TrailingEvents.Add(TrailingData); } } #endif }
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-220244 in the post.
0 |
Component | UE - Niagara - Data Interface |
---|---|
Affects Versions | 5.4 |
Target Fix | 5.6 |
Created | Jul 26, 2024 |
---|---|
Updated | Sep 27, 2024 |