//James Parks global string $jpShaderMakerVerNum = "1.1"; global proc jpShaderMaker() { global string $jpShaderMakerVerNum; string $winName = "jpShaderMaker"; if (`window -exists $winName`) deleteUI $winName; window -t ("Shader Maker -- " + $jpShaderMakerVerNum) //-wh 100 35 -rtf 1 $winName ; rowColumnLayout -nr 12 -rh 1 25 -rh 2 15 -rh 3 15 -rh 4 15 -rh 5 15 -rh 6 15 -rh 7 15 -rh 8 15 -rh 9 15 -rh 10 15 -rh 11 20 -rh 12 25 ; string $nodes[] = `listNodeTypes "shader/surface"`; optionMenuGrp -cw 1 80 -cw2 2 120 //-cc ("$newMatType = `optionMenuGrp -q -v typeMenu`") -label "Make a/an" typeMenu ; menuItem -l "MIA"; menuItem -l "blinn"; /*for ($item in $nodes) { menuItem -l $item; } */ //$newMatType = $nodes[0]; optionMenuGrp -e -v "MIA" typeMenu; text -l "File Texture Nodes"; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Color" -cal 1 "left" -v1 1 -cw 1 66 -cw 2 33 "colorChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Trans" -cal 1 "left" -v1 0 -cw 1 66 -cw 2 33 "transChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Spec" -cal 1 "left" -v1 1 -cw 1 66 -cw 2 33 "specChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Bump" -cal 1 "left" -v1 1 -cw 1 66 -cw 2 33 "bumpChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Diffuse" -cal 1 "left" -v1 0 -cw 1 66 -cw 2 33 "diffuseChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Refl" -cal 1 "left" -v1 0 -cw 1 66 -cw 2 33 "reflChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Displ" -cal 1 "left" -v1 0 -cw 1 66 -cw 2 33 "displChannel" ; checkBoxGrp -w 200 -h 15 -ncb 1 -label " Place" -cal 1 "left" -v1 1 -cw 1 66 -cw 2 33 "place" ; textFieldGrp -l "Shader Name" -cw 1 80 -cw 2 120 -cal 1 "left" -cal 2 "left" -tx "...Shader Name..." visChannelGrp; button -l "Make That Shader, Baby!!!" -c "jpShaderMakerCollectAndCall()"; showWindow $winName; }//end proc global proc jpShaderMakerCollectAndCall() { string $type = `optionMenuGrp -q -v typeMenu`; int $color = `checkBoxGrp -q -v1 colorChannel`; int $trans = `checkBoxGrp -q -v1 transChannel`; int $spec = `checkBoxGrp -q -v1 specChannel`; int $bump = `checkBoxGrp -q -v1 bumpChannel`; int $diffuse = `checkBoxGrp -q -v1 diffuseChannel`; int $refl = `checkBoxGrp -q -v1 reflChannel`; int $displ = `checkBoxGrp -q -v1 displChannel`; int $place = `checkBoxGrp -q -v1 place`; string $name = `textFieldGrp -q -tx visChannelGrp`; switch ($type) { case "blinn": jpMakeBlinn($name, $color, $trans, $spec, $bump, $diffuse, $refl, $displ, $place); break; case "MIA": jpMakeMIA($name, $color, $trans, $spec, $bump, $diffuse, $refl, $displ, $place); break; case "phong": break; case "lambert": break; case "anisotropic": break; case "SurfaceShader": break; default: warning "An error has occured: shader type"; break; }//end switch }//end proc jpShaderMakerCollectAndCall global proc jpConnectFileNodesToPlacement(string $placeNode, string $fileNode) { //Connect displacementMap to Placement Node connectAttr -f ($placeNode + ".outUV") ($fileNode + ".uvCoord"); connectAttr -f ($placeNode + ".outUvFilterSize") ($fileNode + ".uvFilterSize"); connectAttr -f ($placeNode + ".coverage") ($fileNode + ".coverage"); connectAttr -f ($placeNode + ".translateFrame") ($fileNode + ".translateFrame"); connectAttr -f ($placeNode + ".rotateFrame") ($fileNode + ".rotateFrame"); connectAttr -f ($placeNode + ".mirrorU") ($fileNode + ".mirrorU"); connectAttr -f ($placeNode + ".mirrorV") ($fileNode + ".mirrorV"); connectAttr -f ($placeNode + ".stagger") ($fileNode + ".stagger"); connectAttr -f ($placeNode + ".wrapU") ($fileNode + ".wrapU"); connectAttr -f ($placeNode + ".wrapV") ($fileNode + ".wrapV"); connectAttr -f ($placeNode + ".repeatUV") ($fileNode + ".repeatUV"); //connectAttr -f ($placeNode + ".vertexUvOne") ($fileNode + ".vertexUvOne"); //connectAttr -f ($placeNode + ".vertexUvTwo") ($fileNode + ".vertexUvTwo"); //connectAttr -f ($placeNode + ".vertexUvThree") ($fileNode + ".vertexUvThree"); connectAttr -f ($placeNode + ".vertexCameraOne") ($fileNode + ".vertexCameraOne"); connectAttr -f ($placeNode + ".noiseUV") ($fileNode + ".noiseUV"); connectAttr -f ($placeNode + ".offset") ($fileNode + ".offset"); connectAttr -f ($placeNode + ".rotateUV") ($fileNode + ".rotateUV"); }//end proc jpConnectFileNodesToPlacement