我想使用 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 ;
当我手动选择弯曲弯曲2(曲率值所在的位置(时,它显示在 mel 命令中:
select -addFirst bend2 ;
但是即使尝试将其用作对象名称,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()
,没有任何手动操作!
有人可以帮忙吗!?
刚刚意识到您使用"bend1.curvature"作为属性名称,如果我只使用属性而不使用"bend1."作为属性名称,则可以在这里工作。