0
$\begingroup$

enter image description here

I need to change all the bone's location and rotation on the right skeleton to match with the left skeleton, but I'm hoping there's a better way than manually fixing each bone here. Thanks!

$\endgroup$
5
  • $\begingroup$ Have you seen the special menus such as copy pose .. paste pose? I think in pose mode for the bone? This may be done by name. I am leaving some act of discovery for you. $\endgroup$ – atomicbezierslinger Dec 12 '20 at 21:47
  • $\begingroup$ Have you ever used a driver? These can also be used for bone rotation. So for some ranges of frames you might use a driver to force the rotation of the index finger of one armature to be [related] to the index finger of a different armature. Or both index fingers can be related to a non renderable [set] of bones. $\endgroup$ – atomicbezierslinger Dec 12 '20 at 21:48
  • $\begingroup$ blender.stackexchange.com/questions/38484/… $\endgroup$ – atomicbezierslinger Dec 12 '20 at 21:52
  • $\begingroup$ actually his question is not about pose position but rest position, he wants the second armature to have the same rest position as the first one, meaning the bones in Edit pose being at the exact same location/rotation, which is not the same as copying a pose $\endgroup$ – moonboots Dec 13 '20 at 5:31
  • $\begingroup$ @moonboots is right, i did try copy pose / paste pose but it didn't work, and I've never used a driver in blender either if you could specify on how to use them? Otherwise I just need to somehow copy all of the location and rotation data of all the bones on the left skeleton and paste them for the corresponding bones on the right so they have the same rest position. $\endgroup$ – HoofMcPoof Dec 13 '20 at 20:36
0
$\begingroup$

first select object which you want to be clone and then select the reference object and use the script below:

import bpy

ref_ob = bpy.context.object
other_ob = [ob for ob in bpy.data.objects if ob.select_get()]
other_ob.remove(ref_ob)
other_ob = other_ob[0]

bpy.context.view_layer.objects.active = other_ob

bpy.ops.object.mode_set(mode='OBJECT')
for bone in ref_ob.pose.bones:
    bpy.ops.object.mode_set(mode='POSE')
    other_ob.pose.bones[bone.name].matrix = bone.matrix
    bpy.ops.object.mode_set(mode='OBJECT')
$\endgroup$

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.