Есть ли способ скопировать / вставить ключевые кадры с помощью сценария Python в Blender? - PullRequest
1 голос
/ 03 июня 2019

У меня много смешанных файлов, а также много анимаций (действий) на каждом из них. Мне нужно переместить все ключевые кадры для всех действий на 15 кадров, и я могу сделать это с (для многих файлов с помощью powershell):

    for action in bpy.data.actions: 
        for fcurve in action.fcurves:
            for point in fcurve.keyframe_points:
                point.co.x += 15.0

перед сценарием image

после сценария image

И это действительно работает, проблема в том, что мне нужно экспортировать их как fbx, поэтому при экспорте анимации игнорируются первые 14 кадров, потому что они пусты. Что мне нужно, это скопировать / вставить или дублировать кадр № 15 в кадр № 0, чтобы получить статическую анимацию в начале (я буду использовать ее для затухания между анимациями).

И это результат, который я хочу: image

1 Ответ

0 голосов
/ 05 июня 2019

Вы можете вставить новую точку ключевого кадра с кадром в 1 и значением из первого ключевого кадра.

for action in bpy.data.actions:
    for fcurve in action.fcurves:
        fcurve.keyframe_points.insert(1, fcurve.keyframe_points[0].co.y)

Если вы хотите скопировать или установить другие свойства, вставкавозвращает новый ключевой кадр .

...