【问题标题】:Nuke Viewer set framerange troubleNuke Viewer 设置帧范围问题
【发布时间】:2023-03-13 17:32:01
【问题描述】:

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

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

如何强制 nuke 刷新查看器?

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

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

【问题讨论】:

    标签: python api viewer nuke


    【解决方案1】:

    您只需要说查看器节点即可重绘,然后它将正确更新范围。

    这是一个工作示例

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-02
      • 1970-01-01
      • 2014-06-10
      • 2015-04-19
      相关资源
      最近更新 更多