2016-05-22 6 views

答えて

1

それはfcurvesに長く曲がりくねった道です;)、しかし、あなたがそこに得れば、で動作するように速いです。その他fcurvesは、材料ノードに対して例えば同様のパスで見つけることができ

fc = bpy.context.active_object.animation_data.action.fcurves 

アクティブなオブジェクトを皮切り

は、あなたがfcurvesに行きたい、それは

fc = mat.node_tree.animation_data.action.fcurves 

fcurvesあるのリストですすべてのカーブを表示するには、findを使用して、ループしてすべてを変更しない限り、必要なカーブ(インデックス値0,1,2はx、y、zに一致します)を取得するのが最も簡単です。

loc_x_curve = fc.find('scale', index=0) 

次に、各曲線は、独自の補間の設定を持っているkeyframe項目のリストです。

for k in loc_x_curve.keyframe_points: 
    # k.co[0] is the frame number 
    # k.co[1] is the keyed value 
    k.interpolation = 'CUBIC' 
    k.easing = 'EASE_IN' 
+0

そして、2つのキーフレーム間でのみ補間を設定したいのですか? –

+0

'k [0] == 24かk [0] == 25の場合:k.interpolation = 'CUBIC' – sambler

0

は、例えばscipyのダウンロード、 を使用してみてください、次のように動作します:

>>> from scipy.interpolate import interp1d 
>>> x = np.linspace(0, 10, num=11, endpoint=True) 
>>> y = np.cos(-x**2/9.0) 
>>> f = interp1d(x, y) 
>>> f2 = interp1d(x, y, kind='cubic') 
>>> xnew = np.linspace(0, 10, num=41, endpoint=True) 
>>> import matplotlib.pyplot as plt 
>>> plt.plot(x, y, 'o', xnew, f(xnew), '-', xnew, f2(xnew), '--') 
>>> plt.legend(['data', 'linear', 'cubic'], loc='best') 
>>> plt.show() 
+0

これは一般的なコードです。申し訳ありません。 –

+0

非常に複雑ですが、それを行う最も簡単な方法はありませんか? –

関連する問題