【问题标题】:How to set keyframes per every 4 frames如何每 4 帧设置关键帧
【发布时间】:2016-01-20 09:15:52
【问题描述】:

我不确定这是否有一个术语,也许是帧偏移?但我试图每 4 帧在控制器上设置关键帧。例如。如果我的时间滑块在 1 到 23 的范围内,那么第 1、5、9、13、17、21 帧就会有关键帧。 我需要这个来制作动画,因为我在数百帧中拥有大量的绑定,有时它非常疯狂地计算并确保我没有超过 4 帧

但是我不知道如何编写脚本来告诉 Maya 每 4 帧设置一次。有人可以帮我吗?

【问题讨论】:

    标签: python maya


    【解决方案1】:

    如果该范围内已经有关键帧并且您想要规则的中间帧,您可以在现有曲线上使用bakeResults 以获得规则间隔的关键帧

    cmds.bakeResults('pCube1.tx', sampleBy = 4, preserveOutsideKeys=1, sparseAnimCurveBake = 0, time = (1,100))
    

    将在 pCube1 的 translate x 上烘焙现有曲线,在第 1 帧和第 100 帧之间每 4 帧添加一个关键点 此处的文档:http://help.autodesk.com/view/MAYAUL/2015/ENU/?url=http://help.autodesk.com/cloudhelp/2015/ENU/Maya-Tech-Docs/CommandsPython/bakeResults.html

    【讨论】:

      【解决方案2】:

      这是实现它的方法,我尝试避免使用多个 for 循环并尽可能多地使用标志来保持代码简洁。选择要应用密钥的节点并执行此代码。

      SET_KEY_STEP = 4 #This is the step 
      NODES_LIST = cmds.ls(sl=True) #Apply keys to the selected nodes
      ATTRS_LIST = ("tx", "ty", "tz") #Feel free to complete this attribute list
      playbackStartTime  = int(cmds.playbackOptions(query=True, min=True)) #Start frame
      playbackEndTime    = int(cmds.playbackOptions(query=True, max=True)) #End frame
      TIMES_LIST = [i for i in range(playbackStartTime, playbackEndTime+1, SET_KEY_STEP)] #Creates the list 1,5,9,13,17,21...
      
      result = cmds.setKeyframe( NODES_LIST, attribute=ATTRS_LIST, time=TIMES_LIST) #Set all the keys at the same time
      print result, "keys added."
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-17
        • 2013-04-05
        • 1970-01-01
        • 2022-07-06
        • 2022-08-20
        • 2013-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多