选择非线性变形器输入节点并使用python在maya中设置关键帧?

选择非线性变形器输入节点并使用python在maya中设置关键帧?,python,maya,maya-api,Python,Maya,Maya Api,我想使用python脚本在maya中的非线性变形器中选择并设置关键帧 我的尝试和失败显然是基于我对这些命令的了解 cmds.setKeyframe('some object name', time='a specific frame', attribute='attribute that i wish to key', value='value i wish to set') 但对于非线性变形器(如弯曲变形器),似乎如果要在曲率值中设置关键点,则需要指定变形器输入节点的名称 在我的大纲视图中,

我想使用python脚本在maya中的非线性变形器中选择并设置关键帧

我的尝试和失败显然是基于我对这些命令的了解

cmds.setKeyframe('some object name', time='a specific frame', attribute='attribute that i wish to key', value='value i wish to set')
但对于非线性变形器(如弯曲变形器),似乎如果要在曲率值中设置关键点,则需要指定变形器输入节点的名称

在我的大纲视图中,我使用cmds.setKeyframe()将变形器命名为“bend2_handle”,如果使用对象名称为“bend2_handle”,它将不起作用,因此我必须获取输入节点的名称:“bend2”

在脚本编辑器中,当我手动选择“bend2_handle”时,它在mel命令中显示:

select -r bend2_handle ;
select -addFirst bend2 ;
当我手动选择bend bend2(曲率值所在的位置)时,它将在mel命令中显示:

select -r bend2_handle ;
select -addFirst bend2 ;
a-addFirst到底是什么。但是,即使尝试使用它作为对象名,attribute=bend2.curvature,它仍然无法工作,而且我知道attribute=bend2.curvature是正确的,因为我在cmds.setAttr()中使用的是“bend2.curvature”

我尝试实现的另一种方法是启用“自动关键帧”,并在第1帧中手动设置关键帧,使用cmds.currentTiem()指定时间,使用cmds.setAttr()更改值,从而添加关键帧

但是我需要专门使用
cmds.setKeyframe()
,没有任何手动操作


有人能帮忙吗

刚刚意识到您使用“bend1.curvature”作为属性名,如果我只使用属性而不使用“bend1.”作为属性名,那么在这里它是有效的。

刚刚意识到您使用“bend1.curvature”作为属性名,如果我只使用属性而不使用“bend1.”作为属性名,那么在这里它是有效的。

您能告诉我们到底发生了什么吗?我完全按照您的建议尝试了cmds.setKeyframe(),效果很好。到底是什么问题?你能告诉我们到底发生了什么吗?我完全按照您的建议尝试了cmds.setKeyframe(),效果很好。那么到底是什么问题呢?哈吉·克雷,你太棒了,把“bend2”去掉,把“curvature”作为属性名。对象名为“bend2”。我试过了,终于成功了!haggi krey,你太棒了,去掉“bend2.”,属性名为“curvature”。对象名为“bend2”。我试过了,终于成功了!