This script is if you want to create a extra tex render element but only want to apply it to specific objects. This will create a extra tex, let you apply a texture to it, and set it up so it only applies the extra tex to the selected objects.
To Run: Just select the objects you want to apply the extra tex to and run the script. If you want to create a quick multi matte choose Matte. If you want to apply a file texture choose Custom File. If you want to apply a Maya texture choose Other Texture and it will set everything up and you just have to attach the texture.
#Custom Extra Tex version 1.0.0 #For Maya. Tested in version 2014 with VRay 2.4 #Bryanna London www.bryannalondon.com #!/usr/bin/env python #This script is if you want to create a extra tex render element but #only want to apply it to specific objects. This will create a extra tex, #let you apply a texture to it, and set it up so it only applies the extra #tex to selected objects. ############################ #TO USE: # 1. Select objects you want to apply the extra tex to # 2. Run Script # 3. Name your Extra Tex # 4. Choose a type. Matte is for a Matte, Custom File lets you choose a file to apply # Other is if you want to apply a maya texture it sets up the extra tex so you just have to link the maya texture node ############################ import maya.cmds as cmds import maya.mel as mel #####Features to add#### #Removing objects from set #Use exsisting set #delete window if a window already exisits if cmds.window('customExtraTexWindow', exists=True): cmds.deleteUI('customExtraTexWindow') def createGUI(): #window layout customExtraTexWindow = cmds.window('customExtraTexWindow',title="Custom Extra Tex", rtf=True) cmds.columnLayout(adjustableColumn= True, rowSpacing= 3) cmds.rowColumnLayout(numberOfRows = 1) cmds.text( label='Extra Tex Name') cmds.textField('extraTexName', width = 224) cmds.setParent('..') cmds.rowColumnLayout(numberOfRows = 1) cmds.button( label='Matte', width= 112, command=('rampMatte()')) cmds.button( label='Custom File', width= 112, command=('fileExtraTex()')) cmds.button( label='Other Texture', width= 112, command=('extraTex()')) cmds.setParent('..') cmds.columnLayout() cmds.button( label='Close', width= 336, command=('cmds.deleteUI(\"' + customExtraTexWindow + '\", window=True)')) cmds.setParent('..') cmds.setParent('..') cmds.showWindow('customExtraTexWindow') #Queried Values def queryExTex(): nameValue = cmds.textField('extraTexName', query = True, text = True) return nameValue def extraTex(): queriedValueName = queryExTex() if len(queriedValueName) > 0: #Put selected objects in Set extraTexSet = cmds.sets(name= queriedValueName + '_set') #Create Extra Tex Render Element extraRE = mel.eval('vrayAddRenderElement ExtraTexElement') #Rename Extra Tex eTexName = cmds.rename(extraRE, queriedValueName) #Set Explicit Channel name to Text Field Name cmds.setAttr(eTexName + '.vray_explicit_name_extratex', queriedValueName, type = 'string') #Connect Set to Exclude list cmds.connectAttr(extraTexSet + '.usedBy', queriedValueName + '.vray_exclude_list_extratex') cmds.setAttr(queriedValueName + '.vray_exclude_list_as_inclusive_extratex', 1) else: cmds.confirmDialog(title='Confirm', message='Need to Add Extra Tex Name' , button =['Ok']) #For Mattes #Make Ramp and Connect to Extra Tex def rampMatte(): #run extra tex creation def extraTex() #Run Queried Value queriedValueName = queryExTex() if len(queriedValueName) > 0: ramp = cmds.shadingNode('ramp', name = 'mask_ramp', asTexture = True) #Make Ramp only red cmds.setAttr(ramp + '.colorEntryList[0].color', 1, 0, 0, type = 'double3') place2dTextureNode = cmds.shadingNode('place2dTexture', asUtility = True) cmds.connectAttr(place2dTextureNode + '.outUV', ramp + '.uvCoord') cmds.connectAttr(place2dTextureNode + '.outUvFilterSize', ramp + '.uvFilterSize') #Connect to Mask Extra Tex cmds.connectAttr(ramp + '.outColor', queriedValueName + '.vray_texture_extratex') else: cmds.confirmDialog(title='Confirm', message='Need to Add Extra Tex Name' , button =['Ok']) #For Files #Make File Node and Connect to Extra Tex def fileExtraTex(): #Choose File and Attach rootDirectory = cmds.workspace(query = True, rootDirectory = True) + 'sourceimages/' imageFilters = "Image Files(*.png *.jpg *.exr *.hdr *.tif);; All Files (*.*)" selectFile = cmds.fileDialog2(startingDirectory = rootDirectory, fileMode = 1, fileFilter = imageFilters) if selectFile != None: #run extra tex creation def extraTex() #Run Queried Value queriedValueName = queryExTex() if len(queriedValueName) > 0: fileTex = cmds.shadingNode('file', name = 'fileExTex', asTexture = True) cmds.setAttr(fileTex + '.filterType', 0) place2dTextureNode = cmds.shadingNode('place2dTexture', asUtility = True) cmds.connectAttr(place2dTextureNode + '.coverage', fileTex + '.coverage') cmds.connectAttr(place2dTextureNode + '.translateFrame', fileTex + '.translateFrame') cmds.connectAttr(place2dTextureNode + '.rotateFrame', fileTex + '.rotateFrame') cmds.connectAttr(place2dTextureNode + '.mirrorU', fileTex + '.mirrorU') cmds.connectAttr(place2dTextureNode + '.mirrorV', fileTex + '.mirrorV') cmds.connectAttr(place2dTextureNode + '.stagger', fileTex + '.stagger') cmds.connectAttr(place2dTextureNode + '.wrapU', fileTex + '.wrapU') cmds.connectAttr(place2dTextureNode + '.wrapV', fileTex + '.wrapV') cmds.connectAttr(place2dTextureNode + '.repeatUV', fileTex + '.repeatUV') cmds.connectAttr(place2dTextureNode + '.offset', fileTex + '.offset') cmds.connectAttr(place2dTextureNode + '.rotateUV', fileTex + '.rotateUV') cmds.connectAttr(place2dTextureNode + '.noiseUV', fileTex + '.noiseUV') cmds.connectAttr(place2dTextureNode + '.vertexUvOne', fileTex + '.vertexUvOne') cmds.connectAttr(place2dTextureNode + '.vertexUvTwo', fileTex + '.vertexUvTwo') cmds.connectAttr(place2dTextureNode + '.vertexUvThree', fileTex + '.vertexUvThree') cmds.connectAttr(place2dTextureNode + '.vertexCameraOne', fileTex + '.vertexCameraOne') cmds.connectAttr(place2dTextureNode + '.outUV', fileTex + '.uvCoord') cmds.connectAttr(place2dTextureNode + '.outUvFilterSize', fileTex + '.uvFilterSize') cmds.setAttr('%s.fileTextureName' %(fileTex), selectFile[0], type = 'string') #Connect to Mask Extra Tex cmds.connectAttr(fileTex + '.outColor', queriedValueName + '.vray_texture_extratex') else: cmds.confirmDialog(title='Confirm', message='Need to Add Extra Tex Name' , button =['Ok']) else: cmds.confirmDialog(title='Confirm', message='No File Selected' , button =['Ok']) createGUI()
© 2016 Bryanna London