2
$\begingroup$

So I need to mirror an object along a single axis, and this object has been rotated in object mode and therefore has a local orientation that differs from global. I need to keep this local transform because some constraints will apply to those objects for an animation. See the examples below:

enter image description here

The source is the red object and green one is the transformation result. This is what happens when using the mirror modifier, then separating geometry and resetting origin to geometry. The placement is fine, this is exactly where I want the object, however, the transform orientation itself matches that of the red object and has not been mirrored.

enter image description here

Now this is what happens when trying to mirror the object itself along the X axis using the 3d cursor as the pivot point (scaling -1 along global X). The transform orientation is then well aligned, but I wouldn't exactly call this a mirror! Now of course if I had applied the rotation before mirroring, the mirror would have worked, but the local orientation would have been reset so this is no use either.

This seems like a very basic thing to do and I'm wondering what I'm overlooking. I know that I can use other orientations like "normal" for modeling but this will not work with constraints. I will need to use constraints on local axes afterwards.

Any help is greatly appreciated.

$\endgroup$
  • $\begingroup$ Isn't just a matter of mirroring the Rotation as you did with Location&Scale on the X axis (all at once with cursor as pivot)? Or am I missing something? $\endgroup$ – Carlo Sep 25 '16 at 22:13
  • 1
    $\begingroup$ Yes, negating the rotation does it. You know, sometimes you just focus on the objective so bad you overlook some very basic thing. Thank you! You should repost your solution as an answer so I can give you the proper reputation and mark your reoply as the solution. $\endgroup$ – Eranekao Sep 25 '16 at 22:31
2
$\begingroup$

Mirror Rotation too

While performing the scaling upon the 3D cursor as pivot, you are basically mirroring both the Location (e.g. from X to -X) and the Scale of the object. The only trasformation not affected by the operator is the Rotation.

I don't think that currently (2.77) there's an operator capable of doing all in one shot, but for the provided example it can be done manually by multipying the X-rotation channel value by -1 as shown in the image sequence below:

enter image description here

$\endgroup$
  • $\begingroup$ Just the answer I needed - but it doesn't work unless the origin is in the exact centre of the mesh. In my example image the exact same process used on top and bottom pairs, but the bottom pair is messed up due to origin location. Is there any other way to achieve this??? Doing my head in :( $\endgroup$ – Silencer2079 Feb 21 '18 at 3:04
  • $\begingroup$ I'm not sure of what you mean. I tried with an object with origin far away from center and seems to looks fine also in this case: i.stack.imgur.com/acM3t.gif What am I missing? $\endgroup$ – Carlo Feb 21 '18 at 22:53
  • $\begingroup$ Hmm, how odd... how about if your object is a-symmetrical? eg one flat end and one pointy end... does it still work for you? In the end I was able to get the rotation correct, but I had to use the formula [Z rot]*-1+180 - worked in this case, but not sure if it will always work. For me using just *-1 definitely was not mirroring correctly. $\endgroup$ – Silencer2079 Feb 22 '18 at 3:15
  • $\begingroup$ Here's a try with another object: i.stack.imgur.com/L3LjC.gif. I can't tell. Maybe if you upload a problematic file we can have a look. $\endgroup$ – Carlo Feb 23 '18 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.