2016-01-19 1 views
1

Я не уверен, есть ли для этого термин, возможно, смещение рамки? но я пытаюсь установить ключевые кадры на контроллерах на каждые 4 кадра. Например. Если мой ползунок времени находится в диапазоне от 1 до 23, и поэтому на кадре 1,5,9,13,17,21 будут ключевые кадры. Мне нужно это для анимации, так как у меня есть множество буровых установок в сотнях с лишним фреймов, и иногда это довольно безумный подсчет, и я уверен, что я не прошел мимо 4 кадров.Как установить ключевые кадры на каждые 4 кадра

Однако я понятия не имею, как сценарий рассказать Maya для каждого кадра. Кто-нибудь может мне помочь?

ответ

0

Вот как вы можете достичь этого, я попытался избежать использования нескольких циклов и использовать флаги столько, сколько мог, чтобы код был кратким. Выберите узлы, на которых вы хотите использовать клавиши, и выполните этот код.

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." 
1

Если уже ключевых кадров на диапазон и вы хотите регулярные промежуточные кадры, вы можете использовать bakeResults на существующих кривых, чтобы получить регулярно разнесенных ключевые кадры

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

испекут существующую кривую на перевод х pCube1 в добавление ключа каждые 4 кадра между кадрами 1 и фреймом 100 docs здесь: http://help.autodesk.com/view/MAYAUL/2015/ENU/?url=http://help.autodesk.com/cloudhelp/2015/ENU/Maya-Tech-Docs/CommandsPython/bakeResults.html