When attaching a Procedural Mesh Component with a copied static mesh to a static mesh component the two meshes collide and "push" each other (go flying on play). Weld is to be used for simulated physics bodies, but if you aren't simulating physics before welding it will cause the meshes to "push" each other.

The example project submitted by the user is attached. The setup of the blueprint is attached below (Setup.png).

Found in 4.22 CL#7053642
Reproduced in 4.23 CL#7321677, 4.21 CL#4753647, 4.20 CL#4369336, 4.24. Main CL#7432528

Steps to Reproduce

1. Create a new blueprint with the following attached to the root:
-Static Mesh Component called SM1 that has a cone.
-Static Mesh Component called SM2 that has a sphere.
-Procedural Mesh Component called PC1.
2. Open both the cone and sphere mesh and set "allow CPU access" to true.
3. Copy Procedural Mesh from Static Mesh Component using SM1 and PC1 with Create Collision set to true.
4. Destroy SM1.
5. Attach PC1(Target) to SM2(Parent) using AttachToComponent with WeldSimulatedBodies to true and Location/Rotation/Scale Rule set to Keep World.
6. SetSimulatePhysics for SM2 with Simulate set to true.
7. SetSimulatePhysics for PC1 with Simulate set to false.
8. Play the scene.

Result: The mesh collides and "pushes" each other (fly across the stage).

Expected: The meshes act like one mesh with the shape of the combined meshes.

Have Comments or More Details?

There's no existing public thread on this issue, so head over to AnswerHub just mention UE-77509 in the post.

Login to Vote

Won't Fix
ComponentSimulation - Physics
Affects Versions4.
CreatedJul 18, 2019
ResolvedAug 27, 2021
UpdatedAug 27, 2021