Difference between revisions of "Nuke Python"
Jump to navigation
Jump to search
(→Change specific attribute on all nodes) |
|||
| Line 57: | Line 57: | ||
a['channels'].setValue('rgba') | a['channels'].setValue('rgba') | ||
| + | |||
| + | </pre> | ||
| + | |||
| + | === Set localizationPolicy off on all Read nodes === | ||
| + | <pre> | ||
| + | sn = nuke.allNodes() | ||
| + | |||
| + | for n in sn: | ||
| + | |||
| + | n.knob('localizationPolicy').setValue("off") | ||
</pre> | </pre> | ||
Revision as of 00:05, 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')
Set localizationPolicy off on all Read nodes
sn = nuke.allNodes()
for n in sn:
n.knob('localizationPolicy').setValue("off")
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()