Arnold Object ID

This script will go through all your selected geometry and assign your designated object ID number to them. So they render the same color in the object ID pass. This can be used with my script found here or you can create your own object ID pass with the aiUtility shader set to Object ID.

To Run: Select the objects you want to have the same ID number. Run Script set your number. This assigns the variable to the geometrys User Options setting. This works with my Arnold Object ID AOV found here:

#Arnold Matching IDs 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

def specifyID():

    selectedObj = cmds.ls(selection = True, dag = True, lf = True, visible=True, type = 'mesh')

    #if nothing is selected give a warning message
    if not selectedObj:

        cmds.confirmDialog( title = 'Warning', message = 'Nothing Selected. Nothing Done.', button = 'OK', defaultButton = 'OK')

    #Dialog Window
    if selectedObj:

        idPrompt = cmds.promptDialog(title = 'VRay Object ID', message = 'Enter Object ID Number', button=['Add', 'Remove', 'Cancel'],
                                   defaultButton='Add', cancelButton='Cancel', dismissString='Cancel')

    if idPrompt == 'Add':

        #Query prompt
        idNumber = cmds.promptDialog(query = True, text = True)

        #If no value was entered send a warning
        if idNumber == '':   

                cmds.confirmDialog( title = 'Warning', message = 'No Value Entered.', button = 'OK', defaultButton = 'OK')

        else:

            #Add Value entered as id value in User Options Variable
            for selected in selectedObj:

                cmds.setAttr(selected + '.aiUserOptions', 'id ' + idNumber , type = 'string')

    #Remove Existing User Options Value
    if idPrompt == 'Remove':

        #Query prompt
        idNumber = cmds.promptDialog(query = True, text = True)

        #Remove User Options Value
        for selected in selectedObj:

            cmds.setAttr(selected + '.aiUserOptions', '' , type = 'string')

#Run Script
specifyID()                                   

© 2016 Bryanna London

Advertisements