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

时间:2018-07-04 07:15:55

标签: 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')

但是是非线性变形器,例如弯曲变形器,似乎如果要设置曲率值的关键点,则需要指定变形器的输入节点的名称。

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

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

select -r bend2_handle ;

当我手动选择弯头bend2(曲率值所在的位置)时,它会在mel命令中显示:

select -addFirst bend2 ;

-addFirst到底是什么。但是即使尝试将其用作对象名称attribute = bend2.curvature,它仍然无法工作,而且我知道attribute = bend2.curvature是正确的,因为cuz“ 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(),完全不需要手动操作!

有人可以帮忙吗??

1 个答案:

答案 0 :(得分:2)

刚刚意识到您使用“ bend1.curvature”作为属性名称,如果我仅使用不带“ bend1”的属性,则在这里可以使用。作为属性名称。