Как в Blender скопировать анимацию с одной кости на другую, используя встроенные инструменты Python?

Я хотел, чтобы все анимации перемещения были на «корневой» кости, а все анимации вращения — на дочерней «бедренной» кости, но я случайно поместил все анимации на бедренную кость, и теперь я не могу использовать корневое движение в игровом движке!

Желательно не переделывать вручную все анимации, так как их у меня почти сотня.

Я попробовал несколько вариантов этого псевдокода, надеясь, что анимация переместится на другую кость. Я продолжаю получать ошибки об отсутствующих полях/методах, но трудно понять, к каким полям у меня есть доступ в python, поскольку он не типизирован статически.

      import bpy

# Get the root bone and the hips bone for future reference
root = bpy.data.objects["Armature"].data.bones["_rootJoint"] # Root bone with no animation called "_rootJoint"
hips = bpy.data.objects["Armature"].data.bones["CG_02"] # Hips bone that was supposed to have only rotation animations called "CG_02"

# I wish to select the actions to perform this operation on
# OR iterate through all NLA actions...???
for action in bpy.context.selected_objects:
    for point in action.fcurves.keyframe_points:
        # if this point is on the hips object:
            # for each keyframe on tracks 0, 1, and 2 (the location tracks):
                # Copy that keyframe from hips to root
                # Then remove it from hips
    

0 ответов

Другие вопросы по тегам