有没有办法在Blender中用python脚本复制/粘贴actionkeyframes?

2024-07-02 12:47:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有很多混合文件,也有很多动画(动作)对每一个。 我需要将所有动作的所有关键帧移动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


Tags: 文件inactionsfordata动画actionpoint
1条回答
网友
1楼 · 发布于 2024-07-02 12:47:35

您可以insert a new keyframe point,帧为1,值来自第一个关键帧。在

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

如果要复制或设置其他属性,insert将返回新的keyframe。在

相关问题 更多 >