2017/11/29

maya : 選択しているFCurveをリダクション



自分でも書いてみました。
キャプチャエディットしてると使いたくなります。
やっぱり便利です。

YAMATANI.py


# -*- coding: cp932 -*-
# YAMATANI.py

import pymel.core as pm

# FCurveノード名を取得
lfcv = pm.keyframe(q=1,n=1)
for fcv in lfcv:
    ld = [] # 消去するキーのインデックスリスト
    # FCurveの時間、値のリスト取得
    lv = pm.keyframe(fcv,q=1,tc=1,vc=1)
   
    # 最初と最後のキー以外を調査
    for i in range(1,len(lv)-1):
        # キーが上り坂なら消すリストにインデックスを追加
        if lv[i-1][1] < lv[i][1] and lv[i][1] < lv[i+1][1]:
            ld.append([i])
        # キーが下り坂なら消すリストにインデックスを追加
        elif lv[i-1][1] > lv[i][1] and lv[i][1] > lv[i+1][1]:
            ld.append([i])
    if ld:
        # インデックスを使ってキーを消去
        pm.cutKey(fcv,index=ld)
        # 一度すべてのキータンジェントをAutoにする
        pm.keyTangent(fcv,itt="auto",ott="auto")
        # 最初のキータンジェントをSplineにする
        pm.keyTangent(fcv,t=lv[0][0],itt="spline",ott="spline")
        # 最後のキータンジェントをSplineにする
        pm.keyTangent(fcv,t=lv[-1][0],itt="spline",ott="spline")

0 件のコメント:

Perforce: 複数のワークスペースを更新するバッチ

batを叩けば全部更新。 @echo off set P4PORT=x.x.x.x:xxxx set P4USER=user set P4PASSWD=password echo %P4PORT% echo %P4USER% echo %P4PASSWD% echo %P4PAS...