我试图获取项目的维度(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。
这整个过程看起来很糟糕。我做错了什么?可能的解决办法是什么?
答案 0 :(得分:1)
您可以使用Script Editor
中的这一行更改项目的查看器维度:
nuke.tcl('knob root.format ' '4K_DCP')
请注意space
后的root.format
。
如果你想使用自己的格式(自动),你应该将这些行放在init.py
或menu.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()