Max*_*xKu 2 python api viewer nuke
我正在Nuke10中编写时间轴同步脚本。我应该更改全局框架设置。例:
nuke.root().knob('first_frame').setValue(1)
nuke.root().knob('last_frame').setValue(100)
Run Code Online (Sandbox Code Playgroud)
之后,我应该更改查看器的播放范围。例:
vv = nuke.activeViewer().node()
vv['frame_range_lock'].setValue(True)
vv['frame_range'].setValue('5-40')
Run Code Online (Sandbox Code Playgroud)
另外,它起作用了。但是在一起-不是。开始时,我的全局帧范围是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')
Run Code Online (Sandbox Code Playgroud)
它是打印的:
# Result: 1-10
Run Code Online (Sandbox Code Playgroud)
我认为问题在于,在脚本完成运行之前,查看器中的数据不会更新。
如何强制核对刷新查看器?
还是可能有一条命令正在等待完成以前命令的更新?
还是有必要在查看器中指定帧范围?
您只需要说查看者节点重绘即可,它将正确更新范围。
这是一个有效的例子
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
668 次 |
| 最近记录: |