############################################################################# ## colorblocks.py v1.0 ## By Andrew Osiow (c) 2009 ## ## ver 1.0 makes and places three cubes based color of a shader ## It shows how to link Attributes as well. ## ############################################################################# import maya.cmds as cmds def colorblocks(shader): # creates three cubes and places them based on the RGB values of the shader pyRedCube = cmds.polyCube( n='redCube' ) pyGreenCube = cmds.polyCube( n='greenCube' ) pyBlueCube = cmds.polyCube( n='blueCube' ) cmds.select( pyRedCube, r=True ) cubeHeight = cmds.getAttr (shader+'.colorR') cmds.move (1, cubeHeight, 0) cmds.select( pyGreenCube, r=True ) cubeHeight = cmds.getAttr (shader+'.colorG') cmds.move (3, cubeHeight, 0) cmds.select( pyBlueCube, r=True ) cubeHeight = cmds.getAttr (shader+'.colorB') cmds.move (5, 0, 0) cmds.setAttr( pyBlueCube[0]+'.ty', cubeHeight ) # link Color to Cubes # cmds.connectAttr( shader+'.colorR', pyRedCube[0]+'.ty' ) # cmds.connectAttr( shader+'.colorG', pyGreenCube[0]+'.ty' ) # link blue cube to a multiply node double it's height # multiplyNode = cmds.shadingNode( asUtility='multiplyDivide' ) # cmds.connectAttr( shader+'.colorB', multiplyNode+'.input1X' ) # cmds.connectAttr( multiplyNode+'.outputX', pyBlueCube[0]+'.ty' ) # set multiply node to multiply by 2 # cmds.setAttr ( multiplyNode+'.input2X', 2 ) # link Cubes to Color cmds.connectAttr( pyRedCube[0]+'.ty', shader+'.colorR' ) cmds.connectAttr( pyGreenCube[0]+'.ty', shader+'.colorG' ) cmds.connectAttr( pyBlueCube[0]+'.ty', shader+'.colorB' ) #end of colorBlocks