SplineMeshComponent collision breaks if the component moves independently of its actor
This issue has taken a long time to track down. The symptoms are:
If the actor containing a SplineMeshComponent is transformed then the collision attached to the component is properly updated and matches the actual location of the component. Overlaps are properly calculated with overlapping actors.
If the SplineMeshComponent is moved independently of its actor by calling set start, end etc. followed by update mesh then these issues occur:
The following workaround fixes this issue and is done after calling update mesh:
This seems to force the collision to be properly updated because UE4 considers that the actor has moved. It's necessary to call set actor transform twice because if you just feed in the current values from get actor transform unchanged UE4 ignores it and the collision isn't updated.
Making the spline mesh the root component has no effect on this issue. I have 'Use Simple Collisions as Complex' set on this component as it updates on tick when moving (tracking VR motion controllers) and complex collisions kill the frame-rate.
Sorry for the delay.
Could you try testing this in the latest 4.15.1 build of the engine? There was some changes made to spline mesh component collision (specifically JIRA UE-39212) and if very possible this issue has already been fixed.
answered Mar 20 '17 at 08:26 PM
TJ V ♦♦ STAFF
Follow this question
Once you sign in you will be able to subscribe for any updates here