Created
February 8, 2019 15:54
-
-
Save kanishk2391/55a9e60b5fe351b65bc48c1016d9331f to your computer and use it in GitHub Desktop.
Matcaps For Maya - Python
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import os | |
import maya.cmds as cmds | |
import glob | |
def matCapShader(): | |
mainShader=cmds.shadingNode("surfaceShader",n="matCapShader",asShader=True) | |
envBall=cmds.shadingNode("envBall",n="matCapBall",asTexture=True) | |
placeTextureNode3D=cmds.shadingNode("place3dTexture",n="matCapTexturePlacer3d",asUtility=True) | |
fileNode=cmds.shadingNode("file",n="matCapFile",asTexture=True) | |
placeTextureNode2D=cmds.shadingNode("place2dTexture",n="matCapTexturePlacer2d",asUtility=True) | |
cmds.connectAttr("%s.worldInverseMatrix"%placeTextureNode3D,"%s.placementMatrix"%envBall) | |
cmds.connectAttr("%s.outColor"%envBall,"%s.outColor"%mainShader) | |
cmds.connectAttr("%s.coverage"%placeTextureNode2D,"%s.coverage"%fileNode) | |
cmds.connectAttr("%s.translateFrame"%placeTextureNode2D,"%s.translateFrame"%fileNode) | |
cmds.connectAttr("%s.rotateFrame"%placeTextureNode2D,"%s.rotateFrame"%fileNode) | |
cmds.connectAttr("%s.mirrorU"%placeTextureNode2D,"%s.mirrorU"%fileNode) | |
cmds.connectAttr("%s.mirrorV"%placeTextureNode2D,"%s.mirrorV"%fileNode) | |
cmds.connectAttr("%s.stagger"%placeTextureNode2D,"%s.stagger"%fileNode) | |
cmds.connectAttr("%s.wrapU"%placeTextureNode2D,"%s.wrapU"%fileNode) | |
cmds.connectAttr("%s.wrapV"%placeTextureNode2D,"%s.wrapV"%fileNode) | |
cmds.connectAttr("%s.repeatUV"%placeTextureNode2D,"%s.repeatUV"%fileNode) | |
cmds.connectAttr("%s.offset"%placeTextureNode2D,"%s.offset"%fileNode) | |
cmds.connectAttr("%s.rotateUV"%placeTextureNode2D,"%s.rotateUV"%fileNode) | |
cmds.connectAttr("%s.noiseUV"%placeTextureNode2D,"%s.noiseUV"%fileNode) | |
cmds.connectAttr("%s.outUV"%placeTextureNode2D,"%s.uv"%fileNode) | |
cmds.connectAttr("%s.outUvFilterSize"%placeTextureNode2D,"%s.uvFilterSize"%fileNode) | |
cmds.connectAttr("%s.outColor"%fileNode,"%s.image"%envBall,force=True) | |
cmds.setAttr("%s.filterType"%fileNode,0) | |
cmds.setAttr("%s.eyeSpace"%envBall,1) | |
return(mainShader,fileNode) | |
def assignShader(): | |
r=cmds.ls(sl=True) | |
for i in r: | |
cmds.hyperShade(a=shaderName) | |
def fetchFiles(): | |
path=cmds.textField(inputPath,q=True,text=True) | |
os.chdir(path) | |
files = glob.glob('*.*') | |
cmds.textScrollList(matCapListBox,e=True,append=(files)) | |
def changePreviewImage(): | |
mainPath=cmds.textField(inputPath,q=True,text=True) | |
selectedIndex=cmds.textScrollList(matCapListBox,q=True,si=1) | |
imagepath=mainPath+"\\"+selectedIndex[0] | |
print imagepath | |
cmds.setAttr("%s.fileTextureName"%fileName,str(imagepath),type="string") | |
cmds.iconTextButton(matCapPreviewImage,e=True,image1=imagepath) | |
matcapList=[] | |
matcapWindow = cmds.window( title="Matcaps for Maya", iconName='Short Name', widthHeight=(505, 315),tlb=True,sizeable=False,bgc=(0.3,0.3,0.3) ) | |
createShader=matCapShader() | |
fileName=createShader[1] | |
shaderName=createShader[0] | |
cmds.columnLayout( adjustableColumn=True ) | |
cmds.iconTextStaticLabel( st='textOnly',l='MATCAPS FOR MAYA',h=30 ) | |
cmds.separator(h=10) | |
cmds.rowColumnLayout(nc=3) | |
cmds.iconTextStaticLabel( st='textOnly',l='Path',w=50 ) | |
inputPath=cmds.textField(w=350,bgc=(0.5,0.5,0.5)) | |
cmds.button("Fetch Matcaps",w=100,c="fetchFiles()") | |
cmds.setParent("..") | |
cmds.separator(h=10) | |
cmds.rowColumnLayout(nc=2) | |
matCapListBox=cmds.textScrollList(append=(matcapList),sc="changePreviewImage()",w=300) | |
matCapPreviewImage=cmds.iconTextButton( style='iconOnly', image1=None,w=200,h=200) | |
cmds.setParent( '..' ) | |
cmds.separator(h=10) | |
cmds.button("Assign Shader",w=250,c="assignShader()") | |
cmds.showWindow( matcapWindow ) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment