0

我想使用 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 是正确的,因为“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)

我尝试实现的另一种方法是打开自动关键帧,并在第一帧手动设置关键帧,使用 cmds.currentTiem() 指定时间,并使用 cmds.setAttr() 更改值,因此添加关键帧。

但我需要cmds.setKeyframe()独占使用,没有任何手动操作!

有人可以帮忙吗!?

4

1 回答 1

2

刚刚意识到您使用“bend1.curvature”作为属性名称,如果我只使用没有“bend1”的属性,它就可以工作。作为属性名。

于 2018-07-04T08:32:48.980 回答