Transform direction bug with mirrored objects

Here the Actor is mirrored with scale: 1,-1,1. The resulting transform direction is wrong while it works fine when the actor is not mirrored. It is also wrong when it is -1,-1,-1 which seems to invert just all directions.

I also tried using the component transform instead with no luck, as well as trying to mess with the Get actor transform scale.

Yup I can confirm this as I have encountered the same thing, I ended up having to use 2 versions of the mesh one Left, one Right instead of scaling by a negative. Mirroring would be super useful, cool.

It seems it simply doesn’t take any of the scale value in account at all. I have now scaled it with all axis inverted and rotated it back. Where I use the transform direction node with the actor transform I then simple invert the result if it is the mirrored version which seems to work fine. The transform location node should take the mirrored scale in account correctly since this has to process the scale in any case.

Hello,

I have a few questions for you that will help narrow down what issue it is that you are experiencing.

Quick questions:

  1. Can you elaborate on how the expected result is at an inverse to the actual outcome?
  2. Can you reproduce this issue in a clean project?
  3. If so, could you provide a detailed list of steps to reproduce this issue on our end?
  1. It simply does not take the fact in account that the actor is mirrored, like it does not calculate with the scale value at all.
  2. Yes, because this is a simple bug or oversight in the function of that node, MonsOlympus confirmed it as well as you can see here
  3. It should be very straight forward now but here you go:
    Take any actor, put in the inverse transform direction node (or transform direction node) Put the Get Actor Transform into the T input, Direction can be any value you like. Print the result to screen, keep that result in mind. Now mirror the actor, like scale -1,-1,-1 for instance. Now when you compare that result with the previous result you see that they are the same value even though the actor has been mirrored.

Hello,

After doing some digging I was able to find that this appears to be working as intended. The Inverse Transform Direction node is not meant to account for scale. However, I have written up a request to that the information for the node updated to reflect this. I hope that this information helps.

Link: Unreal Engine Issues and Bug Tracker (UE-41688)

Make it a great day

Hi!
Guys, what about this issue? Is it was fixed?
I’m using 4.15.1 and it seems that transform direction not working with scale.
I get the same results in case of original and negated scale.

Thanks!

Hello redbox,

If you will notice in my previous post it states that this is working as intended. The request that was put in was to clarify the documentation for the node. I hope this helps.

Make it a great day

I had the same issue when it came to spawning a projectile from a mirrored weapon. In the end, I was forced to manually check the scale and negate the direction of the projectile.