def list_double_clicked(self): tools_list = read_json() current_index = self.tool_list.currentRow() tool_command = tools_list[current_index].get("command") if tools_list[current_index].get("type") == "python": execfile(tool_command.encode("gbk")) else: nuke.loadToolset(tool_command)
def toolsetLoader(fullFileName): if FILE_FILTER != None: data = fileFilter(fullFileName, FILE_FILTER) #TODO: find better way to paste filtred script QApplication.clipboard().setText(data) nuke.nodePaste("%clipboard%") # paste into nuke DAG else: nuke.loadToolset(fullFileName) return True
def showIPPanel(panelfloat=True): '''Show viewer input control panel''' try: node_ip = nuke.activeViewer().node()['input_process_node'].value() nuke.toNode(node_ip).showControlPanel(forceFloat=panelfloat) print "VIEWER_INPUT Shown" except: if nuke.ask('No Viewer_Input found, load one?'): import os nuke.loadToolset(os.path.join(os.getEnv('HOME'), '.nuke/ToolSets/Utility/ku_IP.nk')) else: nuke.message("Oh well then")
def RotoOutputNode(): #Creates a NoOp Placeholder = nuke.createNode("NoOp") #assigns a varriable to the currently selected node OpNo = nuke.selectedNode() #Creates a roto node Roto = nuke.createNode("Roto") #Creates the RotoOutput tool Output = nuke.loadToolset("Ahuge_Tools/Roto_Output.nk") #Sets the first input of the RotoOutput to our NoOp Output.setInput (0, Placeholder) #Sets the second input to the roto node Output.setInput(1, Roto) #Move the Output Node Output.setXpos (Output.xpos() -140) Output.setYpos (Output.ypos() +84) #Move the Roto Node Roto.setXpos (Output.xpos() -220) Roto.setYpos (Output.ypos() +6) #Creates a Input node for the roto to connect to Dummy = nuke.createNode("Input") Roto.setInput(0, Dummy) #Deletes the Input and the NoOp nuke.delete(Dummy) nuke.delete(Placeholder)
def toolsetLoader(fullFileName): if FILE_FILTER != None: data = fileFilter(fullFileName, FILE_FILTER) # SAVING TEMPORAL TOOLSET | instead of #QApplication.clipboard().setText(data) #nuke.nodePaste("%clipboard%") is craching with big files BUG randomPostfix = randomStringDigits(10) randomName = posixpath.join( SHARED_TOOLSET_PATH , "temp_toolset_%s.nk" % randomPostfix) saveTempToolSet = open(randomName,"w+") saveTempToolSet.write(data) saveTempToolSet.close() nuke.loadToolset(randomName) os.remove(randomName) else: nuke.loadToolset(fullFileName) return True
def toolsetLoader(fullFileName): if FILE_FILTER != None: data = fileFilter(fullFileName, FILE_FILTER) # SAVING TEMPORAL TOOLSET | instead of #QApplication.clipboard().setText(data) #nuke.nodePaste("%clipboard%") is craching with big files BUG randomPostfix = randomStringDigits(10) randomName = posixpath.join( SHARED_TOOLSET_PATH , "temp_toolset_%s.nk" % randomPostfix) saveTempToolSet = open(randomName,"w+") saveTempToolSet.write(data) saveTempToolSet.close() nuke.loadToolset(randomName) os.remove(randomName) else: nuke.loadToolset(fullFileName) return True
def verCheck(node=nuke.thisNode()): nodeName = nuke.thisNode().name() message = "Would you like to update the %s to the latest version?" % ( nodeName) try: curVer = node['renderNodeVersion'].value() # Checks to see what the current version is. if curVer >= renNodeVer: return "pass" # Load Latest RenderNode Version else: if nuke.ask(message): # Number of inputs of the RenderNode inputNum = 2 renNode = node # Saves original inputs prevInputs = [] for x in range(inputNum): prevInputs.append(renNode.input(x)) # Saves the values of the knobs knobs = [ "v_num", "verControl", "curVer", "cropCheck", "shotNotes", "lutFile", "lutControl", "format", "viewMenu" ] knobValues = [] for x in knobs: knobValues.append(renNode[x].value()) xPos = renNode["xpos"].value() yPos = renNode["ypos"].value() # Create updated RenderNode- if you make the node into a gizmo, change nuke.loadToolset into nuke.createNode nuke.root().begin() newNode = nuke.loadToolset(rendernodeFile.replace("\\", "/")) newNode.setXYpos(int(xPos), int(yPos)) # Applies values to the new knobs for x in knobs: newNode[x].setValue(knobValues[knobs.index(x)]) # Sets the original inputs for x in range(inputNum): newNode.setInput(x, prevInputs[x]) nuke.root().end() nuke.delete(renNode) return "break" except: pass
def verCheck(node=nuke.thisNode()): nodeName = nuke.thisNode().name() message = "Would you like to update the %s to the latest version?" % (nodeName) try: curVer = node['renderNodeVersion'].value() # Checks to see what the current version is. if curVer >= renNodeVer: return "pass" # Load Latest RenderNode Version else: if nuke.ask(message): # Number of inputs of the RenderNode inputNum = 2 renNode = node # Saves original inputs prevInputs = [] for x in range(inputNum): prevInputs.append(renNode.input(x)) # Saves the values of the knobs knobs = ["v_num", "verControl", "curVer", "cropCheck","shotNotes", "lutFile", "lutControl", "format","viewMenu"] knobValues = [] for x in knobs: knobValues.append(renNode[x].value()) xPos = renNode["xpos"].value() yPos = renNode["ypos"].value() # Create updated RenderNode- if you make the node into a gizmo, change nuke.loadToolset into nuke.createNode nuke.root().begin() newNode = nuke.loadToolset(rendernodeFile.replace("\\","/")) newNode.setXYpos(int(xPos), int(yPos)) # Applies values to the new knobs for x in knobs: newNode[x].setValue(knobValues[knobs.index(x)]) # Sets the original inputs for x in range(inputNum): newNode.setInput(x, prevInputs[x]) nuke.root().end() nuke.delete(renNode) return "break" except: pass
def Packer(): nuke.loadToolset("Ahuge_Tools/Packer.nk")
def ErodeBlur(): nuke.loadToolset("Ahuge_Tools/ErodeBlur.nk")
def GrainBlur(): nuke.loadToolset("Ahuge_Tools/GrainBlur.nk")
def P3D(): nuke.loadToolset("Ahuge_Tools/PointsTo3D.nk" )
def Paintout(): nuke.loadToolset("Ahuge_Tools/Paintout.nk")
def Saturation(): nuke.loadToolset("Ahuge_Tools/Saturation.nk")
def SmudgeTool(): nuke.loadToolset("Ahuge_Tools/Smudge.nk")