2017-06-16 122 views

回答

1

该代码片段允许您定义节点上游现有的写入节点。

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 

然后调用方法upstream(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) 

enter image description here

+0

嗨安迪!谢谢,但不是我的意思,抱歉的错误理解。我真正需要的是在我想要的节点之前选择节点。想象一下,在我的comp中我有一堆“Write”节点,并且在写入之前我需要将它们夹紧,所以我应该在Write之前选择节点来添加Clamp一个,这样它们就可以在两者之间进行连接。我认为可以通过dependencies()或dependent()来完成,但不知道这是否是最好的方法。 –

+0

@Andy嗨,由于某种原因,它不工作,现在我想要使用此代码: 'allWrites = nuke.allNodes( '写') 在allWrites写: write.setSelected(真) 为depNode在depNodes中: depNode.setSelected(True) clampNode = nuke.createNode(“Clamp”)'但它没有连接任何东西。请进一步帮助吗? –

+0

'allWrites = nuke.allNodes( '级') 用于allWrites写: write.setSelected(真) depNodes = nuke.selectedNode()的依赖关系() 用于depNode在depNodes: depNode.setSelected(真) clampNode = nuke.createNode(“Clamp”)' –