[BUG] 4.12 AttachToComponent KeepWorldTransform causing flip

We are working with motion controllers and the Vive headset in an application that involves picking up and manipulating things. In 4.11, things worked fine, but in 4.12 we ran into a new bug so we felt you guys should know about it. Our left hand is set up normally, while the mesh on our right hand is inverted, to use the same mesh. Grabbing an object with the left hand works normally, while grabbing with the right causes the object to flip every time we grab it. We resolved the issue by flipping the GrabComponent on the right hand to counter the mesh flip, but it is still an issue worth looking into on your end. We used EAttachLocation::KeepWorldPosition within AttachRootComponentTo() as our rules in 4.11, which worked perfectly, due to the new api changes, we are having to use FAttachTransformRules::KeepWorldTransform with AttachToComponent. On paper this should behave the same, but as stated it causes the grabbed object to mirror when we grab it.

Just bringing it to your attention, thanks.

Hello,

Just to clarify, the issue is that when you are using AttachToComponent with the KeepWorldTransform rules, you’re seeing that object get mirrored?

Have you been able to reproduce this issue in a clean project? If so, could you provide the code that you’re using so that we can take a closer look?

We have a left hand mesh attached to our pawn, and for the right hand we just flipped the scale on that left hand mesh. When grabbing with the left hand, it attaches fine and does not mirror. When attaching to the right hand, which is a mirrored mesh, the object gets mirrored on the same axis; despite using KeepWorldTransform. In 4.11 this was not the case, so some part of KeepWorldTransform is using the transform of the object it’s attaching to. So it isn’t working as intended.

Apologies for the delay. I’ve spent some time trying to reproduce this issue in a clean project, but I’m not seeing the same results. Are you able to reproduce this in a clean project with no additional content? If so, could you provide the repro steps, or a simplified test project that we can use to get this entered on our end?

Upon revisiting the problem, we were able to reproduce it within a clean project in the latest version of the engine. The inability to reproduce it earlier was due to an issue on our end. We are enclosing a sample project showcasing the bug for your review.
Download here.

Hey Konda,

We are still investigating this issue, and will respond as soon as we have new information. Thanks again for providing the test project.

Hey Konda,

Sorry for the delay. We’ve entered a bug report, UE-33380, for this issue. Thank you for your report, and for providing a repro project.

Have a great day

Hi Konda & Sean, I have a similar issue (offset problems in my case) when attaching (a grabbed) object to a skeletal mesh. See this bug report. Could it be that these are related?

I’m seeing a problem with KeepWorldTransform as well. When I do the following, it runs into troubles when PlayUpActor is mirrored:

importedMesh->AttachToActor(PlayUpActor, FAttachmentTransformRules::KeepWorldTransform, NAME_None);