2017-03-27 5 views
1

Nuke10에서 타임 라인 동기화 스크립트를 작성하고 있습니다. 전역 프레임 설정을 변경해야합니다. 예 :누크 뷰어 설정 프레임 오류 문제

nuke.root().knob('first_frame').setValue(1) 
nuke.root().knob('last_frame').setValue(100) 

그 후에 뷰어 재생 범위를 변경해야합니다. 예 :

vv = nuke.activeViewer().node() 
vv['frame_range_lock'].setValue(True) 
vv['frame_range'].setValue('5-40') 

별도로 작동합니다. 그러나 함께 - 아닙니다. 처음에는 글로벌 프레임 범위가 1-10입니다. 그리고 그 모든 라인을 실행할 때 - 프레임 범위는 1-100으로 설정되지만 재생 범위는 5-10으로 설정됩니다.

I 재생 범위를 확인하는 스크립트의 중간에 명령을 추가 :

nuke.root().knob('first_frame').setValue(1) 
nuke.root().knob('last_frame').setValue(100) 

x = vv.playbackRange() 
print(x) 

vv['frame_range_lock'].setValue(True) 
vv['frame_range'].setValue('5-40') 

는 인쇄의 :

# Result: 1-10 

나는 문제가 뷰어의 데이터가 될 때까지 갱신되지 않습니다 생각 스크립트는 실행을 마칩니다.

뷰어를 새로 고치려면 어떻게해야합니까?

이전 명령의 업데이트를 완료하기 위해 대기중인 명령이있을 수 있습니까?

또는 시청자에게 프레임 범위를 지정해야 할 필요가 있습니까?

답변

2

뷰어 노드를 다시 그리기 만하면 범위가 올바르게 업데이트됩니다. 여기

는 실시 예의

vv = nuke.activeViewer().node() 
nuke.root().knob('first_frame').setValue(1) 
nuke.root().knob('last_frame').setValue(100) 

vv.redraw() 
vv['frame_range_lock'].setValue(True) 
vv['frame_range'].setValue('25-40') 
x = vv.playbackRange() 
print(x) 
이다