Nuke Viewer 设置帧范围问题

Nuke Viewer set framerange trouble

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

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

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

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

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

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

这是一个工作示例

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)