自分でも書いてみました。
キャプチャエディットしてると使いたくなります。
やっぱり便利です。
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")
コメント