select 非线性变形器输入节点并使用 python 在 Maya 中设置关键帧?
select nonlinear deformers input node and set keyframe in maya using python?
我想 select 并使用 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,需要指定变形器的输入节点名称。
在我的大纲中,我将变形器命名为"bend2_handle",使用cmds.setKeyframe(),如果使用对象名称是"bend2_handle",它将不起作用,所以我必须获取输入节点的名称:"bend2".
在脚本编辑器中,当我手动 selected "bend2_handle" 时,它在 mel 命令中显示:
select -r bend2_handle ;
当我手动selected bend 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)
我尝试实现的替代方法是打开自动关键帧,并在第 1 帧手动设置关键帧,使用 cmds.currentTiem() 指定时间,并使用 cmds.setAttr() 来更改值,因此添加关键帧。
但我需要独占使用cmds.setKeyframe()
,完全不需要手动操作!
有人可以帮忙吗!?
刚刚发现你使用 "bend1.curvature" 作为属性名称,这里如果我只使用没有 "bend1." 作为属性名称的属性就可以了。
我想 select 并使用 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,需要指定变形器的输入节点名称。
在我的大纲中,我将变形器命名为"bend2_handle",使用cmds.setKeyframe(),如果使用对象名称是"bend2_handle",它将不起作用,所以我必须获取输入节点的名称:"bend2".
在脚本编辑器中,当我手动 selected "bend2_handle" 时,它在 mel 命令中显示:
select -r bend2_handle ;
当我手动selected bend 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)
我尝试实现的替代方法是打开自动关键帧,并在第 1 帧手动设置关键帧,使用 cmds.currentTiem() 指定时间,并使用 cmds.setAttr() 来更改值,因此添加关键帧。
但我需要独占使用cmds.setKeyframe()
,完全不需要手动操作!
有人可以帮忙吗!?
刚刚发现你使用 "bend1.curvature" 作为属性名称,这里如果我只使用没有 "bend1." 作为属性名称的属性就可以了。