i'm trying to mirror 3 still objects that are: shoulder, biceps and forearm. i remember it was like this: select all of them, center the cursor to world origin (shift + c), duplicate, scale, x, -1. but the rotation screws up for some reason. same for the legs

enter image description here

  • 3
    $\begingroup$ maybe apply the rotation of your object before making the mirror $\endgroup$ – moonboots May 6 '19 at 16:45

I agree, it seems counterintuitive, how SX-1 or ⎈ CtrlM work in this case.

You can always apply a mirror matrix to the object matrix. Simply select the object and execute the following script.

import bpy
import mathutils

ob = bpy.context.object

mat_mirror = mathutils.Matrix.Scale(-1, 4, (1.0, 0.0, 0.0))
ob.matrix_world = mat_mirror @ ob.matrix_world

# For Blender 2.79 and previous, use the * symbol for matrix multiplication.
#ob.matrix_world = mat_mirror * ob.matrix_world

With mathutils.Matrix.Scale(-1, 4, (1.0, 0.0, 0.0)) we construct a matrix scaled -1 along X.


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.