Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Line diagnostics - this script checks a custom DX11 shader to verify that artists have been setting values correctly
- #evaluates custom MLL plugin
- import pymel.core as pm
- import maya.mel as mm
- import os
- def fileList():
- mayaFiles = []
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\Falcone\sk61_falcone.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\Batman\sk61_batman.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\Alfred\sk61_alfred.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\BruceWayne\sk61_bruceWayne.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\Cobblepot\sk61_cobblepot.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\GCGalaMale\sk61_gcGalaMaleAverage.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\GCGenericMale\sk61_gcGenericMaleAverage.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\GCPoliceMale\sk61_gcPoliceMaleAverage.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\GCWaiter\sk61_gcWaiter.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\Gordon\sk61_gordon.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\HarveyDent\sk61_harveyDent.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\MafiaGang\sk61_mafiaGang.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk61\MercGang\sk61_mercGang.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\Catwoman\sk62_catwoman.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\GCGalaFemale\sk62_gcGalaFemaleAverage.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\GCGenericFemale\sk62_gcGenericFemaleAverage.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\SelinaKyle\sk62_selinaKyle.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\VickiVale\sk62_vickiVale.ma")
- mayaFiles.append(r"C:\Telltale\ArtData\Characters\Sk62\VickiVale\sk62_vickiValeDress.ma")
- envLocation = ('C:\\Telltale\\ArtData\\Environments\\Batman\\')
- objLocation = ('C:\\Telltale\\ArtData\\Objects\\Batman\\')
- envList = [f for f in os.listdir(envLocation) if os.path.isfile(os.path.join(envLocation,f))]
- objList = [f for f in os.listdir(objLocation) if os.path.isfile(os.path.join(objLocation,f))]
- for env in envList:
- env = envLocation + env
- mayaFiles.append(env)
- for obj in objList:
- obj = objLocation + obj
- mayaFiles.append(obj)
- return mayaFiles
- def checkLines():
- """Checks all dx11Shaders in scene to see if they have jagged/smooth line overrides enabled"""
- materials = pm.ls(mat=True)
- badMats = []
- for mat in materials:
- for i in set(pm.listConnections(mat, type='materialInfo')):
- for j in set(pm.listConnections(i, type='dx11Shader')):
- jagged = mm.eval(
- str('t3_getAttributeForBaseParameter "Material - Generate Jagged";'))
- smooth = mm.eval(
- str('t3_getAttributeForBaseParameter "Material - Generate Smooth";'))
- if pm.getAttr(j + "." + jagged) == 1.0:
- if (pm.getAttr(j + "." + jagged)) == (pm.getAttr(j + "." + smooth)):
- if (pm.getAttr(j + "." + jagged[:-6] + "_Override")) == (pm.getAttr(j + "." + smooth[:-6] + "_Override")):
- badMats.append(j)
- return badMats
- def linesCheck():
- if checkLines().__len__() > 0:
- for mat in checkLines():
- log.write (mat + ' has jagged/smooth both on\n')
- else:
- log.write ('All clean\n')
- logFile = ('C:\\logging\\materialscheck.txt')
- for mayaFile in fileList():
- try:
- pm.unloadPlugin('toolsManager.mll')
- log = open(logFile, "a")
- log.write(('Opening {0}\n').format(mayaFile))
- pm.openFile(mayaFile, force=True, open=True)
- linesCheck()
- except:
- pass
Advertisement
Add Comment
Please, Sign In to add comment