Python for Nuke: выберите узел перед текущим
Как я могу выбрать узел через python перед тем, который выбран в данный момент?
Например, я хочу добавить узел "Зажим" точно перед всеми "Записать".
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)