def declone(node): if node.clones() == 0: return args = node.writeKnobs(nuke.WRITE_ALL | nuke.WRITE_USER_KNOB_DEFS | nuke.WRITE_NON_DEFAULT_ONLY | nuke.TO_SCRIPT) newnode = nuke.createNode(node.Class(), knobs=args) nuke.inputs(newnode, nuke.inputs(node)) num_inputs = nuke.inputs(node) for i in range(num_inputs): newnode.setInput(i, node.input(i)) node.setInput(0, newnode) nuke.delete(node)
def _readwrites(blankread, check, threshold, report): sn = [n for n in nuke.selectedNodes() if n.Class() == "Write"] if sn == [] and blankread == True: nuke.createNode("Read", "", True) elif sn == [] and blankread == False: return None elif sn != []: for n in sn: file = n.knob('file').value() proxy = n.knob('proxy').value() colorspace = n.knob('colorspace').value() premult = n.knob('premultiplied').value() rawdata = n.knob('raw').value() xpos = n.knob('xpos').value() ypos = n.knob('ypos').value() firstFrame = nuke.value(n.name() + ".first_frame") lastFrame = nuke.value(n.name() + ".last_frame") if file == '' and proxy == '': if blankread == True: read = nuke.createNode("Read", "", False) read.knob('xpos').setValue(xpos) read.knob('ypos').setValue(ypos + 80) nuke.inputs(read, 0) continue elif blankread == False: continue args = 'file {%s} proxy {%s} first %s last %s colorspace %s premultiplied %s raw %s' % ( file, proxy, firstFrame, lastFrame, colorspace, premult, rawdata) read = nuke.createNode('Read', args) read.knob('xpos').setValue(xpos) read.knob('ypos').setValue(ypos + 80) nuke.inputs(read, 0) if check == True: _checkbadframes(read, report) continue else: continue return None else: return None
def _readwrites(blankread, check, threshold, report): sn = [n for n in nuke.selectedNodes() if n.Class() == "Write"] if sn == [] and blankread == True: nuke.createNode("Read", "", True) elif sn == [] and blankread == False: return None elif sn != []: for n in sn: file = n.knob('file').value() proxy = n.knob('proxy').value() colorspace = n.knob('colorspace').value() premult = n.knob('premultiplied').value() rawdata = n.knob('raw').value() xpos = n.knob('xpos').value() ypos = n.knob('ypos').value() firstFrame = nuke.value(n.name()+".first_frame") lastFrame = nuke.value(n.name()+".last_frame") if file == '' and proxy == '': if blankread == True: read = nuke.createNode("Read", "", False) read.knob('xpos').setValue(xpos) read.knob('ypos').setValue(ypos + 80) nuke.inputs(read, 0) continue elif blankread == False: continue args = 'file {%s} proxy {%s} first %s last %s colorspace %s premultiplied %s raw %s' % (file, proxy, firstFrame, lastFrame, colorspace, premult, rawdata) read = nuke.createNode('Read', args) read.knob('xpos').setValue(xpos) read.knob('ypos').setValue(ypos + 80) nuke.inputs(read, 0) if check == True: _checkbadframes(read, report) continue else: continue return None else: return None
def create_read_node(ndata, comp_start): read = nuke.createNode('Read', 'file "' + ndata['filepath'] + '"') read.knob('colorspace').setValue(int(ndata['colorspace'])) read.knob('raw').setValue(ndata['rawdata']) read.knob('first').setValue(int(ndata['firstframe'])) read.knob('last').setValue(int(ndata['lastframe'])) read.knob('origfirst').setValue(int(ndata['firstframe'])) read.knob('origlast').setValue(int(ndata['lastframe'])) if comp_start == int(ndata['firstframe']): read.knob('frame_mode').setValue("1") read.knob('frame').setValue(str(comp_start)) else: read.knob('frame_mode').setValue("0") read.knob('xpos').setValue(ndata['new_xpos']) read.knob('ypos').setValue(ndata['new_ypos']) nuke.inputs(read, 0) return
def copySpecial(): """copy selection, paste and reconnect (just one node)""" depNode = nuke.dependencies(nuke.selectedNode()) dependNode = nuke.dependentNodes(nuke.INPUTS or nuke.HIDDEN_INPUTS or nuke.EXPRESSIONS, [nuke.selectedNode()]) i = 0 if dependNode[0].Class() in ['Scene', 'MergeGeo']: i = nuke.inputs(dependNode[0])+1 nuke.nodeCopy(nukescripts.cut_paste_file()) for node in nuke.allNodes(): node['selected'].setValue(0) nuke.nodePaste(nukescripts.cut_paste_file()) newNode = nuke.selectedNode() newNode.setInput(0, depNode[0]) dependNode[0].setInput(i+1, newNode)