Python for Nuke:选择当前节点之前的节点

Python for Nuke:选择当前节点之前的节点,python,nuke,Python,Nuke,如何在当前选择的节点之前通过python选择节点 例如,我想在所有“写入”节点之前添加一个“钳制”节点。此代码段允许您在现有写入节点的上游定义一个节点 import nuke iNode = nuke.toNode('Write1') def upstream(iNode, maxDeep=-1, found=None): if found is None: found = set() if maxDeep != 0: willFind = s

如何在当前选择的节点之前通过python选择节点


例如,我想在所有“写入”节点之前添加一个“钳制”节点。

此代码段允许您在现有写入节点的上游定义一个节点

import nuke

iNode = nuke.toNode('Write1')

def upstream(iNode, maxDeep=-1, found=None):

    if found is None:
        found = set()
    if maxDeep != 0:
       willFind = set(z for z in iNode.dependencies() if z not in found)
       found.update(willFind)

       for depth in willFind:
           upstream(depth, maxDeep+1, found)

    return found
然后调用方法
上游(iNode)

您之前发送给我的脚本片段应该如下所示:

allWrites = nuke.allNodes('Grade')
depNodes = nuke.selectedNode().dependencies()

for depNode in depNodes:
    depNode.setSelected(True) 

queueElem = len(allWrites)
trigger = -1

for i in range(1,queueElem+1):
    trigger += 1

    for write in allWrites[(0+trigger):(1+trigger)]: 
        write.setSelected(True)
        nuke.createNode("Clamp")

        for all in nuke.allNodes():
            all.setSelected(False)

嗨,安迪!谢谢,但不是我的意思,很抱歉误会了。我真正需要的是在我想要的节点之前选择节点。假设我的comp中有一堆“Write”节点,我需要在写入之前钳制它们,因此我应该在写入之前选择节点以添加钳制节点,以便在两者之间连接。我认为可以通过dependencies()或dependent()实现,但不确定这是否是最好的方式。嗨@Andy,由于某些原因,它不起作用,现在我尝试使用以下代码:
allWrites=nuke.allNodes('Write')用于写入allWrites:Write.setSelected(True)用于写入depNodes中的depNode:depNode.setSelected(True)clampNode=nuke.createNode(“Clamp”)
但它不能连接所有东西。请提供任何进一步的帮助?
allWrites=nuke.allNodes('Grade')用于写入allWrites:write.setSelected(True)depNodes=nuke.selectedNode().depNodes中depNode的依赖项():depNode.setSelected(True)clampNode=nuke.createNode(“Clamp”)
很抱歉给您带来不便,但我无法执行整个脚本,因为我有NUKE非商业版本(使用NC版本的Python脚本中只有10个节点可用)。所以我希望我有足够的想法来撰写你自己的剧本。我很高兴我帮助了你。)