忍者ブログ
2024/03/19

指定ノートに接続されてるアニメーションカーブからフレーム範囲取得

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

コメント

ただいまコメントを受けつけておりません。

2016/10/22

指定ノートに接続されてるアニメーションカーブからフレーム範囲取得

リグログさんにmayaでフレーム範囲を取得するコードがあったのでそれをちょっと改造させてもらいました。
【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

拍手[0回]

PR

コメント

プロフィール

HN:
モチオ
性別:
非公開
自己紹介:
テクニカルアーティスト(アニメーション出身)サポート対象Softimage/MotionBuilder/Mayaなど 言語 javascript / PHP / Python / VBAなど Webアプリも少しだけ作れる

P R