Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import maya.cmds as cmds
- mtlMayaList = cmds.ls(sl=1)
- mayaShaders =["phong", "blinn", "lambert"]
- for mtlMaya in mtlMayaList:
- if (cmds.objectType(mtlMaya) in mayaShaders) and (mtlMaya not in ["lambert1","shaderGlow1", "particleCloud1"]):
- inputFile = cmds.listConnections(mtlMaya + ".color", d=1)[0]
- pathFile = cmds.getAttr(inputFile + ".fileTextureName")
- texDiffuse = pathFile.split("/")[-1].split(".")[0]
- mtl = texDiffuse + "_Mtl"
- remapSpec = "remapSpec_" + texDiffuse
- remapGloss = "remapGloss_" + texDiffuse
- remapMetal01 = "remapMetal01_" + texDiffuse
- remapMetal02 = "remapMetal02_" + texDiffuse
- remapList = [remapSpec, remapGloss, remapMetal01]
- if cmds.objExists(mtl)==False:
- cmds.shadingNode("RedshiftMaterial",n=mtl,asShader=1)
- for remap in remapList:
- cmds.shadingNode("remapHsv",n=remap,asUtility=1)
- cmds.connectAttr(inputFile + ".outColor", remap + ".color")
- cmds.shadingNode("remapHsv",n=remapMetal02,asUtility=1)
- cmds.connectAttr(remapMetal01 + ".outColor.outColorR", remapMetal02 + ".color.colorR")
- cmds.connectAttr(remapMetal01 + ".outColor.outColorR", remapMetal02 + ".color.colorG")
- cmds.connectAttr(remapMetal01 + ".outColor.outColorR", remapMetal02 + ".color.colorB")
- cmds.connectAttr(remapSpec + ".outColor", mtl + ".refl_color")
- cmds.connectAttr(remapGloss + ".outColor.outColorR", mtl + ".refl_roughness")
- cmds.connectAttr(remapMetal02 + ".outColor.outColorR", mtl + ".refl_metalness")
- cmds.connectAttr(inputFile + ".outColor", mtl + ".diffuse_color")
- cmds.setAttr(mtl + ".refl_weight", 0)
- cmds.setAttr(mtl + ".refl_samples", 128)
- cmds.setAttr(mtl + ".refl_ior", 1.4)
- else:
- print mtl + " already exists. Reusing it."
- cmds.select(mtlMaya)
- cmds.hyperShade(mtlMaya, objects="")
- cmds.hyperShade(assign=mtl)
- cmds.delete(mtlMaya)
- else:
- print "Script is not set up for " + mtlMaya + "'s shader-type. Skipping."
- cmds.select(cl=1)
Advertisement
Add Comment
Please, Sign In to add comment