calitostuff-blog
calitostuff-blog
Calito Tools
12 posts
A library of my Python and VEX tools for Houdini
Don't wanna be here? Send us removal request.
calitostuff-blog · 8 years ago
Conversation
RbdSim
Description :
Creates a DOP network with a basic RBD setup.
Name: RbdSim
Label: RbdSim
Icon: DOP_rbdpackedobject
Hotkey: None
Context: OBJ SOP
Script:
import objecttoolutils
objecttoolutils.genericTool(kwargs, 'dopnet')
autoRbd = kwargs['pane'].currentNode()
autoRbd.setName('RBD_SIM_01',True)
autoRbd.setColor(hou.Color(1,0,0))
in_parent = hou.node(autoRbd.path())
autoSolver = in_parent.createNode('rigidbodysolver')
rbdObject = in_parent.createNode('rbdpackedobject')
gravity = in_parent.createNode('gravity')
output = hou.node(autoRbd.path()+'/output')
gravity.setPosition(output.position())
gravity.move((0,1.5))
autoSolver.setPosition(gravity.position())
autoSolver.move((0,1.5))
rbdObject.setPosition(autoSolver.position())
rbdObject.move((-2,1.5))
output.setNextInput(gravity)
gravity.setNextInput(autoSolver)
autoSolver.setNextInput(rbdObject)
0 notes
calitostuff-blog · 8 years ago
Text
FlipSim
Name : FlipSim
Label : FlipSim
Icon : DOP_flipsolver
Hotkey : None
Context : OBJ SOP
import objecttoolutils
objecttoolutils.genericTool(kwargs, 'dopnet') autoFlip = kwargs['pane'].currentNode()
autoFlip.setName('FLIP_SIM_01',1) autoFlip.setColor(hou.Color((1,0,0)))
in_parent = hou.node(autoFlip.path()) autoSolver = in_parent.createNode('flipsolver::2.0','flipsolver') flipobject = in_parent.createNode('flipobject','flipobject1') sourcevolume = in_parent.createNode('sourcevolume','sourcevolume') gravity = in_parent.createNode('gravity','gravity') output = hou.node(autoFlip.path()+'/output')
autoSolver.setPosition((0,3.2)) flipobject.setPosition((-1.6,5.3)) sourcevolume.setPosition((1.68,5.3)) gravity.setPosition(output.position()) gravity.move([0,1.5])
gravity.setNextInput(autoSolver) output.setNextInput(gravity) autoSolver.setInput(0,flipobject,0) autoSolver.setInput(3,sourcevolume,0)
id = autoSolver.parm('doid') age = autoSolver.parm('doage') sep = autoSolver.parm('partsep') reseed = autoSolver.parm('reseed') soppath = flipobject.parm('soppath') visprim = flipobject.parm('visprim') pnames = ['initialize', 'scale_source', 'scale_velocity', 'source_merge', 'normalizesource', 'temperature_merge', 'velocity_merge', 'normalizevel', 'sourceparticles', 'killinside', 'killinsidesource', 'vel_mask', 'vel_abs','source_name', 'vol_sourcedest', 'temp_name', 'vol_tempdest', 'vel_name', 'vol_veldest', 'offsetscale'] sourceflip = [7, 1.0, 1.0, 6, 0, 8, 8, 1, 1, 1, 'surface', '', 0, 'surface', 'surface', '', '', '', '', 1]            
numloop = 0 for name in pnames:    parm = sourcevolume.parm(name)    parm.set(sourceflip[numloop])    numloop+=1
id.set(1) age.set(1) sep.set(1) reseed.set(0) soppath.set('') visprim.set(3)
0 notes
calitostuff-blog · 8 years ago
Text
PyroSim
Name : PyroSim
Label : PyroSim
Icon : SHELF_fireball
Hotkey : None
Context : OBJ SOP
import objecttoolutils
objecttoolutils.genericTool(kwargs, 'dopnet') autoPyro = kwargs['pane'].currentNode()
autoPyro.setName("PYRO_SIM_01",True) autoPyro.setColor(hou.Color(1,0,0))
in_parent = hou.node(autoPyro.path()) autoSolver = in_parent.createNode('pyrosolver::2.0','pyrosolver') sourceVolume = in_parent.createNode('sourcevolume') smokeObject = in_parent.createNode('smokeobject') resize = in_parent.createNode('gasresizefluiddynamic') output = hou.node(autoPyro.path()+'/output') drag = in_parent.createNode('drag')
autoSolver.setPosition((0,3.3)) smokeObject.setPosition((-2.3,4.6)) sourceVolume.setPosition((2.3,4.6)) resize.setPosition((-0.12,6)) drag.setPosition(output.position()) drag.move((0,1.5))
drag.setNextInput(autoSolver) output.setNextInput(drag) autoSolver.setInput(0,smokeObject,0) autoSolver.setInput(1,resize,0) autoSolver.setInput(4,sourceVolume,0)
velocity = sourceVolume.parm('velocity_merge') velocity.set(1)
0 notes
calitostuff-blog · 8 years ago
Text
InsertAutoVop
Name : InsertAutoVop
Label : InsertAutoVop
Icon : SOP_attribute
Hotkey : SHIFT + V
Context : SOP
import toolutils as tu selectedNodes = hou.selectedNodes() ConList=[] numCon=0 numConNode=0
for node in selectedNodes:    nodeMove = tu.findConnectedNodes(node, 'output', None)    for mNode in nodeMove:        mNode.move((0,-1.5))    outputNodes = node.outputs()    outputConnections = node.outputConnections()    for con in outputConnections:        ConList.insert(numCon,con.inputIndex())        numCon+=1    autoVop = node.createOutputNode('attribvop','attribvop',True,True,False)    autoVop.setPosition(node.position())    autoVop.move((0,-1.5))    node.setSelected(False)    for conNode in outputNodes:        conNode.setInput(ConList[numConNode],autoVop,0)        numConNode+=1
autoVop.setSelected(True) autoVop.setDisplayFlag(True) autoVop.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
AutoVop
Name : AutoVop
Label : AutoVop
Icon : SOP_attribute
Hotkey : V
Context : SOP
selected_nodes = hou.selectedNodes()
for node in selected_nodes:    autoVop = node.createOutputNode('attribvop','attribvop',True,True,False)    autoVop.setPosition(node.position())    autoVop.move((0,-1.5))    node.setSelected(False)
autoVop.setSelected(True) autoVop.setDisplayFlag(True) autoVop.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
InsertAutoWrangle
Name : InsertAutoWrangle
Label : InsertAutoWrangle
Icon : SOP_attribute
Hotkey : SHIFT + W
Context : SOP
import toolutils as tu selectedNodes=hou.selectedNodes() ConList=[] numCon=0 numConNode=0
for node in selectedNodes:    nodeMove = tu.findConnectedNodes(node, 'output', None)    for mNode in nodeMove:        mNode.move((0,-1.5))    outputNodes = node.outputs()    outputConnections = node.outputConnections()    for con in outputConnections:        ConList.insert(numCon,con.inputIndex())        numCon+=1    autoTransform = node.createOutputNode('xform')    autoTransform.setPosition(node.position())    autoTransform.move((0,-1.5))    autoTransform.setParmExpressions({'px':'$CEX','py':'$CEY','pz':'$CEZ'})    for conNode in outputNodes:        conNode.setInput(ConList[numConNode],autoTransform,0)        numConNode+=1
autoTransform.setSelected(True,True,True) autoTransform.setDisplayFlag(True) autoTransform.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
AutoWrangle
Name : AutoWrangle
Label : AutoWrangle
Icon : SOP_attribute
Hotkey : W
Context : SOP
s_node=hou.selectedNodes()
for node in s_node:    parent=node.node('..')    autoWrangle=parent.createNode('attribwrangle','attribwrangle')    autoWrangle.setNextInput(node)    autoWrangle.setSelected(True)    node.setSelected(False)    color=hou.Color((0.976,0.78,0.263))    autoWrangle.setColor(color)    autoWrangle.setPosition(node.position())    autoWrangle.move([0, -1.5])
autoWrangle.setDisplayFlag(True) autoWrangle.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
AutoMerge
Name : AutoMerge
Label : AutoMerge
Icon : SHELF_combine_objects
Hotkey : M
Context : SOP
selected_nodes = hou.selectedNodes()
for node in selected_nodes:    parent = node.parent()    node.setSelected(False)
autoMerge = parent.createNode('merge','merge') all_pos = []
for node in selected_nodes:    autoMerge.setNextInput(node)    all_pos += node.position()
x_pos = 0.0 x_list =all_pos[::2]
for node in x_list:    x_pos += node
x_pos /= len(x_list)
y_list =all_pos[1::2]     y_pos = min(y_list)
my_pos = [x_pos,y_pos] autoMerge.setPosition(my_pos) autoMerge.move([0,-1.5]) autoMerge.setSelected(True) autoMerge.setDisplayFlag(True) autoMerge.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
InsertAutoTransform
Name : insertAutoTransform
Label : insertAutoTransform
Icon : OBJ_null
Hotkey : SHIFT + T
Context : SOP
import toolutils as tu selectedNodes=hou.selectedNodes() ConList=[] numCon=0 numConNode=0
for node in selectedNodes:    nodeMove = tu.findConnectedNodes(node, 'output', None)    for mNode in nodeMove:        mNode.move((0,-1.5))    outputNodes = node.outputs()    outputConnections = node.outputConnections()    for con in outputConnections:        ConList.insert(numCon,con.inputIndex())        numCon+=1    autoTransform = node.createOutputNode('xform')    autoTransform.setPosition(node.position())    autoTransform.move((0,-1.5))    autoTransform.setParmExpressions({'px':'$CEX','py':'$CEY','pz':'$CEZ'})    for conNode in outputNodes:        conNode.setInput(ConList[numConNode],autoTransform,0)        numConNode+=1
autoTransform.setSelected(True,True,True) autoTransform.setDisplayFlag(True) autoTransform.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
autoTransform
Name : autoTransform
Label : autoTransform
Icon : OBJ_null
Hotkey : T
Context : SOP
selected_nodes = hou.selectedNodes()
for node in selected_nodes:    autoTransform = node.createOutputNode('xform','transform',True,True,False)    autoTransform.setPosition(node.position())    autoTransform.move((0,-1.5))    autoTransform.setParmExpressions({'px':'$CEX','py':'$CEY','pz':'$CEZ'})    node.setSelected(False)
autoTransform.setSelected(True) autoTransform.setDisplayFlag(True) autoTransform.setRenderFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
insertAutoNull
Name : insertAutoNull
Label : insertAutoNull
Icon : OBJ_null
Hotkey : SHIFT + N
Context : SOP
import toolutils as tu selectedNodes = hou.selectedNodes() newColor=hou.Color((0.584,0.776,1)) indexList = [] indexNum = 0 conNum = 0
for node in selectedNodes:    nodeMove = tu.findConnectedNodes(node, 'output', None)    for mNode in nodeMove:        mNode.move((0,-1.5))    parent = node.parent()    getName = node.name()    connectedNodes = node.outputs()    connections = node.outputConnections()    for link in connections:        indexList.insert(indexNum,link.inputIndex())        indexNum+=1    node.setSelected(False)    autoNull = parent.createNode('null')    autoNull.setPosition(node.position())    autoNull.move((0,-1.5))    autoNull.setNextInput(node)    autoNull.setColor(newColor)    autoNull.setName('OUT_'+getName.upper(),True)    bbox = hou.FloatParmTemplate('bbox','Bounding box',3)    autoNull.addSpareParmTuple(bbox,(),False)    autoNull.setParmExpressions({'bboxx':'bbox("../$OS",D_XSIZE)','bboxy':'bbox("../$OS",D_YSIZE)','bboxz':'bbox("../$OS",D_ZSIZE)'})    centroid = hou.FloatParmTemplate('centroid','Centroid',3)    autoNull.addSpareParmTuple(centroid,(),False)    autoNull.setParmExpressions({'centroidx':'centroid("../$OS",D_X)','centroidy':'centroid("../$OS",D_Y)','centroidz':'centroid("../$OS",D_Z)'})    input = autoNull.parm('copyinput')    input.hide(True)    cache = autoNull.parm('cacheinput')    cache.hide(True)    for conNode in connectedNodes:        conNode.setInput(indexList[conNum],autoNull,0)        conNum +=1
autoNull.setSelected(True) autoNull.setRenderFlag(True) autoNull.setDisplayFlag(True)
0 notes
calitostuff-blog · 8 years ago
Text
AutoNull
Name : AutoNull
Label : AutoNull
Icon : OBJ_null
Hotkey : N
Context : SOP
selected_nodes = hou.selectedNodes() new_color=hou.Color((0.584,0.776,1))
for node in selected_nodes:    parent = node.node('..')    get_name = node.name()    connectedNodes = node.outputs()    out_null = node.createOutputNode('null','OUT'+'_'+get_name.upper(),True,True,False)    out_null.setPosition(node.position())    out_null.move([0, -1.5])    node.setSelected(False)    out_null.setColor(new_color)    input = out_null.parm('copyinput')    input.hide(True)    cache = out_null.parm('cacheinput')    cache.hide(True)    bbox = hou.FloatParmTemplate('bbox','Bounding box',3)    centroid = hou.FloatParmTemplate('centroid','Centroid',3)    out_null.addSpareParmTuple(bbox,(),True)    out_null.addSpareParmTuple(centroid,(),True)    out_null.setParmExpressions({"bboxx": 'bbox("../$OS",D_XSIZE)', "bboxy": 'bbox("../$OS",D_YSIZE)',"bboxz": 'bbox("../$OS",D_ZSIZE)'})    out_null.setParmExpressions({"centroidx": 'centroid("../$OS",D_X)', "centroidy": 'centroid("../$OS",D_Y)',"centroidz": 'centroid("../$OS",D_Z)'})
out_null.setDisplayFlag(True) out_null.setRenderFlag(True) out_null.setSelected(True,True,True)
0 notes