Я хочу выбрать и установить ключевой кадр в нелинейных деформаторах в Maya, используя скрипт Python.
То, что я пытался и потерпел неудачу, очевидно, основано на знаниях, которые я имел по этой команде.
cmds.setKeyframe('some object name', time='a specific frame', attribute='attribute that i wish to key', value='value i wish to set')
но для нелинейных деформаторов, таких как деформер изгиба, кажется, что если вы хотите установить значение ключа кривизны, вам нужно указать имя узла ввода деформера.
в моем планировщике я назвал деформатор "bend2_handle", используя cmds.setKeyframe (), он не будет работать, если использовать имя объекта "bend2_handle", поэтому мне нужно получить имя входного узла: "bend2".
в редакторе сценариев, когда я вручную выбрал "bend2_handle", он показывает в команде mel:
select -r bend2_handle ;
когда я вручную выбрал изгиб bend2 (где находится значение кривизны), он показывает в команде mel:
select -addFirst bend2 ;
Какого черта -addFirst. но даже если попытаться использовать его в качестве имени объекта attribute = bend2.curvature, он все равно не будет работать, и я знаю, что attribute = bend2.curvature правильный, потому что "bend2.curvature" - это то, что я использую в cmds.setAttr ()
import maya.cmds as cmds
cmds.setKeyframe('bend2', time=12, attribute='bend2.curvature', value=8)
cmds.currentTime(12)
cmds.setAttr('bend2.curvature', 4)
cmds.currentTime(40)
cmds.setAttr('bend2.curvature', 8)
альтернативный способ, которого я пытаюсь достичь, - это включить автокрейм и вручную установить ключевой кадр в кадре 1, использовать cmds.currentTiem (), чтобы указать время, и использовать cmds.setAttr (), чтобы изменить значение, поэтому добавьте ключ Рамка.
Но мне нужно использовать исключительно cmds.setKeyframe()
, никаких ручных операций!
может кто-нибудь помочь!?