Skeletal mesh overlap broken when scaling

Hi,

We have an issue that can be easily reproduced in the VR test scenes (see demo video) :

We added capsule and convex colliders on the default VR mannequin hand to allow more precise collisions and overlaps. The collisions work fine on both the left and right hand, but overlaps are broken on the left hand.

Some investigation in the provided VR “BP_MotionController” showed that the left hand is created like the right hand but with a “-1” scale on one dimension. It is perfectly understandable that having a non-uniform scale could break the capsule collisions (making them skewed), but it shouldn’t happen with convex collisions and it should not be a problem with a simple symmetry ("-1" scale).

The test scene shows that on the left hand, the colliders seem to have the correct size and origin, but they rotate around their origin in a very weird (although not random) manner depending on the orientation of the hand.

In the meantime, is there a workaround to get correct overlaps from the scaled skeletal mesh ?


Reproduction steps

OR this should work but it’s harder to see what’s happening

  • Add capsule colliders to each finger bone of the “MannequinHand_Right” and a convex hull to the palm
  • In the “BP_MotionController”, enable overlap on the HandMesh
  • (optional) In the “BP_MotionController”, enable collision for all 3 grip states (under event tick)
  • Create a simple blueprint with a cube in it with overlap on the mesh, print a message on “ActorBeginOverlap” and “ActorEndOverlap”
  • Put the cube in the scene and try overlapping it with each hand : if you point the left hand towards the sky, the palm collider will trigger overlaps even if the hand is above the cube

Thanks for your help !

Hello Tom,

Feel free to post the project link.

Hi, I created a github repo (GitHub - MatteoFantasy/UE4_HandsBug: Simple UE4 demo to show the overlap bug happening when scaling a skeletal mesh) and edited the original post accordingly.

Thank you, I’ve created a bug report for this behavior viewable at:

As a workaround - it may be possible to use collision components created inside of the blueprint instead of relying on physics asset based capsule collision.

Thanks, we implemented the following workaround :

  • In the BP, add a collider corresponding to each bone
  • Place each collider correctly thanks to the viewer
  • On BeginPlay, link every collider to the skeletal mesh thanks to the “attach to component” node with the corresponding socket name