[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
ただいまコメントを受けつけておりません。
【Maya】キーフレームのスタート / エンドの取得 | リグログ!
ノード単体からの取得する関数です。
元の関数と同じようにTranslate / Rotate / Scale から対象選べるようにしてみました。
(もうちょいスマートな方法ある気がしますが。。。)
import maya.cmds as cmds
def get_time_range_from_node(node=None, t=True, r=True, s=True):
'''
ノードからアニメカーブの範囲を取得する
t : Translate
r : Rotate
s : Scale
'''
anim_curves = []
if t is True:
anim_curves += cmds.listConnections(node, t='animCurveTL', et=True)
if r is True:
anim_curves += cmds.listConnections(node, t='animCurveTA', et=True)
if s is True:
anim_curves += cmds.listConnections(node, t='animCurveTU', et=True)
min_time = None
max_time = None
for anim_curve in anim_curves:
indices = cmds.getAttr('%s.ktv' %anim_curve, mi=True)
for i in indices:
t,v = cmds.getAttr('%s.ktv[%i]' %(anim_curve,i))[0]
if min_time is None or t < min_time:
min_time = t
elif max_time is None or max_time < t:
max_time = t
return min_time,max_time