2016-05-22 57 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

如果我想只在兩個關鍵幀之間設置插值? –

+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

這是非常複雜的,是不是有一個最簡單的方法來做到這一點? –