This script will easily to on and off various common Arnold settings. It will set up layer overrides automatically when your current layer is not the default layer
Current Options: Matte Object, Auto Bump, and Opaque. (If you would like any options added feel free to email me on my contact page and request them.)
To Run: Select the geometry and make sure you are on the desired render layer. Run the script. Select the options you would like to be affected. Then choose the on or off button.
#Arnold Overrides version 1.0.0 #For Maya. Tested in Maya 2014 & 2015 with Arnold 4.2.9.0 #Bryanna London www.bryannalondon.com #!/usr/bin/env python import maya.cmds as cmds #Define Selected Geo selGeo = cmds.ls(selection = True , visible = True , type = 'transform') #Turn Matte Objects On def turnOn(): #Define Current Render Layer rl = cmds.editRenderLayerGlobals( query=True, currentRenderLayer=True ) #Get Query Values matteValue, opaqueValue, bumpValue = queryingValues() if selGeo > 0: if matteValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiMatte' , 1) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiMatte') cmds.setAttr(geo + '.aiMatte' , 1) if opaqueValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiOpaque' , 1) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiOpaque') cmds.setAttr(geo + '.aiOpaque' , 1) if bumpValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiDispAutobump' , 1) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiDispAutobump') cmds.setAttr(geo + '.aiDispAutobump' , 1) else: cmds.confirmDialog(title='Confirm', message='Nothing Selected. Nothing Done.' , button =['Ok']) #Turn Matte Objects Off def turnOff(): #Define Current Render Layer rl = cmds.editRenderLayerGlobals( query=True, currentRenderLayer=True ) #Get Query Values matteValue, opaqueValue, bumpValue = queryingValues() if selGeo > 0: if matteValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiMatte' , 0) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiMatte') cmds.setAttr(geo + '.aiMatte' , 0) if opaqueValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiOpaque' , 0) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiOpaque') cmds.setAttr(geo + '.aiOpaque' , 0) if bumpValue == True: if rl == 'defaultRenderLayer': for geo in selGeo: cmds.setAttr(geo + '.aiDispAutobump' , 0) else: for geo in selGeo: cmds.editRenderLayerAdjustment(geo + '.aiDispAutobump') cmds.setAttr(geo + '.aiDispAutobump' , 0) else: cmds.confirmDialog(title='Confirm', message='Nothing Selected. Nothing Done.' , button =['Ok']) #delete window if a window already exisits if cmds.window('overridesWindow', exists=True): cmds.deleteUI('overridesWindow') #Create Window def createGUI(): #window set up overridesWindow = cmds.window('overridesWindow',title="Custom Render Elements", rtf=True) cmds.columnLayout(adjustableColumn= True, rowSpacing= 3) cmds.checkBox('matteObj',label= "Matte Object", value=False) cmds.checkBox('opaque',label= "Opaque", value=False) cmds.checkBox('autobump',label= "Auto Bump", value=False) cmds.rowColumnLayout(numberOfRows = 1) cmds.button( label='TURN ON', width= 112, command=('turnOn()')) cmds.button( label='TURN OFF', width= 112, command=('turnOff()')) cmds.setParent('..') cmds.columnLayout() cmds.button( label='Close', width= 224, command=('cmds.deleteUI(\"' + overridesWindow + '\", window=True)')) cmds.setParent('..') cmds.setParent('..') cmds.showWindow('overridesWindow') #Query Values def queryingValues(): matteValue = cmds.checkBox('matteObj', query = True, value = True) opaqueValue = cmds.checkBox('opaque', query = True, value = True) bumpValue = cmds.checkBox('autobump', query = True, value = True) return matteValue, opaqueValue, bumpValue #Create GUI createGUI()
© 2016 Bryanna London