///////////////////////////////////////////////////////////////////////////// // colorblocks.mel 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. // //////////////////////////////////////////////////////////////////////////// global proc colorblocks(string $shader) {// creates three cubes and places them based on the RGB values of the shader string $melRedCube[] = `polyCube -n redCube`; string $melGreenCube[] = `polyCube -n greenCube`; string $melBlueCube[] = `polyCube -n blueCube`; select -r $melRedCube; $cubeHeight = `getAttr ($shader+".colorR")`; move 1 ($cubeHeight) 0; select -r $melGreenCube; $cubeHeight = `getAttr ($shader+".colorG")`; move 3 ($cubeHeight) 0; select -r $melBlueCube; $cubeHeight = `getAttr ($shader+".colorB")`; move 5 0 0; setAttr ($melBlueCube[0]+".ty") $cubeHeight; //link attributes // connectAttr ($shader+".colorR") ($melRedCube[0]+".ty"); // connectAttr ($shader+".colorG") ($melGreenCube[0]+".ty"); // link blue cube to a multiply node double it's height // $multiplyNode = `shadingNode -asUtility multiplyDivide`; // connectAttr ($shader+".colorB") ($multiplyNode+".input1X"); // connectAttr ($multiplyNode+".outputX") ($melBlueCube[0]+".ty"); // set multiply node to multiply by 2 // setAttr ($multiplyNode+".input2X") 2; // link color to cubes // connectAttr ($melRedCube[0]+".ty") ($shader+".colorR"); // connectAttr ($melGreenCube[0]+".ty") ($shader+".colorG"); // connectAttr ($melBlueCube[0]+".ty") ($shader+".colorB"); }