Difference between revisions of "Nuke Python"
Jump to navigation
Jump to search
(→Change specific attribute on all nodes) |
(→Change specific attribute on all nodes) |
||
Line 43: | Line 43: | ||
n.knob('render_mode').setValue("textured+wireframe") | n.knob('render_mode').setValue("textured+wireframe") | ||
+ | |||
//Alternative script for selectedNodes: | //Alternative script for selectedNodes: | ||
Line 49: | Line 50: | ||
a['channels'].setValue('rgba') | a['channels'].setValue('rgba') | ||
+ | |||
//Alternative script for allNodes: | //Alternative script for allNodes: |
Revision as of 00:04, 8 June 2019
Contents
Nuke Python Scripts
Create multiple Writes nodes for multiples Reads - With RGBA channels activated
//Select Read nodes first root_frame_path = "/YOUR_PATH" nodes = nuke.selectedNodes() for n in nodes: roto_name = n.name() n.setSelected(True) w = nuke.createNode( "Write" ) write_name = roto_name.replace("Roto", "Write_") w.knob("name").setValue(write_name) image_path = "{root_frame_path}/{write_name}.png".format(root_frame_path=root_frame_path, write_name=write_name) w.knob("file").setValue(image_path) for a in nuke.allNodes('Write'): a['channels'].setValue('rgba')
Change specific attribute on all nodes
//Works also with "selectedNodes" //"render_mode" and "textured+wireframe" are examples of attributes to be changed. sn = nuke.allNodes() for n in sn: n.knob('render_mode').setValue("textured+wireframe") //Alternative script for selectedNodes: for a in nuke.selectedNodes('Write'): a['channels'].setValue('rgba') //Alternative script for allNodes: for a in nuke.allNodes('Write'): a['channels'].setValue('rgba')
Count selected nodes
len(nuke.selectedNodes())
Maxwell Render - Check .mxi sequence Sampling levels
//This script comes from the great Marc Dubrois. def checkMXI_SL(): '''takes mxi read node and checks its SLs metadata and outputs frames under certain treshold''' sl_threshold = 18.0 txt = nuke.getInput('Print frames with SL below:', str(sl_threshold)) if txt: sl_threshold = float(txt) output = '' task = nuke.ProgressTask("Checking MXI SLs") task.setMessage("Progress") for node in nuke.selectedNodes(): if node.Class() == 'Read': firstframe = int(node['first'].value()) #lastframe = firstframe + 10 lastframe = int(node['last'].value()) for i in range(firstframe, lastframe): percentage = int(100.0*(i-firstframe)/(lastframe-firstframe)) task.setProgress(percentage) if task.isCancelled(): break; sl = node.metadata('SAMPLING_LEVEL',i) if sl < sl_threshold: task.setMessage('Frame ['+str(i)+'] SL'+"{0:.1f}".format(sl)) logline = 'Frame ' + str(i) + ': ' + "{0:.2f}".format(sl) + '\n' output = output + logline task.setProgress(100) del task p = nuke.Panel('Results') if output == '': output = 'All MXI are above or equal to '+str(sl_threshold) p.addNotepad('Results:',output) ret = p.show() checkMXI_SL()