[BUG] Collisionboxes of Subcomponents broken if parent component moved

I was able to replicate it, definitely feels like a bug.

The only thing I found that made a difference and could possibly lead to a better solution was the auto weld option.
I turned off “Auto Weld” on the blue cube.

336713-auto-weld.png

Hi,

I noticed a bug in the collision of subcomponents. Can somebody help me?

I have a physics-simulating actor with 2 subcomponents in a tree structure like below and move the second (red) component.

336700-tree.png

As expected, the third component (blue) visually moves attached to red. However, the collision does not move accordingly and stays relative to the actor origin. Funny enough, even with show COLLISION enabled, the collision box seems to be at the same place as the cube.

Example during Gameplay

I have my Actor in the world some height above the ground and move the red component down. Once it reaches the ground, the gray blocked is pushed upwards by the physics, thus pushing the green block away. But, even though we see the blue cube moving down visually, the green cube above the blue cube is also being pushed away.

I have seen this in more complex situations, this is just to show the bug.

336724-uebug.gif

Steps to reproduce:

  • Create a static mesh Actor with the static mesh components as shown in the first image
  • Use Cubes as meshes and move them laterally so we can see the result.
  • For the root component, enable physics, disable gravity.
  • Copy the blueprint code or write your own to move the middle component downwards.
  • Position the Actor in the world, put three cubes (physics enabled, gravity disabled) a bit above each component.

I found the auto-weld option too, but I need welded components for my target scenario.

Specifically: I control a (free flying) robotic hand with a VR Controller using a physics constraint. I need proper collisions for the grasping and I need the objects welded together to avoid the elements moving through static objects (like tables). If I deactivate auto-weld, the fingers move through the table as only the base of the hand is considered.

I am having this problem too! I’ve run into it before, but was able to skirt around it once. I’m encountering it again, but this time with scaling. Were you ever able to figure out what causes this? I’m on UE5.1.1