2017-03-27 9 views
1

Nuke10でタイムラインの同期スクリプトを書いています。 グローバルフレーム設定を変更する必要があります。例:Nuke Viewerのフレームレートの問題

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に設定されています。

私は、再生範囲を確認するために、スクリプトの途中でコマンドを追加します。

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) 
実施例であります
関連する問題