Driver using local Y location moved with rotation

I was trying to better understand drivers and am having some trouble.

I have an empty cube and an icosphere. The icosphere has it’s Y axis set with a driver based on the Y Location of the empty, using local space.

The icosphere moves in 2 cases:

  1. when the empty is moved along it’s local Y axis (this I expected)
  2. when the empty is not at the origin, and is rotated along the Z axis - I don’t understand this.

localYdriver.blend (473 KB)

Attached is the simple file.

Is this expected behavior? I’m guessing I am just missing something…

Your Icosphere also moves when you rotate the Empty about any of it’s axes other than it’s local Y (Key R YY, move mouse). It also moves when you move the Empty along any Global Axis, or it’s local Y axis (key G YY, etc.). This is all entirely predictable behaviour for a driver variable set to the variable object’s Local axes. To “cure” this behaviour, so it only moves when you move the empty along its local Y axis or Global Y axis, set the variable to Transform Space. To stop it moving when you move the empty along any other than the global Y axis, rotate the empty so its local axes align with the global axes. Otherwise if you move it along local X, this has a Y component if you have rotated the empty. Hope this is all clear!!!

Cheers, Clock.

1 Like