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
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
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
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
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
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
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
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
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
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
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
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