如何每4帧设置关键帧

时间:2016-01-19 10:02:43

标签: python maya

我不确定是否有这个术语,帧偏移可能?但我试图每4帧在控制器上设置关键帧。例如。如果我的时间滑块在1到23的范围内,那么第1,5,9,13,17,21帧上将有关键帧。 我需要这个用于动画,因为我有数百多帧的钻机,有时它非常疯狂计数并确保我没有超过4帧

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

2 个答案:

答案 0 :(得分:1)

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

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

将烘焙pCube1上的现有曲线&s;翻译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

答案 1 :(得分:0)

以下是如何实现它,我尝试避免使用多个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."