我不确定是否有这个术语,帧偏移可能?但我试图每4帧在控制器上设置关键帧。例如。如果我的时间滑块在1到23的范围内,那么第1,5,9,13,17,21帧上将有关键帧。 我需要这个用于动画,因为我有数百多帧的钻机,有时它非常疯狂计数并确保我没有超过4帧
但是我不知道如何编写脚本告诉Maya每4帧设置一次。有人能帮助我吗?
答案 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."