2016-06-08 3 views
0

Я часто сталкиваюсь с проблемами, когда я собрал сложную анимацию в Maya с множеством буровых установок и соединений и анимированных атрибутов, а затем обнаружил, что мне нужно вставить 100 кадров где-то в моей анимации кадра 5000, чтобы освободить место для дополнительной анимации. Раньше я боролся с выбором всех объектов и всех их ключевых кадров для перемещения их по шкале времени, поскольку кажется, что я всегда пропускаю некоторые атрибуты, которые не перемещаются, а затем все становится уродливым, и я трачу много времени фиксируя вещи.Как вставить время в мою временную шкалу анимации Maya

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

ответ

1

«Элегантный» в этом случае находится в глазу наблюдателя.

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

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

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 кадров , Если вы хотите ограничить это объектом, вы можете получить кривые анимации от объекта напрямую или использовать флаг animationkeyframe command

+0

Благодарим вас за сценарий. Жаль, что подобная функция не встроена в Maya. Это сценарий MEL? Потому что, когда я помещал его в редактор сценариев, я получаю сообщение об ошибке «Недействительное использование объекта Maya« start ». Извините, я не очень хорошо знаком с синтаксисом скрипта MEL. – Marcel

+0

Нет, это питон. Я бы порекомендовал сделать это на Python вместо MEL, если вы можете - версия этого пакета будет намного сложнее читать и поддерживать – theodox

Смежные вопросы