如何将时间插入我的 Maya 动画时间轴

How do I insert time into my Maya animation timeline

当我在 Maya 中制作一个包含大量绑定和连接以及动画属性的复杂动画,然后发现我需要在 5000 帧动画中的某处插入 100 帧来制作

时,我经常会遇到麻烦 space 用于附加动画。过去,我一直在努力选择所有对象及其所有关键帧以将它们沿时间线向下移动,因为似乎我总是错过一些不会移动的属性,然后事情变得丑陋,我浪费了很多时间修理东西。

我觉得一定有更优雅的方法可以轻松地将一定数量的帧插入时间轴,而不用担心会留下一些关键帧。我已经尝试过使用涂料 sheet 的运气,但我真的没有发现它比图形编辑器更容易使用。

"Elegant"在这种情况下是仁者见仁智者见智。

实际上,您需要做的是将给定点之后的所有键移动给定的量。困难的部分是移动关键点会改变曲线的含义:无论你做什么,插值都会改变,除非你在变化的两边都有锁定的切线。

如果您只想在特定时间点插入密钥,它看起来像这样:

def move_keys_after(start, time_shift):
    key_string = '%s:' % start
    for curve in cmds.ls(type='animCurve'):
        before =  cmds.keyframe(curve, q=True)
        cmds.keyframe(curve, r = True,  tc = time_shift, t = (key_string,), iub=True)
        after = cmds.keyframe(curve, q=True)
        print curve, before, "->", after


move_keys_after( 10, 20)

该示例在 start 时间后将场景中的 所有 键移动 time_shift 帧。如果你想将其限制为一个对象,你可以直接从对象获取动画曲线或使用 keyframe command

animation 标志