Skip to content

Instantly share code, notes, and snippets.

@Regnareb
Regnareb / gist:53cca61d2f78eed6db3f
Last active August 29, 2015 14:22
Transfer shader assignation (render layers)
import maya.cmds as cmds
def getSGsFromMaterial(shader):
if cmds.ls(shader, materials=True):
nodes = [i.split('.')[0] for i in cmds.connectionInfo(shader +'.outColor', destinationFromSource=True)] # Faster than cmds.listConnections(shader, type="shadingEngine")
shadingGroups = [i for i in nodes if cmds.nodeType(i) == 'shadingEngine']
return shadingGroups
return []
def getShaderAssignation(shader):
@Regnareb
Regnareb / evalDeferred.py
Last active September 24, 2018 19:29
Disconnect at particle creation with evalDeferred
import maya.cmds as cmds
emetteur = cmds.emitter(type='surface', rate=10, scaleRateByObjectSize=False, needParentUV=True,
cycleEmission='none', speed=1, speedRandom=0, normalSpeed=1, tangentSpeed=0,
maxDistance=0, minDistance=0, dx=1, dy=0, dz=0, spread=0)
particules = cmds.nParticle()
cmds.evalDeferred(lambda: cmds.disconnectAttr(particules[1] + ".internalOpacityRamp", particules[1] + ".opacityPP"), lowestPriority=True)
# Meme chose que la ligne precedente mais passe par une string au lieu d'un lambda.
# cmds.evalDeferred('cmds.disconnectAttr("{}.internalOpacityRamp","{}.opacityPP")'.format(particules[1], particules[1]), lowestPriority=True)
@Regnareb
Regnareb / nodegraphhooks.py
Last active September 17, 2022 12:01
Put that in your houdini pref folder to create a Null connected to the selected node if you click Shift in the graph editor (houdiniXX.X\python2.7libs\nodegraphhooks.py)
import hou
import canvaseventtypes
def follow_flags(parent, child):
if parent.isDisplayFlagSet():
child.setDisplayFlag(True)
if parent.isRenderFlagSet():
child.setRenderFlag(True)
@Regnareb
Regnareb / onInputChanged.py
Created September 17, 2022 13:02
Put that file in your Houdini preference folder to automatically make the display/render flag follow your new connections (houdiniXX.X\scripts\onInputChanged.py)
def automatic_display_flag(node, index):
"""When connecting input, this script will change the display flag is the input connected has the display flag on"""
try:
if node.input(index):
if node.input(index).isDisplayFlagSet():
node.setDisplayFlag(True)
if node.input(index).isRenderFlagSet():
node.setRenderFlag(True)
except Exception:
pass