Advertisement
Guest User

Untitled

a guest
Sep 17th, 2014
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.21 KB | None | 0 0
  1. import re
  2. import time
  3. def create_mattes():
  4.     rst_prefix = '^RST_'
  5.     set_suffix = 'ObjectSet$'
  6.     all_sets = cmds.ls(set=1)
  7.  
  8.     sets = []
  9.     for s in all_sets:
  10.         if re.search(rst_prefix, s):
  11.             sets.append(s)
  12.  
  13.     for set_node in sets:
  14.         node_basename = re.sub('{0}|{1}'.format(rst_prefix, set_suffix), '', set_node)
  15.         aov_name = 'matte_{0}'.format(node_basename)
  16.  
  17.  
  18.         t_switch = cmds.shadingNode('tripleShadingSwitch', au=1)
  19.         cmds.setAttr('{0}.default'.format(t_switch), 0, 0, 0, typ='double3')
  20.  
  21.         shader_node = cmds.shadingNode('aiUtility', asShader=1)
  22.         # Set this to flat.
  23.         cmds.setAttr('{0}.shadeMode'.format(shader_node), 2)
  24.         # Set color to white.  This is default, but we'll keep it here.
  25.         cmds.setAttr('{0}.color'.format(shader_node), 1, 1, 1, type='double3')
  26.  
  27.         cmds.connectAttr('{0}.output'.format(t_switch), '{0}.color'.format(shader_node, f=1))
  28.  
  29.  
  30.         for obj in cmds.listRelatives(set_node, pa=1):
  31.             start = time.time()
  32.             index = cmds.getAttr('{0}.input'.format(t_switch), s=1)
  33.             cmds.connectAttr('{0}.instObjGroups[0]'.format(obj), '{0}.input[{1}].inShape'.format(t_switch, index), f=1)
  34.             cmds.connectAttr('{0}.outColor'.format(shader_node), '{0}.input[{1}].inTriple'.format(t_switch, index), f=1)
  35.             print 'obj', time.time() - start
  36.  
  37.         # AOV'S
  38.         aov_size = cmds.getAttr('defaultArnoldRenderOptions.aovList', s=1)
  39.  
  40.         custom_aov = cmds.createNode('aiAOV', n=aov_name, skipSelect=True)
  41.  
  42.         cmds.connectAttr('{0}.message'.format(custom_aov), 'defaultArnoldRenderOptions.aovList[{0}]'.format(str(aov_size)), f=1)
  43.  
  44.         cmds.connectAttr('defaultArnoldDriver.message', '{0}.outputs[0].driver'.format(custom_aov), f=1)
  45.         cmds.connectAttr('defaultArnoldFilter.message', '{0}.outputs[0].filter'.format(custom_aov), f=1)
  46.  
  47.         # connect to default shader
  48.         cmds.connectAttr('{0}.outColor'.format(shader_node), '{0}.defaultValue'.format(custom_aov), f=1)
  49.  
  50. sphere = cmds.polySphere()
  51. maya_objects_set = cmds.sets(sphere, n='RST_testingObjectSet')
  52.  
  53. tmp_start = time.time()
  54. create_mattes()
  55. print 'Total Time', time.time() - tmp_start
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement