2016-06-01 9 views

答えて

0

あなたは間違った値を見ています。

あなたはv = scale[1]その後scale[0] = iを設定し、print(v)ので、あなたの読書scale.yをし、それのpython経由してフレームを変更するscene.frame_set()を使用することをお勧めしscale.y

を見て、その後scale.xを変更しています。

鍵付きの値を取得するための別のアプローチは、fcurve.evaluate(frame)

import bpy 

s = bpy.context.scene.frame_start 
e = bpy.context.scene.frame_end 

values = [] 
f = bpy.context.object.animation_data.action.fcurves.find('scale', index=1) 

for i in range(s,e): 
    v = f.evaluate(i) 
    print('At frame ',str(i), ' value ' ,str(v)) 
    values.extend([v]) 

を使用することですそして、あなたが値をキーフレームに計画している場合は、keyframe_insert(data_path, frame=f)

でフレームを指定することができるよう、あなたはフレームを変更する必要はありません
obj.keyframe_insert('scale', frame=2) 
obj.keyframe_insert('scale', index=1, frame=5) # key only scale.y 
+0

私はbake.context.object.scale [0]を音に焼き付けたので常に変化するde scale [1]値を更新しようとしましたが、scale [1]が常に変化しても、それは常に同じ値を出力します –

+0

'frame_set()'を使って焼いた音から値を出してください。それ以外の場合は、['fcurve.evaluate(frame)'](https://www.blender.org/api/blender_python_api_current/bpy.types.FCurve.html#bpy.types.FCurve.evaluate)を試してみてください – sambler

+0

fcurve.evaluate (フレーム)が機能し、値が正しくなった –

関連する問題