3
$\begingroup$

I have a armature A and made Copy armature B and C;

I went to editmode on B and moved arms bones a little down and made head bone bigger;

How to I apply same changes on C without manually moving the bones or without creating a new armature (ctrl+d from B)?

I was hoping for some button to copy armature from one to another (the bones structure is exacly the same even same names)

this is a quite challenging question, I don't expect an exact answer but directions to help me do what I want

thanks

$\endgroup$
2
$\begingroup$

While we can easily copy a pose from one armature to another I don't think there is a way to copy edit bone changes from armature to armature. This would mean creating a python script is the way.

As editing bone data in bpy.data.armatures[x].bones doesn't seem to work, we can go into edit mode to collect the bone data from the source armature, then apply that data to each destination armature in edit mode.

So getting close to an exact answer would be the following script, you should only have to change the rig names at the top.

import bpy

source_rig = 'metarig'
dest_rigs = ['metarig.001','metarig.002']

############

bone_data = {}

def edit_rig(rigname):
    bpy.ops.object.mode_set(mode='OBJECT')
    bpy.ops.object.select_all(action='DESELECT')

    bpy.data.objects[rigname].select = True
    bpy.context.scene.objects.active = bpy.data.objects[rigname]
    bpy.ops.object.mode_set(mode='EDIT')

edit_rig(source_rig)
for b in bpy.data.objects[source_rig].data.edit_bones:
    bone_data[b.name] = (b.head.copy(), b.tail.copy(), b.roll)

for arm_name in dest_rigs:
    edit_rig(arm_name)
    for b in bpy.data.objects[arm_name].data.edit_bones:
        b.head, b.tail, b.roll = bone_data[b.name]

bpy.ops.object.mode_set(mode='OBJECT')
$\endgroup$
0
$\begingroup$

For the movement itself ("moved arms bones a little down"), you can copy/paste the keyframes without any problems, with the copy/paste button, on the right of the 3d windows (arrow down / arrow up, in pose mode). I can't test right now, but I wouldn't be surprised if it copy paste the bone scale datas too... In any cases, you need to go to pose mode, and not edit mode for that.

On another hand, but I assume this is not a satisfying answer, as you don't want to duplicate, but why don't you simply duplicate the original armature (A) to a new one (B), make the desired changes to B, and then copy B to C ?

$\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.