如何在Foundry Nuke中获得项目维度?

时间:2017-09-18 20:24:59

标签: python nuke

我试图获取项目的维度(format),在项目的外行词 height width 中进一步处理。在阅读关于Nuke Python开发人员指南的Formats documentation文档时,我发现要获得项目的宽度和高度,必须选择脚本中的任何节点,例如

# Viewer1 is only generic thing in every project
nuke.toNode("Viewer1").setSelected(True)
projwidth = nuke.selectedNode().format().width()
projheight = nuke.selectedNode().format().height()

但这会对节点图产生一些不利影响。即使我将nuke.toNode("Viewer1").setSelected(False)附加到上一行的末尾,Gizmo也会连接到Viewer1。

如果您想查看整个脚本,请

Here's

这整个过程看起来很糟糕。我做错了什么?可能的解决办法是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用Script Editor中的这一行更改项目的查看器维度:

nuke.tcl('knob root.format ' '4K_DCP')

请注意space后的root.format

如果你想使用自己的格式(自动),你应该将这些行放在init.pymenu.py .nuke文件夹中:

import nuke

Format_1600 = "1600 900 0 0 1600 900 1 Format_1600"
nuke.addFormat(Format_1600)
nuke.knobDefault("Root.format", "Format_1600")

其中:1600 900 0 0 1600 900 1 Format_1600是:

# width = 1600, height = 900
# x = 0, y = 0, right = 1600, top = 900
# pixel aspect = 1 (square pixels)
# name = Format_1600

或者您可以从核武列表中选择任何现有格式:

nuke.knobDefault('Root.format', 'HD_1080')
  

当然,您可以get尺寸和项目格式的其他值:

nuke.root()['format'].value().width()
nuke.root()['format'].value().height()

nuke.root()['format'].value().name()
nuke.root()['format'].value().pixelAspect()
nuke.root()['format'].value().x()
nuke.root()['format'].value().y()
nuke.root()['format'].value().r()
nuke.root()['format'].value().t()