Example #1
0
def get_pass_names(renderer, layer):
    """Helper method to return the passes for a given layer"""
    cur_layer = cmds.editRenderLayerGlobals(q=True, currentRenderLayer=True)
    cmds.editRenderLayerGlobals(currentRenderLayer=layer)

    pass_names = []
    if renderer == zync.VRAY_RENDERER:
        render_element_nodes = cmds.ls(type="VRayRenderElement")
        for element in render_element_nodes:
            if cmds.getAttr(element + '.enabled'):
                element_attrs = cmds.listAttr(element)
                vray_name_attr = [ x for x in element_attrs if re.match('vray_name_.*', x) or re.match('vray_filename_.*', x) ]
                pass_names.append(cmds.getAttr(element + '.' +vray_name_attr[0]))

    if renderer == zync.MENTAL_RAY_RENDERER:
        pass_names.append('MasterBeauty')
        render_pass_nodes = cmds.listConnections(layer + '.renderPass')
        if render_pass_nodes:
            for pass_ in render_pass_nodes:
                print "  pass %s for %s" % (pass_, layer)
                if cmds.getAttr(pass_ + '.renderable'):
                    pass_names.append(pass_)

    cmds.editRenderLayerGlobals(currentRenderLayer=cur_layer)

    return pass_names
 def modifySubdivisions(*args):
     if cmds.objExists("CMForegroundPlane"):
         if cmds.window("SubdivisionsTextWindow", query = True, exists = True):
             cmds.deleteUI("SubdivisionsTextWindow")
         
         SubdivisionTextClass.UpdateSubSnap()
 
         if os.path.exists(SubdivisionTextClass.ImagePath):
             
             cmds.window( "SubdivisionsTextWindow", title = "Subdivisions Text" )
             cmds.formLayout("SubWriterLayout", numberOfDivisions=100, w = 740, h = 400)
             cmds.picture( "BasePicture", image = SubdivisionTextClass.ImagePath )
             
             cmds.editRenderLayerGlobals( currentRenderLayer = "Subdivision_0")
             SubdivisionTextClass.subColor = cmds.getAttr("CMForegroundPlane.imageName")[-5]
             cmds.editRenderLayerGlobals( currentRenderLayer = "defaultRenderLayer")
             
             
             cmds.window( "SubdivisionsTextWindow", edit = True, w = 740, h = 400)
             
             #Create popupMenu for images 
             cmds.popupMenu( "SubdivisionPopUp", parent = "BasePicture" )
             cmds.menuItem( label='TopLeft'    , p = "SubdivisionPopUp", c = functools.partial(SubdivisionTextClass.ChangePos,  "lt") )  
             cmds.menuItem( label='TopRight'   , p = "SubdivisionPopUp", c = functools.partial(SubdivisionTextClass.ChangePos,  "rt") ) 
             cmds.menuItem( label='BottomLeft' , p = "SubdivisionPopUp", c = functools.partial(SubdivisionTextClass.ChangePos,  "lb") ) 
             cmds.menuItem( label='BottomRight', p = "SubdivisionPopUp", c = functools.partial(SubdivisionTextClass.ChangePos,  "rb") )
             cmds.menuItem( label='ToggleColor', p = "SubdivisionPopUp", c = SubdivisionTextClass.toggleSubdivisionColour )
             cmds.showWindow("SubdivisionsTextWindow")
     else:
         cmds.confirmDialog(m = "The signature camera must be created before running this tool")
 def SubdivisionLevelChanged(*args):
     cmds.editRenderLayerGlobals( currentRenderLayer = "defaultRenderLayer")
     for mesh in cmds.listRelatives(cmds.getAttr("CMSettings.ModelName"), allDescendents = True):
         try:
             cmds.setAttr(mesh + "Smooth.divisions", cmds.intSlider("SubdivisionLevel",query = True, value = True))
         except:
             pass    
def bRgb_mask(*args):
    t = "MASK"
    sels = cmds.ls(sl=True)
    name = get_name(t)    
    sf = int(cmds.textFieldGrp('start_frame', q=True, tx=True))
    ef = int(cmds.textFieldGrp('end_frame', q=True, tx=True))
    print len(args)
    if args[0] == "ch" :
        type_l = ("face", "hair", "all")
        for x in type_l:
            name = get_name(args[0]+"_"+x+"_"+t)
            if not(cmds.objExists(name)) :
                rl = make_layer(name,sf,ef,t)
    elif type(args[0]) == types.StringType:
        name = get_name(args[0]+"_"+t)
        if not(cmds.objExists(name)) :
            rl = make_layer(name, sf, ef, t)
    else : 
        name = get_name(t)
        if not(cmds.objExists(name)) :
            rl = make_layer(name, sf, ef, t)    
    if not(cmds.objExists(name)) :
        cmds.editRenderLayerGlobals(crl= rl[0])
        cmds.setAttr("defaultRenderGlobals.ren", "mayaSoftware", typ='string')

        maya_set()
        if len(sels) != 0 : cmds.select(sels,r=True)
    return name
def NAMEmatchOverrideButton(* args):
    clearList() 
    currentLayer = mc.editRenderLayerGlobals( query=True, currentRenderLayer=True )
    selectionDefiner()
    for trgCt in range(len(trgCmpList)):
        for srcCt in range(len(srcCmpList)):
            if trgCmpList[trgCt] == srcCmpList[srcCt]:
                srcObjSel = srcTrList[srcCt]
                trgObjSel = trgTrList[trgCt]
                mc.select(srcObjSel,replace=True)
                mc.select(trgObjSel,add=True)
                getLayers()
                getSelectedLayers()
                for actLayer in actLayerList:
                    for selLayer in selLayerList:
                        if actLayer == selLayer:
                            mc.editRenderLayerGlobals(currentRenderLayer=actLayer)   
                            overrideTransfer(actLayer)
                                                    
                actLayerList[:]=[]
                selLayerList[:]=[]
                sourceObj[:]=[]
                targetObjs[:]=[]
                sourceShape[:]=[]
                targetShapes[:]=[] 
                     
        if trgCmpList[trgCt] not in srcCmpList:
            print trgTrList[trgCt] + " doesn't match! "
            
    mc.select(srcGrp,replace=True)
    mc.select(trgGrp,add=True)       
            
    mc.editRenderLayerGlobals(currentRenderLayer=currentLayer) 
Example #6
0
def collect_layer_info(layer, renderer):
    cur_layer = cmds.editRenderLayerGlobals(q=True, currentRenderLayer=True)
    cmds.editRenderLayerGlobals(currentRenderLayer=layer)

    layer_info = {}

    # get list of active render passes
    layer_info['render_passes'] = []
    if renderer == "vray" and cmds.getAttr('vraySettings.imageFormatStr') != 'exr (multichannel)' and cmds.getAttr('vraySettings.relements_enableall') != False: 
        pass_list = cmds.ls(type='VRayRenderElement')
        pass_list += cmds.ls(type='VRayRenderElementSet')
        for r_pass in pass_list:
            if cmds.getAttr('%s.enabled' % (r_pass,)) == True:
                layer_info['render_passes'].append(r_pass)

    # get prefix information
    if renderer == 'vray':
        node = 'vraySettings'
        attribute = 'fileNamePrefix'
    elif renderer in ("sw", "mr"):
        node = 'defaultRenderGlobals'
        attribute = 'imageFilePrefix'
    try:
        layer_prefix = cmds.getAttr('%s.%s' % (node, attribute))
        layer_info['prefix'] = layer_prefix
    except Exception:
        layer_info['prefix'] = ''

    cmds.editRenderLayerGlobals(currentRenderLayer=cur_layer)
    return layer_info
Example #7
0
 def setDefaultRenderState(self):
     if cmds.editRenderLayerGlobals( query=True, currentRenderLayer=True ) != "defaultRenderLayer":
         cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')
     for node in self.getAOVs:
         self.getInitState = cmds.getAttr("%s.enabled" % node)
         node = node.split('aiAOV_')[1]
         self.defaultRenderLayerState[node] = self.getInitState
Example #8
0
def takeSnapShot(targetObj, renderPath, rotX=-30.0, rotY=45.0, rotZ=0.0, resX=300, resY=300, useBoundingBox=False):
	'''
	Take a snapshot of the selected object using the Maya renderer then move the image to a directory
	'''
	
	# build the bounding box and find it's centre
	bBox = targetObj
	if useBoundingBox is True:
		bBox = buildBoundingBoxGeo(targetObj, noChildren=False, ignoreInv=True)
	focusPoint = cmds.xform(bBox, query=True, ws=True, t=True)
	
	# build the camera the move and orient it
	tempCam = cmds.camera(ar=True, ff=3, fl=35)
	camName = tempCam[1]
	cmds.setAttr(camName+'.renderable', True)
	cmds.setAttr(camName+'.displayFilmGate', True)
	cmds.setAttr(camName+'.displayResolution', True)
	cmds.setAttr(camName+'.backgroundColor', 0.5, 0.5, 0.5, type='double3') #transform
	cmds.move(focusPoint[0], focusPoint[1], focusPoint[2], tempCam, ws=True) 
	cmds.rotate( rotX, rotY, rotZ, tempCam, ws=True)
	
	# build the bounding box then fit the camera
	cmds.select(bBox, r=True)
	cmds.viewFit(camName, an = False, f = 0.9 )
	if useBoundingBox is True:
		cmds.delete(bBox)
	
	# set the render globals
	cmds.currentTime(1)
	cmds.setAttr('defaultRenderGlobals.imageFormat', 8)
	cmds.setAttr('defaultRenderQuality.edgeAntiAliasing', 0)
	cmds.setAttr('defaultRenderQuality.shadingSamples', 2)
	cmds.setAttr('defaultRenderQuality.maxShadingSamples', 8)
	cmds.setAttr('defaultRenderQuality.useMultiPixelFilter', 1)
	cmds.setAttr('defaultRenderQuality.enableRaytracing', 0)
	
	# build the lightrig
	lightRigGrp = cmds.group(em=True, name='lightRigGroup')
	lightMain = cmds.directionalLight(rotation=(-20, -45, 0), intensity=0.8)
	lightFill = cmds.directionalLight(rotation=(-20, 45, 0), intensity=0.4)
	lightUnder = cmds.directionalLight(rotation=(75, 0, 0), intensity=0.15)
	lightKey = cmds.directionalLight(rotation=(-25, 145, 0), intensity=4.0)
	cmds.parent([lightMain, lightFill, lightUnder, lightKey], lightRigGrp)
	cmds.rotate( rotX, rotY, rotZ, lightRigGrp, ws=True)
	
	# select everything, build the special shader, render, then delete everything
	cmds.select([targetObj, lightRigGrp], r=True)
	renderLayerName = cmds.createRenderLayer(name='tempSnapShot_rlayer', mc=True)
	shaderNodes = buildReverseNormalShader() #build the shader
	cmds.sets(targetObj, e=True, forceElement=shaderNodes[0]) #adding the shader here means it's in the render layer
	tempImage= cmds.render(camName, layer=renderLayerName, x=resX, y=resY)
	cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')
	cmds.delete([lightRigGrp, tempCam[0], renderLayerName, shaderNodes[0], shaderNodes[1], shaderNodes[2], shaderNodes[3]])
	
	# copy the thumbnail to the desired location
	output = cmds.sysFile(tempImage, rename=renderPath)
	if output==True:
		print 'Path for thumbnail: ' + renderPath
		return renderPath
	return None
Example #9
0
def snapShot(cam, objs, renderPath):
	
    # build the lightrig
    lightRigGrp = cmds.group(em=True, name='lightRigGroup')
    lightMain = cmds.directionalLight(rotation=(-20, -45, 0), intensity=0.8)
    lightFill = cmds.directionalLight(rotation=(-20, 45, 0), intensity=0.4)
    lightUnder = cmds.directionalLight(rotation=(75, 0, 0), intensity=0.15)
    lightKey = cmds.directionalLight(rotation=(-25, 145, 0), intensity=4.0)
    cmds.parent([lightMain, lightFill, lightUnder, lightKey], lightRigGrp)
	
    # select everything, build the special shader, render, then delete everything
    renderLayerName = cmds.createRenderLayer(name='tempSnapShot_rlayer', empty=True, mc=True)

    cmds.editRenderLayerMembers(renderLayerName, objs)
    cmds.editRenderLayerMembers(renderLayerName, lightRigGrp)
    
    shaderNodes = buildTempShader() #build the shader
    cmds.sets(objs, e=True, forceElement=shaderNodes[0]) #adding the shader here means it's in the render layer
  
    tempImage= cmds.render(cam, layer=renderLayerName)
    
    cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')
 
    cmds.delete(lightRigGrp, cam, renderLayerName)
    cmds.delete(shaderNodes)
    
    # copy the thumbnail to the desired location
    output = cmds.sysFile(tempImage, rename=renderPath)
    if output==True:
        print 'Path for thumbnail: ' + renderPath
        return renderPath

    return None
Example #10
0
    def layerChanged(self, index):


        self.curLayer = self.renderLayer.itemText(index)
        if self.curLayer == "defaultRenderLayer":
            self.disableLayerOverrides()
        else:
            self.enableLayerOverrides()
            for cache in self.ABCViewerNode:
                c = self.ABCViewerNode[cache]
                over = c.getLayerOverrides(self.getLayer())

                if over:
                    self.overrideProps.setChecked(over["removeProperties"])
                    self.overrideShaders.setChecked(over["removeShaders"])
                    self.overrideDisps.setChecked(over["removeDisplacements"])


        self.updateTree()
        if self.hierarchyWidget.currentItem():
            self.itemCLicked(self.hierarchyWidget.currentItem(), 0, force=True)

        # change it in maya too
        curLayer = cmds.editRenderLayerGlobals(query=1, currentRenderLayer=1)
        if curLayer != self.curLayer:
            cmds.editRenderLayerGlobals( currentRenderLayer=self.curLayer)
 def _export_ass(self):
     
     import mtoa.cmds.arnoldRender as ar
     
     filePath=cmds.file(q=True,sn=True)
     
     #getting fields for version
     shot_temp=self.parent.sgtk.templates["maya_shot_work"]
     shotgunFields=shot_temp.get_fields(filePath)
     
     #getting output path
     area_temp=self.parent.sgtk.templates['maya_ass_export_area']
     path=area_temp.apply_fields(shotgunFields).replace('\\','/')
     
     #setting ass export path
     cmds.workspace(fileRule = ['ASS', path])
     
     #account for renderlayers
     for layer in cmds.ls(type='renderLayer'):
         
         #discarding referenced layers
         if ':' not in layer:
             
             #checking whether layer needs to be rendered
             if cmds.getAttr(layer+'.renderable')==1:
                 
                 cmds.editRenderLayerGlobals( currentRenderLayer=layer )
                 
                 try:
                     ar.arnoldBatchRender('')
                 except Exception, e:
                     raise TankError("Failed to export Ass files: %s" % e)
Example #12
0
def useDefaultRenderLayer():
    """ Analisys if must use the Default Render Layer (masterLayer) checking the option in the UI.
        Set to use it if need.
    """
    # analisys to use the defaultRenderLayer:
    useDefaultRL = cmds.checkBox('defaultRenderLayerCB', query=True, value=True)
    if useDefaultRL:
        cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')
Example #13
0
File: ao.py Project: matheushrr/rl
def reAdd(samplesField, spreadField, maxDistanceField):
	# switch to the ao render layer
	cmds.editRenderLayerGlobals(currentRenderLayer='ao')
	objects = cmds.ls(g=True)
	cmds.select(objects)
	cmds.hyperShade(a='amb_occl_surf_shader')
	
	changeAOSettings(samplesField, spreadField, maxDistanceField)
Example #14
0
File: ao.py Project: FLOWERCLOUD/rl
def re_add(samples_field, spread_field, max_distance_field):
    """if AO already has been setup, just add all the objects to the AO layer"""
    # switch to the ao render layer
    cmds.editRenderLayerGlobals(currentRenderLayer="ao")
    objects = cmds.ls(g=True)
    cmds.select(objects)
    cmds.hyperShade(a="amb_occl_surf_shader")

    change_ao_settings(samples_field, spread_field, max_distance_field)
Example #15
0
def get_layer_override(layer, node, attribute='imageFilePrefix'):
    """Helper method to return the layer override value for the given node and attribute"""
    cur_layer = cmds.editRenderLayerGlobals(q=True, currentRenderLayer=True)

    cmds.editRenderLayerGlobals(currentRenderLayer=layer)
    attr = '.'.join([node, attribute])
    layer_override = cmds.getAttr(attr)
    cmds.editRenderLayerGlobals(currentRenderLayer=cur_layer)
    return layer_override
def img_name(*args):
    name = cmds.textScrollList('rl_list',q=True,si=True)
    if type(name) != types.NoneType:
        cmds.editRenderLayerGlobals(crl=name[0])
        i_n = cmds.getAttr("defaultRenderGlobals.imageFilePrefix")
        cmds.textScrollList('img_list', e=True,ra=True,ams=False,append=i_n)
       
        cmds.textFieldGrp('ch_name', e=True, tx = name[0])
        cmds.textFieldGrp('ch_fname', e=True, tx = name[0])
Example #17
0
def disableImagePlane():
    objs = mc.ls(typ="imagePlane")
    for obj in objs:
        if not mc.editRenderLayerGlobals(q=1, crl=1) == "defaultRenderLayer":
            mc.editRenderLayerAdjustment(obj + ".displayMode")
        mc.setAttr(obj + ".displayMode", 0)
        if not mc.editRenderLayerGlobals(q=1, crl=1) == "defaultRenderLayer":
            mc.editRenderLayerAdjustment(obj + ".type")
        mc.setAttr(obj + ".type", 1)
 def CreateSnap():
     #Create a snapshot from the signature image                
     SubdivisionTextClass.ImagePath = cmds.getAttr("CMSettings.ProjectPath") + "/temp/" + cmds.getAttr("CMSettings.ModelName") + "_Subdivision_Temp_0" + ".png"
     
     cmds.editRenderLayerGlobals( currentRenderLayer = "Subdivision_0")
     ScreenCapture.ScreenCapture(SubdivisionTextClass.ImagePath, [740,400])
     cmds.editRenderLayerGlobals( currentRenderLayer = "defaultRenderLayer")
     
     #Return the camera to whatever it was
     cmds.modelPanel( perspPanel, edit = True, camera = oldCamera)
def _cleanUp():
    cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')
    cmds.select(clear=True)
    listOfLayers = cmds.ls(type="renderLayer")
    cmds.select("defaultRenderLayer")
    for eachlayer in listOfLayers:
        if eachlayer != "defaultRenderLayer":
            cmds.delete(eachlayer)
    for eachPass in mapi.get_all_passes():
        cmds.delete(eachPass)
Example #20
0
def set_layer_attr(node_type, attr_name, attr_value, layer):

	# Set currendt layer
	cmds.editRenderLayerGlobals(currentRenderLayer=layer)

	nodes = cmds.ls(type=node_type)

	for node in nodes:
		cmds.editRenderLayerAdjustment(node + '.' + attr_name, layer=layer)
		cmds.setAttr(node + '.' + attr_name, attr_value)
Example #21
0
File: gui.py Project: Bumpybox/Tapp
 def on_renderlayer_clicked(self):
     
     renderlayer=self.renderlayer_listWidget.selectedItems()[0].text()
     
     cmds.editRenderLayerGlobals( currentRenderLayer=renderlayer)
     cmds.refresh()
     
     regionNode=cmds.listConnections(renderlayer+'.message',type='network')[0]
     
     cmds.select(regionNode)
 def MaterialOverrides(shaderGroup, layers):
     for i in layers:
         cmds.editRenderLayerGlobals(currentRenderLayer = i)
         try:
             cmds.select( clear=True )
             cmds.select(cmds.getAttr("CMSettings.ModelName"))
             cmds.sets(cmds.ls(selection = True), forceElement = shaderGroup, e = True, n = i + "WireSet")    
         except:
             print "Failed to assign shader"
         cmds.editRenderLayerGlobals(currentRenderLayer = "defaultRenderLayer")
 def assignSnapShots(Camera):
         cmds.editRenderLayerGlobals( currentRenderLayer = "defaultRenderLayer")
         
         #Remove all cameras from the default renderlayer
         cmds.setAttr(Camera + ".renderable", False)
         
         #If the camera is a signature
         if cmds.getAttr(Camera + ".CMSignature"):
             #Make the camera renderable in the signature and the SQR signature layers, remove the mask for png images and make the background color 247    
             RenderLayerManagerClass.EditLayer(settings = [
                                                           [Camera + ".mask", "none", False ],
                                                           [Camera + ".renderable", "none", True ]
                                                           ], 
                                               layers = ["Signature", "SQRSignature"] )
             
             #Make the camera renderable in the product layer
             RenderLayerManagerClass.EditLayer(settings = [
                                                           [Camera + ".renderable", "none", True ]
                                                           ], 
                                               layers = ["ContextSig", "Subdivision_0", "Subdivision_1", "UVs"] )
             
             #Remove it from the wireframe layer
             RenderLayerManagerClass.EditLayer(settings = [
                                                           [Camera + ".renderable", "RemoveFromLayer" ]
                                                           ], 
                                               layers = ["Product", "Wireframe"] )
             
         #If the camera is a product camera    
         else:
             #Remove the overrides in the signature layers    
             RenderLayerManagerClass.EditLayer(settings = [
                                                           [Camera + ".mask", "RemoveFromLayer" ],
                                                           [Camera + ".renderable", "RemoveFromLayer" ]
                                                           ], 
                                               layers = ["Signature", "SQRSignature"] )
             #Remove it from the signature layers
             RenderLayerManagerClass.EditLayer(settings = [
                                                           [Camera + ".renderable", "RemoveFromLayer", True ]
                                                           ], 
                                               layers = ["ContextSig", "Subdivision_0", "Subdivision_1", "UVs"] )
             
             #Make it renderable in the product layer
             if cmds.getAttr(Camera + ".CMRenderProductShot"):
                 RenderLayerManagerClass.EditLayer(settings = [
                                                               [Camera + ".renderable", "none", True ]
                                                               ], 
                                                   layers = ["Product"] )
             
             #Make it renderable in the wirframe layer
             if cmds.getAttr(Camera + ".CMRenderWireFrame"):
                 RenderLayerManagerClass.EditLayer(settings = [
                                                               [Camera + ".renderable", "none", True ]
                                                               ], 
                                                   layers = ["Wireframe"] )
def SELmatchOverrideButton(* args):
    clearList()
    currentLayer = mc.editRenderLayerGlobals( query=True, currentRenderLayer=True )
    getLayers()
    getSelectedLayers()
    for actLayer in actLayerList:
        for selLayer in selLayerList:
            if actLayer == selLayer:
                mc.editRenderLayerGlobals(currentRenderLayer=actLayer)   
                overrideTransfer(actLayer)
    mc.editRenderLayerGlobals(currentRenderLayer=currentLayer)
def SELmatchLayerButton(* args):
    clearList()
    currentLayer = mc.editRenderLayerGlobals( query=True, currentRenderLayer=True )
    getLayers()
    getSelectedLayers()
    for actLayer in actLayerList:
        for selLayer in selLayerList:
            if actLayer == selLayer:
                mc.editRenderLayerGlobals(currentRenderLayer=actLayer)   
                addObjs(actLayer)    
    mc.editRenderLayerGlobals(currentRenderLayer=currentLayer)
Example #26
0
def disconnectArnold():
    
    for node in getRegionNode():
        
        renderlayer=cmds.listConnections(node+'.renderlayer')[0]
        
        cmds.editRenderLayerGlobals( currentRenderLayer=renderlayer)
        cmds.refresh()
    
        for n in cmds.listConnections('defaultArnoldRenderOptions.regionMinX',type='container'):
        
            cmds.delete(n)
Example #27
0
 def getGiSettings(self, vrlmap, vrmap, renderLayer):
     cmds.editRenderLayerGlobals( currentRenderLayer=renderLayer)
     cmds.setAttr("vraySettings.mode", 2)
     cmds.setAttr("vraySettings.imap_mode", 2)
     cmds.setAttr("vraySettings.autoSave", 0)
     cmds.setAttr("vraySettings.dontDelete", 0)
     cmds.setAttr("vraySettings.imap_dontDelete", 0)
     cmds.setAttr("vraySettings.autoSaveFile", vrlmap, type= "string")
     cmds.setAttr("vraySettings.imap_autoSaveFile", vrmap, type="string")
     cmds.setAttr("vraySettings.imap_fileName", vrlmap, type= "string")
     cmds.setAttr("vraySettings.fileName", vrmap, type="string")
     self.mayaSave()
Example #28
0
	def dpaf_getOverrideData(self, queryValue, queryLayer):
		# query override value without switching layers : it can query everything! (queryValue = 'object.attribute' or 'fps') # dataType problem?
		value = ''
		overrideList = cmds.listConnections(queryValue, p= 1) if queryValue != 'fps' else ['fps']
		# if this attr has override by some layer(s)
		if overrideList:
			# find override
			queryLayerProx = queryLayer
			findOverride = 0
			
			while findOverride == 0 and queryValue != 'fps':
				for override in overrideList:
					Buffer = override.split('.')
					if Buffer[0] == queryLayerProx:
						value = cmds.getAttr(Buffer[0] + '.' +Buffer[1] + '.plug')
						if cmds.editRenderLayerGlobals(q= 1, currentRenderLayer= 1) == 'defaultRenderLayer':
							if self.dpaf_hasOverride(queryValue, queryLayer) and queryLayer != 'defaultRenderLayer':
								value = cmds.getAttr(Buffer[0] + '.' +Buffer[1] + '.value')
						else:
							if self.dpaf_hasOverride(queryValue, queryLayerProx) and cmds.editRenderLayerGlobals(q= 1, currentRenderLayer= 1) != queryLayer:
								if self.dpaf_hasOverride(queryValue, queryLayer) or self.dpaf_hasOverride(queryValue, cmds.editRenderLayerGlobals(q= 1, currentRenderLayer= 1)):
									if queryLayer != 'defaultRenderLayer':
										value = cmds.getAttr(Buffer[0] + '.' +Buffer[1] + '.value')
									else:
										if self.dpaf_hasOverride(queryValue, cmds.editRenderLayerGlobals(q= 1, currentRenderLayer= 1)):
											value = cmds.getAttr(Buffer[0] + '.' +Buffer[1] + '.value')
						findOverride = 1
						break		
				# if this layer has no override, change queryLayer to defaultLayer(masterLayer)
				queryLayerProx = 'defaultRenderLayer' if findOverride == 0 else queryLayerProx
			# return value
			if queryValue == 'defaultRenderGlobals.startFrame' or queryValue == 'defaultRenderGlobals.endFrame' or queryValue == 'fps':
				timeUnit = cmds.currentUnit(q= 1, t= 1) # mel.eval('currentTimeUnitToFPS')
				if timeUnit[-3:] == 'fps':
					value = round(round(value * 6000, 0) / (6000 / float(timeUnit.split('fps')[0])), 3) if queryValue != 'fps' else float(timeUnit.split('fps')[0])
				return {		# maya stores 'ticks/tps'(sec) behind, vvv-> frame = int(sec * tps) / tpf
						'game' : round(round(value * 6000, 0) / 400, 3)	if queryValue != 'fps' else 15.0,
						'film' : round(round(value * 6000, 0) / 250, 3)	if queryValue != 'fps' else 24.0,
						 'pal' : round(round(value * 6000, 0) / 240, 3)	if queryValue != 'fps' else 25.0,
						'ntsc' : round(round(value * 6000, 0) / 200, 3)	if queryValue != 'fps' else 30.0,
						'show' : round(round(value * 6000, 0) / 125, 3)	if queryValue != 'fps' else 48.0,
						'palf' : round(round(value * 6000, 0) / 120, 3)	if queryValue != 'fps' else 50.0,
					   'ntscf' : round(round(value * 6000, 0) / 100, 3)	if queryValue != 'fps' else 60.0,
					'millisec' : round(round(value * 6000, 0) /   6, 3) if queryValue != 'fps' else 1000.0,
						 'sec' : round(round(value * 6000, 0) / 6000, 3) if queryValue != 'fps' else (1/1.0),
						 'min' : round(round(value * 6000, 0) / 360000, 3) if queryValue != 'fps' else (1/60.0),
						'hour' : round(round(value * 6000, 0) / 21600000, 3) if queryValue != 'fps' else (1/3600.0),
				}.get(timeUnit, value)
			else:
				return value
		else:
			return cmds.getAttr(queryValue)
Example #29
0
File: gui.py Project: Bumpybox/Tapp
 def getSelectedRegionNode(self):
     
     if self.renderlayer_listWidget.selectedItems():
         renderlayer=self.renderlayer_listWidget.selectedItems()[0].text()
         
         cmds.editRenderLayerGlobals( currentRenderLayer=renderlayer)
         cmds.refresh()
         
         regionNode=cmds.listConnections(renderlayer+'.message',type='network')[0]
         
         return regionNode
     else:
         return None
 def DeleteWireframeShader():
     layers = ["Wireframe", "Subdivision_0", "Subdivision_1"]
     for i in layers:
         cmds.editRenderLayerGlobals(currentRenderLayer = i)
         try:cmds.sets(clear = i + "WireSet")
         except:pass
         
     ShaderObjects = ["WireShader","WireSet","WireMap","WirePlacer","ContourShader"]
     for i in ShaderObjects:
         if cmds.objExists(i + "Vray"):
             cmds.delete(i + "Vray")
         if cmds.objExists(i + "MR"):
             cmds.delete(i + "MR")
def setupIDs():
    currentRenderLayer = cmds.editRenderLayerGlobals(q=1, crl=1)
    #apply IDs
    objIDs = {}
    sceneData = {'asset': {}, 'material': {}, 'object': {}}
    for sh in cmds.ls(g=1):
        shadingGrps = cmds.listConnections(sh, type='shadingEngine')
        if shadingGrps:
            shader = cmds.ls(cmds.listConnections(shadingGrps), materials=1)[0]
            objIDs, id = generateIDs(sh, 'rsObjectId', objIDs,
                                     currentRenderLayer)
Example #32
0
def submitRenderLayer():
    """ Launch Render Submitter window for the current render layer.
	"""
    frameRange = "%s-%s" % (int(mc.getAttr('defaultRenderGlobals.startFrame')),
                            int(mc.getAttr('defaultRenderGlobals.endFrame')))
    currentLayer = mc.editRenderLayerGlobals(query=True,
                                             currentRenderLayer=True)

    from tools.renderQueue import render_submit
    # render_submit.run_maya(frameRange=frameRange, flags='-rl %s' %currentLayer)
    render_submit.run_maya(frameRange=frameRange, layers=currentLayer)
Example #33
0
    def foolCheckRenderSettings(self, renderLayerList):
        severity = 0

        # get the timeslider range:
        # startFrame = pm.playbackOptions(q=True, minTime=True)
        # endFrame = pm.playbackOptions(q=True, maxTime=True)
        startFrame = cmds.playbackOptions(q=True, minTime=True)
        endFrame = cmds.playbackOptions(q=True, maxTime=True)

        # activeRenderLayer = pm.editRenderLayerGlobals(q=True, currentRenderLayer=True)
        activeRenderLayer = cmds.editRenderLayerGlobals(
            q=True, currentRenderLayer=True)

        # go through all renderlayers:
        for layer in renderLayerList:
            try:
                cmds.editRenderLayerGlobals(currentRenderLayer=layer)
            except RuntimeError:
                continue
            # get paths
            # comparePath = pm.renderSettings(firstImageName=True, lastImageName=True, fp=True)
            comparePath = cmds.renderSettings(firstImageName=True,
                                              lastImageName=True,
                                              fp=True)
            filePath, fileBase = os.path.split(comparePath[0])

            ## COmmon for all render engines
            # get the render range
            # animStart = pm.getAttr("defaultRenderGlobals.startFrame")
            animStart = cmds.getAttr("defaultRenderGlobals.startFrame")
            # animEnd = pm.getAttr("defaultRenderGlobals.endFrame")
            animEnd = cmds.getAttr("defaultRenderGlobals.endFrame")
            if animStart != startFrame or animEnd != endFrame:
                # msg = "Timeslider range and render ranges are different in {4}. {0}-{1} >> {2}-{3}".format(startFrame,
                msg = "Timeslider range and Render ranges are different (%s)" % layer
                self.minorProblemNodes.append([
                    "defaultRenderGlobals", layer,
                    "unifiedRenderGlobalsWindow;", msg
                ])  # RG is for Render Globals
                severity += 1
        return severity
 def override_color_mod(self):
     print ' '
     print 'override_color_mod'
     #print 'self.attribute_name_pointer_dic = ',self.attribute_name_pointer_dic
     #print 'self.layer_overrides_dic = ',self.layer_overrides_dic
     for attr in self.attribute_name_pointer_dic:
         pointer = self.attribute_name_pointer_dic[attr]
         #print 'setting ' + attr + ' to black'
         pointer.setStyleSheet(
             "QLabel { background:rgb(65,66,66); color : rgb(180,180,180); }"
         )
         for override in self.layer_overrides_dic:
             #print 'attr = ',attr
             #print 'override = ',override
             if attr in override:
                 #print 'match, turning ' + attr + ' orange'
                 pointer.setStyleSheet(
                     "QLabel { background:rgb(65,66,66); color : rgb(225,120,0); }"
                 )
     cmds.editRenderLayerGlobals(
         currentRenderLayer=self.current_render_layer)
Example #35
0
    def setCurrentLayer(self):
        """Set current layer"""

        try:
            curLayer = cmds.editRenderLayerGlobals(query=1,
                                                   currentRenderLayer=1)
        except:
            return
        curLayeridx = self.renderLayer.findText(curLayer)
        if curLayeridx != -1:
            self.renderLayer.setCurrentIndex(curLayeridx)
        self.curLayer = curLayer
    def process(self, context):

        # Workaround bug pyblish-base#250
        if not contextplugin_should_run(self, context):
            return

        layer = cmds.editRenderLayerGlobals(query=True,
                                            currentRenderLayer=True)
        cameras = cmds.ls(type="camera", long=True)
        renderable = any(c for c in cameras if cmds.getAttr(c + ".renderable"))
        assert renderable, ("Current render layer '%s' has no renderable "
                            "camera" % layer)
Example #37
0
    def onDoubleClick(self):
        row = self.foolcheck_listWidget.currentRow()
        if row == -1:
            return
        if (row+1) <= len(self.imanager.majorProblemNodes):
            nodeToGet = self.imanager.majorProblemNodes[(row)][0]
            layerToGo = self.imanager.majorProblemNodes[(row)][1]
            melToEval = self.imanager.majorProblemNodes[(row)][2]
        else:
            nodeToGet = self.imanager.minorProblemNodes[(row)-(len(self.imanager.majorProblemNodes))][0]
            layerToGo = self.imanager.minorProblemNodes[(row)-(len(self.imanager.majorProblemNodes))][1]
            melToEval = self.imanager.minorProblemNodes[(row)-(len(self.imanager.majorProblemNodes))][2]

        if not nodeToGet == None:
            # first go to the problematic layer
            # pm.editRenderLayerGlobals(currentRenderLayer=layerToGo)
            cmds.editRenderLayerGlobals(currentRenderLayer=layerToGo)
            # pm.select(nodeToGet)
            cmds.select(nodeToGet)

        mel.eval(melToEval)
def setframe(*args):
	#check renderer
	if cmds.getAttr('defaultRenderGlobals.ren') != 'arnold':
		cmds.setAttr('defaultRenderGlobals.ren', 'arnold', type='string')
	
	cameras = cmds.ls(cameras = 1)
	transforms = cmds.listRelatives(cameras, parent=1)
	for t in transforms:
		if "main" in t:
			cutNo = t.split("_")[1]
			frames = re.findall(r'\d+_\d+', t)[0]
			startFrames = frames.partition("_")[0]
			endFrames = frames.partition("_")[2]
			
	imageFilePrefix=cmds.getAttr("defaultRenderGlobals.imageFilePrefix")
	cmds.setAttr("defaultRenderGlobals.imageFilePrefix",imageFilePrefix.replace(imageFilePrefix.split("/")[0],cutNo),type="string")
	cmds.editRenderLayerGlobals( currentRenderLayer='defaultRenderLayer' )    	
	cmds.playbackOptions(minTime= startFrames,maxTime = endFrames)
	cmds.setAttr("defaultRenderGlobals.startFrame", startFrames)
	cmds.setAttr("defaultRenderGlobals.endFrame", endFrames)
	cmds.editRenderLayerGlobals( currentRenderLayer='defaultRenderLayer' )
Example #39
0
 def do_render(self):
     if self.maya.renderer == "vray":
         mc.setAttr("vraySettings.animType", 0)
     self.maya.set_render_frame_ext()
     row_count = self.data_model.rowCount()
     mc.progressWindow(title="Rendering...",
                       isInterruptable=1,
                       status="start rendering...",
                       min=0, max=row_count,
                       progress=0)
     for row in xrange(row_count):
         item_index = self.data_model.index(row, 5)
         render_item = item_index.data()
         progress_bar = self.table_view.indexWidget(self.data_model.index(row, 4))
         render_layer = render_item.name
         render_model = render_item.model
         if render_item.renderable:
             mc.editRenderLayerGlobals(currentRenderLayer=render_layer)
             camera = render_item.camera
             if render_model == "Custom":
                 frames = get_range_data.get_range_data(render_item.frames)
             else:
                 frame_range = self.maya.get_default_frame_range()
                 frames = get_range_data.get_range_data(frame_range)
             progress_bar.setRange(0, len(frames))
             for frame_index, frame in enumerate(frames):
                 if mc.progressWindow(query=1, isCancelled=1):
                     print "Interrupt by press Esc."
                     break
                 mc.RenderViewWindow()
                 mel.eval("setTestResolutionVar(1)")
                 mc.currentTime(frame)
                 current_frame_render_path = self.maya.get_current_render_frame_path(frame)
                 mel.eval('renderWindowRenderCamera render renderView ' + camera)
                 final_path = self.maya.copy_from_temp(current_frame_render_path)
                 print "render to %s" % final_path
                 progress_bar.setValue(frame_index+1)
     mc.progressWindow(endProgress=1)
     if self.shut_down_check.isChecked():
         os.system("shutdown -s -t 60")
 def detect_overrides(self):
     print 'detect_overrides '
     self.layer_overrides_dic = {}
     for layer in self.render_layers_in_order:
         print ' '
         print 'layer = ', layer
         cmds.editRenderLayerGlobals(currentRenderLayer=layer)
         for attr in self.scriptJob_attrs:
             if attr in self.xforms:
                 light_parent = cmds.listRelatives(
                     self.current_chosen_light, parent=True)
                 light_parent = light_parent[0]
                 light_name_attr = light_parent + '.' + attr
             else:
                 light_name_attr = self.current_chosen_light + '.' + attr
             value = cmds.getAttr(light_name_attr)
             for default_attr in self.default_layer_values_dic:
                 if default_attr == attr:
                     print 'default_attr = ', default_attr
                     print cmds.editRenderLayerGlobals(
                         query=True, currentRenderLayer=True)
                     print 'attr = ', attr
                     attr_value = cmds.getAttr(light_name_attr)
                     default_attr = self.default_layer_values_dic[attr]
                     print 'attr_value = ', attr_value
                     print 'default_attr = ', default_attr
                     if attr_value != default_attr:
                         print 'attr_value = ', attr_value
                         print 'default_attr = ', default_attr
                         self.layer_overrides_dic[attr] = layer
     print 'self.layer_overrides_dic = ', self.layer_overrides_dic
     cmds.editRenderLayerGlobals(
         currentRenderLayer=self.current_render_layer)
Example #41
0
def set_layer_overrides(node_attribute, override_data):
    """
    Set layer values overrides for a node attribute from the given per layer
    override data

    :param node_attribute: a node's attribute name as a string
    :param override_data: dictionary data where keys are render layer
    and values the layer's override value
    :return:
    """

    current_layer = cmds.editRenderLayerGlobals(query=True, crl=True)

    # Query the existing layerOverride Values
    layer_values = gather_attribute_override_data(node_attribute) or {}

    # Remove all layer overrides
    for render_layer in layer_values.keys():
        cmds.editRenderLayerAdjustment(node_attribute,
                                       layer=render_layer,
                                       remove=True)

    # Merge user layer Override and pre-existing override values
    for render_layer, value in override_data.iteritems():
        layer_values[render_layer] = value

    # Query the master layer value
    master_value = cmds.getAttr(node_attribute)

    render_layers = [x for x in cmds.ls(type='renderLayer')
                     if x != 'defaultRenderLayer']

    # Set override value per layer
    for render_layer in render_layers:
        if render_layer == current_layer:
            continue

        value = layer_values.get(render_layer, False)

        cmds.setAttr(node_attribute, value)
        cmds.editRenderLayerAdjustment(node_attribute,
                                       layer=render_layer)

    cmds.setAttr(node_attribute, master_value)

    current_layer_valid = current_layer in layer_values.keys()

    if "defaultRenderLayer" not in current_layer and current_layer_valid:
        cmds.editRenderLayerAdjustment(node_attribute, layer=current_layer)
        cmds.setAttr(node_attribute, layer_values[current_layer])

    return
Example #42
0
def timeRange(*arg):
    # Set to normal mode for all display layers
    dpLayers = cmds.ls(type='displayLayer')
    for dpLay in dpLayers:
        if dpLay == 'defaultLayer':
            continue
        cmds.setAttr('%s.displayType' % dpLay, 0)

    # Set fps to PAL
    cmds.currentUnit(time='pal')

    setFrameRange()

    cmds.editRenderLayerGlobals(currentRenderLayer='defaultRenderLayer')

    # Turn off dummy
    allCtrls = cmds.ls(type='transform')
    for ctrl in allCtrls:
        if 'ROOT' in ctrl:
            if cmds.objExists('%s.Dummy' % ctrl):
                cmds.cutKey(ctrl, at='Dummy', cl=True)
                cmds.setAttr('%s.Dummy' % ctrl, 0)
Example #43
0
    def reAssignMat(self):
        '''
		Reassign materials for each render layer with renLyrMatInfo dictionary data.
		'''

        for renLyr in self.renLyrMatInfo.keys():
            try:
                # Select render layer.
                cmds.editRenderLayerGlobals(currentRenderLayer=renLyr)

                for matAssignTable in self.renLyrMatInfo[renLyr]:
                    mat = matAssignTable[0]
                    assignedObjLs = matAssignTable[1]

                    if assignedObjLs:
                        for assignedObj in assignedObjLs:
                            # Convert assigned object name to deformed object.
                            if '.f' in assignedObj:
                                assignedObj = assignedObj.split('.f')[0].split(
                                    ':'
                                )[-1] + 'ShapeDeformed' + '.f' + assignedObj.split(
                                    '.f')[-1]
                            elif 'Shape' in assignedObj:
                                assignedObj = assignedObj.split(
                                    ':')[-1] + 'Deformed'
                                print assignedObj
                            # If assignedObj is transform node, skip this.
                            else:
                                continue

                            # Assign the material.
                            cmds.select(assignedObj, r=True)
                            cmds.hyperShade(assign=mat)
                    else:
                        pass
            except:
                pass

        print '> Reassign materials job is done.'
Example #44
0
def main(log=None):

    if not log:
        import logging
        log = logging.getLogger()

    allRenderLayer = cmds.ls(type='renderLayer')
    allRenderLayer.remove('defaultRenderLayer')
    if allRenderLayer:
        for x in allRenderLayer:
            try:
                cmds.editRenderLayerGlobals(
                    currentRenderLayer='defaultRenderLayer')
                cmds.delete(x)
            except:
                log.error("delete render layer error:%s" % x)
                import traceback
                log.error(traceback.format_exc())
            else:
                log.warning("render layer delete successful:%s" % x)
    else:
        log.debug('There is no render layer in the scene')
    def CREATETEMPfn(self, *args):
        if cmds.objExists('shotMaster') == False:
            cmds.confirmDialog(icn='warning', title='Error', message='There is no shotMaster within scene file!', \
                               button=['Ok'])
            cmds.error('error: cancelled by user')

        #Create render layer
        cmds.createRenderLayer(n='ANIM_TEMP', noRecurse=True)

        #Import Transform object [Char and Props]
        cmds.select('char', 'props', hi=True)
        TEMPlis = cmds.ls(sl=True)

        cmds.select(cl=True)
        for chk in TEMPlis:
            cmds.select(chk)
            if cmds.ls(sl=True, showType=True)[1] == 'transform':
                cmds.editRenderLayerMembers('ANIM_TEMP', chk, nr=True)
        #Import Transform object [Char and Props]

        #Import Transform [Sets]
        cmds.select('sets', hi=True)
        TEMPlis = cmds.ls(sl=True)

        cmds.select(cl=True)
        for chk in TEMPlis:
            cmds.select(chk)
            if cmds.ls(sl=True, showType=True)[1] == 'transform':
                cmds.editRenderLayerMembers('ANIM_TEMP', chk, nr=True)
                cmds.editRenderLayerGlobals(crl='ANIM_TEMP')
                cmds.hyperShade(assign='lambert1')
        #Import Transform [Sets]

        cmds.select(cl=True)
        cmds.confirmDialog(icn='information',
                           title='Done',
                           message='ANIM_TEMP has been created.',
                           button=['Ok'])
        return
def fixBadObjects():
	cmds.editRenderLayerGlobals(crl = 'defaultRenderLayer')
	objects = cmds.ls(sl = 1)
	if objects:
		addText = u'修复结果'.center(57, '-') + '\n'
		cmds.scrollField('ScrollText', e = 1, it = addText, ip = 0)
		feedBackCaseA, feedBackCaseB = [], []
		for object in objects:
			connections = cmds.listConnections(object, c = 1,p = 1, t = 'shadingEngine')
			if not connections:
				cmds.sets(object, fe = 'initialShadingGroup', e = 1)
				addText = u'>>> %s 被赋予默认lamber1材质\n' % object
				feedBackCaseA.append(addText)
			else:
				check = [x for x in connections[::2] if 'compInstObjGroups' in x]
				if check:
					id = connections.index(check[0])
					cmds.disconnectAttr(connections[id], connections[id + 1])
					addText = u'>>> %s 断开可能引发错误的连接\n' % object
					feedBackCaseB.append(addText)
		cmds.scrollField('ScrollText', e = 1, it = ''.join(feedBackCaseA), ip = 0)
		cmds.scrollField('ScrollText', e = 1, it = ''.join(feedBackCaseB), ip = 0)
Example #47
0
    def w04_updataUI(self, *args):
        cmds.text('w04_filename', e=True)
        cmds.textFieldGrp("w04_Imageformat",
                          e=True,
                          text=str(self.w04_getExtension())[1:-1])
        cmds.textFieldGrp('w04_path',
                          e=True,
                          text=cmds.workspace(q=True, rootDirectory=True) +
                          'images')
        cmds.textFieldGrp("w04_RenderLayer",
                          e=True,
                          text=cmds.editRenderLayerGlobals(
                              q=True, currentRenderLayer=True))
        cmds.textFieldGrp("w04_RenderUsing",
                          e=True,
                          text=cmds.getAttr("defaultRenderGlobals.ren"))
        cmds.textFieldGrp("w04_RenderableCams",
                          e=True,
                          text=str(self.w04_renderableCams())[1:-1].replace(
                              "u'", '').replace("'", ''))
        cmds.textFieldGrp("w04_Extension",
                          e=True,
                          text=self.w04_animationType())
        cmds.textFieldGrp(
            "w04_paddingzero",
            e=True,
            text=str(cmds.getAttr("defaultRenderGlobals.extensionPadding")))
        cmds.textFieldGrp("w04_imageSize",
                          e=True,
                          text='%s*%s' %
                          (cmds.getAttr("defaultResolution.width"),
                           cmds.getAttr("defaultResolution.height")))
        enValue = cmds.checkBox('w04_setFrameRange', q=True, v=True)

        cmds.radioButtonGrp('w04_uiFrameRangeStyle', e=True, en=enValue)
        if cmds.radioButtonGrp('w04_uiFrameRangeStyle', q=True,
                               select=True) == 1 and cmds.checkBox(
                                   'w04_setFrameRange', q=True, v=True):
            ranV, segV = True, False
        else:
            ranV, segV = False, True

        cmds.intFieldGrp("w04_startFrame", e=True, en=ranV)
        cmds.intFieldGrp("w04_endFrame", e=True, en=ranV)
        cmds.intFieldGrp("w04_byFrame", e=True, en=ranV)

        cmds.frameLayout('w04_uiFrameSegLayout', e=True, collapse=not segV)
        cmds.scrollField('w04_uiFrameSegments', e=True, en=segV)

        self.w04_uiFrameSegments_cmd()
def beforeSceneSave(userdata):

    # Set the 'defaultRenderLayer' as the current render layer before saving
    prefRenderSetup = cmds.optionVar(q="renderSetupEnable")
    # 1 = New Render Setup
    # 0 = Legacy Render Layers
    if prefRenderSetup == 1:
        global curLayer
        curLayer = cmds.editRenderLayerGlobals(q=True, currentRenderLayer=True)
        if curLayer != "defaultRenderLayer":
            try:
                cmds.editRenderLayerGlobals(
                    currentRenderLayer="defaultRenderLayer")
                print "# INFO: set 'defaultRenderLayer' as current render layer before saving the scene"
            except:
                # In Maya 2017 Update 3 switching the render layer throws an error, but in fact still switches the layer
                # so we manually check if the default layer is active before printing an info or a warning
                checkLayer = cmds.editRenderLayerGlobals(
                    q=True, currentRenderLayer=True)
                if checkLayer == "defaultRenderLayer":
                    print "# INFO: set 'defaultRenderLayer' as current render layer before saving the scene"
                else:
                    print "# WARNING: FAILED to set 'defaultRenderLayer' as current render layer before saving the scene!"
Example #49
0
    def _on_renderlayer_switch(self, *args):
        """Callback that updates on Maya renderlayer switch"""

        if maya.OpenMaya.MFileIO.isNewingFile():
            # Don't perform a check during file open or file new as
            # the renderlayers will not be in a valid state yet.
            return

        layer = cmds.editRenderLayerGlobals(query=True,
                                            currentRenderLayer=True)
        if layer != "defaultRenderLayer":
            self.warn_layer.show()
        else:
            self.warn_layer.hide()
Example #50
0
    def _GetExportedStage(self, activeRenderLayerName,
            renderLayerMode='defaultLayer', **kwargs):
        cmds.file(os.path.abspath('UsdExportRenderLayerModeTest.ma'),
            open=True, force=True)

        usdFilePathFormat = 'UsdExportRenderLayerModeTest_activeRenderLayer-%s_renderLayerMode-%s.usda'
        usdFilePath = usdFilePathFormat % (activeRenderLayerName, renderLayerMode)
        usdFilePath = os.path.abspath(usdFilePath)

        cmds.editRenderLayerGlobals(currentRenderLayer=activeRenderLayerName)
        self.assertEqual(self._GetCurrentRenderLayerName(), activeRenderLayerName)

        # Export to USD.
        cmds.usdExport(mergeTransformAndShape=True, file=usdFilePath,
            shadingMode='none', renderLayerMode=renderLayerMode, **kwargs)

        stage = Usd.Stage.Open(usdFilePath)
        self.assertTrue(stage)

        # Make sure the current render layer is the same as what it was pre-export.
        self.assertEqual(self._GetCurrentRenderLayerName(), activeRenderLayerName)

        return stage
Example #51
0
def enabled_render_layers():
    old_layer = cmds.editRenderLayerGlobals(
        query=True,
        currentRenderLayer=True,
    )
    try:
        rs = renderSetup.instance()

        def switchToLayer(layer):
            def _switch():
                rs.switchToLayer(layer)
            return _switch

        enabled_layers = []
        for layer in rs.getRenderLayers() + [rs.getDefaultRenderLayer()]:

            layer.switchToLayer = switchToLayer(layer)
            if layer.isRenderable():
                enabled_layers.append(layer)

        yield enabled_layers
    finally:
        cmds.editRenderLayerGlobals(currentRenderLayer=old_layer)
Example #52
0
def setup_ao(target):
    # setup backdrop
    cmds.polyPlane(name="ao_backdrop", w=15, h=15)
    cmds.select(clear=True)
    cmds.select("ao_backdrop")
    cmds.move(0, -0.5, 0, relative=True)
    '''
    mel.eval('select -r ao_backdrop;')
    mel.eval('sets -renderable true -noSurfaceShader true ' + \
        '-empty -name -table_matSG;')
    mel.eval('select -r ao_backdrop ; sets -e -forceElement table_matSG;')
    '''

    # create new render layer
    select_objs(target)
    cmds.createRenderLayer(name='ao', makeCurrent=True)

    # create a new surface shader for the ambient occlusion shader
    surf_shader = cmds.shadingNode('surfaceShader', asShader=True, \
        name='amb_occl_surf_shader')
    ao_shader = cmds.shadingNode('mib_amb_occlusion', asShader=True, name='amb_occl')
    cmds.connectAttr(ao_shader + '.outValue', surf_shader + '.outColor')

    # create a new shading group for the ao shader
    sg = cmds.sets(renderable=True, noSurfaceShader=True, empty=True, name='aoSG')
    cmds.connectAttr(surf_shader + '.outColor', sg + '.surfaceShader')

    # switch to the ao render layer
    cmds.editRenderLayerGlobals(currentRenderLayer='ao')
    #mel.eval('editRenderLayerGlobals -currentRenderLayer defaultRenderLayer;')

    select_objs(target)
    objects = cmds.ls(selection=True)
    cmds.select(objects)
    mel.eval('sets -e -forceElement ' + sg)
    change_ao_settings()
    change_render_settings()
def NAMEmatchAllButton(*args):
    clearList()
    currentLayer = mc.editRenderLayerGlobals(query=True,
                                             currentRenderLayer=True)
    selectionDefiner()
    for trgCt in range(len(trgCmpList)):
        for srcCt in range(len(srcCmpList)):
            if trgCmpList[trgCt] == srcCmpList[srcCt]:
                srcObjSel = srcTrList[srcCt]
                trgObjSel = trgTrList[trgCt]
                mc.select(srcObjSel, replace=True)
                mc.select(trgObjSel, add=True)
                getLayers()
                getSelectedLayers()
                for actLayer in actLayerList:
                    for selLayer in selLayerList:
                        if actLayer == selLayer:
                            mc.editRenderLayerGlobals(
                                currentRenderLayer=actLayer)
                            addObjs(actLayer)
                            shaderTransfer()
                            overrideTransfer(actLayer)

                actLayerList[:] = []
                selLayerList[:] = []
                sourceObj[:] = []
                targetObjs[:] = []
                sourceShape[:] = []
                targetShapes[:] = []

        if trgCmpList[trgCt] not in srcCmpList:
            print trgTrList[trgCt] + " doesn't match! "

    mc.select(srcGrp, replace=True)
    mc.select(trgGrp, add=True)

    mc.editRenderLayerGlobals(currentRenderLayer=currentLayer)
    def get_aov_names(self):
        """ Find all the active AOVs in the scene and return their names in a
			list.
		"""
        # Default beauty pass will always be added to the start of the list
        aov_name_ls = [self.default_beauty_aov_name]

        if self.renderer == "arnold":
            # List all Arnold AOV nodes
            aov_node_ls = mc.ls(type="aiAOV")

            for aov_node in aov_node_ls:
                # Only add to list if AOV is enabled
                if mc.getAttr("%s.enabled" % aov_node):
                    aov_name_ls.append(mc.getAttr("%s.name" % aov_node))

        elif self.renderer == "redshift":
            # Only if global AOV mode is enabled
            if mc.getAttr("redshiftOptions.aovGlobalEnableMode") == 1:
                # List all Redshift AOV nodes
                aov_node_ls = mc.ls(type="RedshiftAOV")

                for aov_node in aov_node_ls:
                    # Only add to list if AOV is enabled
                    if mc.getAttr("%s.enabled" % aov_node):
                        aov_name_ls.append(mc.getAttr("%s.name" % aov_node))

            else:
                mc.optionMenu("aov_comboBox", edit=True, enable=False)

        elif self.renderer == "mentalRay":
            # Get the current render layer
            current_layer = mc.editRenderLayerGlobals(query=True,
                                                      currentRenderLayer=True)

            # List all MentalRay render pass nodes
            aov_node_ls = mc.ls(type="renderPass")

            for aov_node in aov_node_ls:
                # Only add to list if render pass is connected to current
                # render layer and is renderable
                associated_layers = mc.listConnections("%s.owner" % aov_node)
                if associated_layers is not None:
                    if current_layer in associated_layers:
                        if mc.getAttr("%s.renderable" % aov_node):
                            aov_name_ls.append(aov_node)

        # Return list
        return aov_name_ls
 def proxSet(self, mode, value):
     over = cmds.checkBoxGrp(self.myCheck2, q=1, v1=1)
     user_attr = ['.idm', '.mm', '.visibilityMode']
     tmp = cmds.ls(sl=1, dag=1, type='mesh')
     if tmp == []:
         #cmds.confirmDialog(m='未选择物体', button='确定')
         cmds.warning('未选择物体')
         return
     rsProxys = cmds.listConnections(tmp, type='RedshiftProxyMesh')
     for i in rsProxys:
         if over == 1:
             if 'defaultRenderLayer' != cmds.editRenderLayerGlobals(
                     q=1, currentRenderLayer=1):
                 cmds.editRenderLayerAdjustment(i + user_attr[mode])
         cmds.setAttr(i + user_attr[mode], value)
    def _export_ass(self):

        import mtoa.cmds.arnoldRender as ar

        filePath = cmds.file(q=True, sn=True)

        #getting frame range
        endFrame = cmds.getAttr('defaultRenderGlobals.endFrame')
        startFrame = cmds.getAttr('defaultRenderGlobals.startFrame')

        #getting fields for version
        shot_temp = self.parent.sgtk.templates["maya_shot_work"]
        shotgunFields = shot_temp.get_fields(filePath)

        #getting output path
        area_temp = self.parent.sgtk.templates['maya_ass_export_area']
        path = area_temp.apply_fields(shotgunFields).replace('\\', '/')

        #setting ass export path
        cmds.workspace(fileRule=['ASS', path])

        #account for renderlayers
        for layer in cmds.ls(type='renderLayer'):

            #discarding referenced layers
            if ':' not in layer:

                #checking whether layer needs to be rendered
                if cmds.getAttr(layer + '.renderable') == 1:

                    cmds.editRenderLayerGlobals(currentRenderLayer=layer)

                    try:
                        ar.arnoldBatchRender('')
                    except Exception, e:
                        raise TankError("Failed to export Ass files: %s" % e)
Example #57
0
def getRenderLayers():
    renderLayers = cmds.ls(type='renderLayer')
    renderLayerData = []
    for renderLayer in renderLayers:
        renderable = cmds.getAttr(renderLayer + '.renderable')
        if 'defaultRenderLayer' in renderLayer and len(renderLayers) == 1:
            cmds.editRenderLayerGlobals(currentRenderLayer=renderLayer)
            renderPasses = getPasses()
            data = {
                'name': renderLayer,
                'renderAble': renderable,
                'passes': renderPasses
            }
            renderLayerData.append(data)
        elif 'defaultRenderLayer' not in renderLayer:
            cmds.editRenderLayerGlobals(currentRenderLayer=renderLayer)
            renderPasses = getPasses()
            data = {
                'name': renderLayer,
                'renderAble': renderable,
                'passes': renderPasses
            }
            renderLayerData.append(data)
    return renderLayerData
Example #58
0
    def layerChanged(self, index):

        self.curLayer = self.renderLayer.itemText(index)
        if self.curLayer == "defaultRenderLayer":
            self.disableLayerOverrides()
        else:
            self.enableLayerOverrides()
            for cache in self.ABCViewerNode:
                c = self.ABCViewerNode[cache]
                over = c.getLayerOverrides(self.getLayer())

                if over:
                    self.overrideProps.setChecked(over["removeProperties"])
                    self.overrideShaders.setChecked(over["removeShaders"])
                    self.overrideDisps.setChecked(over["removeDisplacements"])

        self.updateTree()
        if self.hierarchyWidget.currentItem():
            self.itemCLicked(self.hierarchyWidget.currentItem(), 0, force=True)

        # change it in maya too
        curLayer = cmds.editRenderLayerGlobals(query=1, currentRenderLayer=1)
        if curLayer != self.curLayer:
            cmds.editRenderLayerGlobals(currentRenderLayer=self.curLayer)
Example #59
0
def list():
    """ Output layer overrides for the current layer.
	"""
    layer = mc.editRenderLayerGlobals(query=True, currentRenderLayer=True)
    adjustments = mc.editRenderLayerAdjustment(layer, query=True, layer=True)

    print("\n*** List of overrides for layer '%s:' ***" % layer)

    if adjustments:
        for adj in adjustments:
            print("%s = %s" % (adj, mc.getAttr(adj)))

    else:
        print("None")

    print("\n")
Example #60
0
 def get_render_layer(self, value=None):
     if not value:
         render_layers = [
             mc.editRenderLayerGlobals(q=1, currentRenderLayer=1)
         ]
     else:
         render_layers = mc.ls(type='renderLayer')
         render_layers = [
             layer for layer in render_layers
             if 'defaultRenderLayer' not in layer
         ]
         render_layers = [
             layer for layer in render_layers
             if mc.getAttr('%s.renderable' % layer)
         ]
     return render_layers