如何使用 cmds.selectKey 找到特定关键帧的时间?
How do I find the time of a particular keyframe using cmds.selectKey?
我正在尝试从键的 animCurve 节点(下面代码中的 "lastKey")中找到特定 selected 键的时间。我可以 select 我的密钥使用:
cmds.selectKey(lastKey, index=(1, 1))
但是 cmds.selectKey 只有 returns 键的数量 selected。而且命令中似乎没有查询键索引时间的方法。
我试过使用 cmds.keyframe,但我的密钥不在特定属性上,它是一个 Set Driven Key。
print cmds.keyframe(lastKey, index=(1,1), query=True)
"None" 返回。
如果您知道您正在处理哪个对象 and/or 属性,您可以像这样获取时间:
import maya.cmds as cmds
# Get index value of last key
keyIndex = (cmds.keyframe("myObject.attribute", indexValue=True, q=True))[-1]
# Get time of key index
keyFrame = cmds.keyframe("myObject.attribute", q=True, index=(1, keyIndex))
这个有用吗? cmds.keyframe()
returns 查询关键帧的时间值列表。
一个更简单的方法可能是简单查询lastKey
的关键帧,然后取列表中的最后一个元素,就像这样
import maya.cmds as cmds
keyFrame = (cmds.keyFrame("myAnimCurve", q=True))[-1]
这是假设 lastKey 只附加了一个 animCurve。否则列表会有点乱。
针对驱动键进行编辑
我刚刚注意到关于 Driven Key 的一点。如果以下不是您要查找的内容,您能否详细说明您的问题?
如果你有 animCurve,你可以得到一个 Driver 值的列表,就像这样
driverKeys = cmds.keyframe("myAnimCurve", q=True, floatChange=True)
同样,您随后可以获得 Driven 值的列表,如下所示
drivenKeys = cmds.keyframe("myAnimCurve", q=True, valueChange=True)
最后,您可以使用 [-1]
简单地获取列表中的最后一个元素
print(driverKeys[-1]) # return time of last driven keyframe
print(drivenKeys[-1]) # return value at last driven keyframe
注意:列表的顺序基于驱动程序的值。
我正在尝试从键的 animCurve 节点(下面代码中的 "lastKey")中找到特定 selected 键的时间。我可以 select 我的密钥使用:
cmds.selectKey(lastKey, index=(1, 1))
但是 cmds.selectKey 只有 returns 键的数量 selected。而且命令中似乎没有查询键索引时间的方法。
我试过使用 cmds.keyframe,但我的密钥不在特定属性上,它是一个 Set Driven Key。
print cmds.keyframe(lastKey, index=(1,1), query=True)
"None" 返回。
如果您知道您正在处理哪个对象 and/or 属性,您可以像这样获取时间:
import maya.cmds as cmds
# Get index value of last key
keyIndex = (cmds.keyframe("myObject.attribute", indexValue=True, q=True))[-1]
# Get time of key index
keyFrame = cmds.keyframe("myObject.attribute", q=True, index=(1, keyIndex))
这个有用吗? cmds.keyframe()
returns 查询关键帧的时间值列表。
一个更简单的方法可能是简单查询lastKey
的关键帧,然后取列表中的最后一个元素,就像这样
import maya.cmds as cmds
keyFrame = (cmds.keyFrame("myAnimCurve", q=True))[-1]
这是假设 lastKey 只附加了一个 animCurve。否则列表会有点乱。
针对驱动键进行编辑
我刚刚注意到关于 Driven Key 的一点。如果以下不是您要查找的内容,您能否详细说明您的问题?
如果你有 animCurve,你可以得到一个 Driver 值的列表,就像这样
driverKeys = cmds.keyframe("myAnimCurve", q=True, floatChange=True)
同样,您随后可以获得 Driven 值的列表,如下所示
drivenKeys = cmds.keyframe("myAnimCurve", q=True, valueChange=True)
最后,您可以使用 [-1]
print(driverKeys[-1]) # return time of last driven keyframe
print(drivenKeys[-1]) # return value at last driven keyframe
注意:列表的顺序基于驱动程序的值。