我正在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
我认为问题是在脚本完成运行之前,查看器中的数据不会更新。
如何强制核弹刷新查看器?
或者可能有命令等待完成以前命令的更新?
或者可能需要在查看器中指定帧范围?
答案 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)