2016-06-01 4 views
0

를 업데이트하지 소리에, 그래서 그것은 항상 프레임 사이에 변경됩니다.블렌더 스케일 값은

블렌더는 값을 업데이트하지 않으며 텍스트가 실행되는 동안 항상 프레임 값을 가져 오는 것처럼 보입니다.

실시간으로 코드를 실행하는 동안 값을 업데이트하는 방법은 없습니까?

답변

0

잘못된 값을보고 있습니다.

당신은 v = scale[1] 다음 scale[0] = i을 설정하고이 다음 print(v) 그럼 scale.y

파이썬을 통해 프레임을 변경 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

bpy.context.object.scale [0]은 사운드에 구운 때문에 항상 변경되는 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 (프레임) 작동, 값이 올바르게되었습니다. –