global proc jpMakeMIA(string $name, int $color, int $trans, int $spec, int $bump, int $diffuse, int $refl, int $displ, int $placement) { //int $color = 1; //int $trans = 0; //int $spec = 1; //int $bump = 1; //int $diffuse = 1; //int $displ = 1; //int $placement = 1; //Load the damned plugin catchQuiet( `loadPlugin "C:\/Program Files (x86)\/Autodesk\/Maya2008\/bin\/plug-ins\/Mayatomr.mll"`); //Create the shading nodes //The MIA //createNode mia_material -n ($name + "_MIA"); string $tempNode = `mrCreateCustomNode -asShader "" mia_material`; rename $tempNode ($name + "_MIA"); rename ($tempNode + "SG") ($name + "_materialSG"); //connectAttr ($name + "_MIA.message") ":defaultShaderList1.shaders" -nextAvailable; setAttr ($name + "_MIA.reflectivity") 1; setAttr ($name + "_MIA.refl_color") -type double3 0 0 0 ; // setAttr ($name + "_MIA.eccentricity") 0; // setAttr ($name + "_MIA.specularRollOff") 0; addAttr -sn "dummyPlug" -ln "dummyPlug" -at "double3" -nc 3; addAttr -sn "dummyPlugX" -ln "dummyPlugX" -at "double" -p "dummyPlug"; addAttr -sn "dummyPlugY" -ln "dummyPlugY" -at "double" -p "dummyPlug"; addAttr -sn "dummyPlugZ" -ln "dummyPlugZ" -at "double" -p "dummyPlug"; setAttr -k on ".dummyPlug"; setAttr -k on ".dummyPlugX"; setAttr -k on ".dummyPlugY"; setAttr -k on ".dummyPlugZ"; //The Blinn createNode blinn -n ($name + "_Blinn"); connectAttr ($name + "_Blinn.message") ":defaultShaderList1.shaders" -nextAvailable; setAttr ($name + "_Blinn.reflectivity") 0; setAttr ($name + "_Blinn.specularColor") -type double3 0 0 0 ; setAttr ($name + "_Blinn.eccentricity") 0; setAttr ($name + "_Blinn.specularRollOff") 0; //The Shading Engine // createNode shadingEngine -n ($name + "_materialSG"); //The Connections connectAttr ($name + "_Blinn.outColor") ($name + "_MIA.dummyPlug"); connectAttr ($name + "_Blinn.outColor") ($name + "_materialSG.ss"); // connectAttr ($name + "_MIA.outValue") ($name + "_materialSG.miMaterialShader"); // connectAttr ($name + "_MIA.outValue") ($name + "_materialSG.miPhotonShader"); // connectAttr ($name + "_MIA.outValue") ($name + "_materialSG.miShadowShader"); if($color !=0) { //createNode file -n ($name + "_Color"); shadingNode -asTexture "file" -n ($name + "_Color"); setAttr ($name + "_Color.filterType") 0; createNode gammaCorrect -n ($name + "_gammaCorrect"); setAttr ($name + "_gammaCorrect.gammaX") 0.45; setAttr ($name + "_gammaCorrect.gammaY") 0.45; setAttr ($name + "_gammaCorrect.gammaZ") 0.45; connectAttr -force ($name + "_Color.outColor") ($name + "_gammaCorrect.value"); connectAttr -force ($name + "_gammaCorrect.outValue") ($name + "_MIA.diffuse"); connectAttr -force ($name + "_gammaCorrect.outValue") ($name + "_Blinn.color"); //Maya Viewport Blinn }//end if if($trans != 0) { shadingNode -asTexture "file" -n ($name + "_Trans"); setAttr ($name + "_Trans.filterType") 0; connectAttr -force ($name + "_Trans.outColor") ($name + "_MIA.transparency"); }//end if if($spec != 0) { //createNode file -n ($name + "_Spec"); shadingNode -asTexture "file" -n ($name + "_Spec"); setAttr ($name + "_Spec.filterType") 0; connectAttr -force ($name + "_Spec.outColor") ($name + "_MIA.refl_color"); }//end if if($bump != 0) { shadingNode -asUtility bump2d -n ($name + "_BumpUtility2d"); setAttr ($name + "_BumpUtility2d.bumpDepth") 0.1; shadingNode -asTexture "file" -n ($name + "_Bump"); setAttr ($name + "_Bump.filterType") 1; connectAttr -force ($name + "_Bump.outAlpha") ($name + "_BumpUtility2d.bumpValue"); createNode misss_set_normal -n ($name + "_misss_set_normal"); connectAttr -force ($name + "_BumpUtility2d.outNormal") ($name + "_misss_set_normal.normal"); connectAttr -force ($name + "_misss_set_normal.message") ($name + "_MIA.bump"); }//end if if($diffuse != 0) { //createNode file -n ($name + "_Diffuse"); shadingNode -asTexture "file" -n ($name + "_Diffuse"); setAttr ($name + "_Diffuse.filterType") 0; connectAttr -force ($name + "_Diffuse.outAlpha") ($name + "_MIA.diffuse"); }//end if if($refl != 0) { //createNode file -n ($name + "_Refl"); shadingNode -asTexture "file" -n ($name + "_Refl"); setAttr ($name + "_Refl.filterType") 0; connectAttr -force ($name + "_Refl.outColor") ($name + "_MIA.reflectedColor"); }//end if if($displ != 0) { //createNode file -n ($name + "_Displ"); shadingNode -asTexture "file" -n ($name + "_Displ"); setAttr ($name + "_Displ.filterType") 0; //connectAttr -force ($name + "_Displ.outColor") ($name + "_MIA.reflectedColor"); }//end if if($placement != 0) { //createNode place2dTexture -n ($name + "_Placement"); shadingNode -asUtility "place2dTexture" -n ($name + "_Placement"); if($color != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Color")); if($trans != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Trans")); if($spec != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Spec")); if($bump != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Bump")); if($diffuse != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Diffuse")); if($refl != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Refl")); if($displ != 0) jpConnectFileNodesToPlacement(($name + "_Placement"), ($name + "_Displ")); }//end if }//end proc jpMakeMIA