This issue was reported by a customer trying to modify the static meshes of a GeometryCollection. After removing some meshes from the Geometry Source, he used the Reset button to apply the changes to the GC instance in his level, resulting in a mismatch of materials and remaining meshes.


As a workaround I suggest him to also remove the material of the removed mesh from the materials list. Doing this the problem was solved.

Digging in the source code I think I have found a possible cause of the problem. The function void UFractureToolResetAsset::Execute __ (declared in FractureToolGenerators.h) is called when the Reset button in pressed in the fracture mode. Between lines 863 and 876 in FractureToolgenerators.cpp (in the Execute function), the OldMaterials are copied to the materils of the new GeometryCollectionObject, but this copy is only taking into account the number of materials but not what exact materials it is copying. Maybe this is the cause of the bug, but I have not tested any fix there.

Steps to Reproduce
  • Create a GeometryCollection with several static meshes and their corresponding different materials.
  • Remove an array component from GeometrySource in the GeometryCollection editor.
  • Use the Reset button (with the modified GC selected) of the Fracture mode in the editor.
  • RESULT: Materials of the remaining static meshes have been modified.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-193258 in the post.

Login to Vote

ComponentUE - Simulation - Physics
Affects Versions5.2
Target Fix5.4
Fix Commit27525470
Main Commit27525539
CreatedAug 17, 2023
ResolvedAug 31, 2023
UpdatedSep 5, 2023