Nuke Viewer设置了framerange的麻烦

时间:2017-03-27 11:28:24

标签: python api viewer nuke

我正在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。

我在脚本中间添加命令来检查播放范围:

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

我认为问题是在脚本完成运行之前,查看器中的数据不会更新。

如何强制核弹刷新查看器?

或者可能有命令等待完成以前命令的更新?

或者可能需要在查看器中指定帧范围?

1 个答案:

答案 0 :(得分:5)

你只需说查看节点重绘然后就会正确更新范围。

这是一个工作示例

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)