【发布时间】:2018-07-04 07:15:54
【问题描述】:
我想使用 python 脚本在 Maya 的非线性变形器中选择和设置关键帧。
我所尝试和失败的显然是基于我对这些命令的了解。
cmds.setKeyframe('some object name', time='a specific frame', attribute='attribute that i wish to key', value='value i wish to set')
但是像弯曲变形器这样的非线性变形器,看来如果要在曲率值中设置一个key,就需要指定变形器的输入节点的名称。
在我的大纲中,我使用 cmds.setKeyframe() 将变形器命名为“bend2_handle”,如果使用的对象名称为“bend2_handle”,它将不起作用,所以我必须获取输入节点的名称: “弯曲2”。
在脚本编辑器中,当我手动选择“bend2_handle”时,它会显示在 mel 命令中:
select -r bend2_handle ;
当我手动选择bendbend2(曲率值所在的位置)时,它显示在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(),没有任何手动操作!
有人可以帮忙吗?
【问题讨论】:
-
你能告诉我们到底发生了什么吗?我完全按照您的建议尝试了 cmds.setKeyframe() 并且效果很好。那么究竟是什么问题呢?