示例#1
0
def hudAdd():
	section=5
	hudPrefix = 'HUD_cbCustom_'
	
	resultCb=[]
	watchList = hud_parseWatchList()
	hubRem()
	
	sel=pm.ls(sl=True)
	if sel and (pm.channelBox('mainChannelBox',q=True, sma=True) or pm.channelBox('mainChannelBox',q=True, sha=True, soa=True, ssa=True)):
		for obj in sel:
			listAttrs = []
			if pm.channelBox('mainChannelBox',q=True, sma=True):
				listAttrs += [pm.PyNode(obj+'.'+attr) for attr in pm.channelBox('mainChannelBox',q=True, sma=True)]
			if pm.channelBox('mainChannelBox',q=True, sha=True, soa=True, ssa=True):
				listAttrs += [pm.PyNode(obj+'.'+attr) for attr in pm.channelBox('mainChannelBox',q=True, sha=True, soa=True, ssa=True)]			
		if listAttrs:
			for listAttr in listAttrs:
				watchList.append(listAttr)
		else:
			return False
	result = cbChannelsHUD(watchList)
	
	if result:
		#print result.keys()
		for key in result:
			hudName = hudPrefix+key
			pm.headsUpDisplay(hudName,
							  section=section,
							  block=pm.headsUpDisplay(nfb=section),
							  blockSize = 'medium',
							  command = "cbChannelsHUD_parse(\"%s\")"%key,
							  attachToRefresh=True)
示例#2
0
def create_file_hud(event=None):
    if pm.headsUpDisplay('HUDFilename', exists=True):
        pm.headsUpDisplay('HUDFilename', rem=True)

    block = 0

    while block < 20:
        try:
            pm.headsUpDisplay('HUDFilename',
                              section=hud_filename_section,
                              block=block,
                              blockSize='small',
                              label='Filename:',
                              labelFontSize='small',
                              command=hud_file_object,
                              event='NewSceneOpened')
        except RuntimeError:
            block = block + 1
            continue

        break

    global hud_filename_save_callback
    global hud_filename_open_callback

    try:
        om.MSceneMessage.removeCallback(hud_filename_save_callback)
        om.MSceneMessage.removeCallback(hud_filename_open_callback)
    except:
        pass

    hud_filename_save_callback = om.MSceneMessage.addCallback(
        om.MSceneMessage.kAfterSave, create_file_hud)
    hud_filename_open_callback = om.MSceneMessage.addCallback(
        om.MSceneMessage.kAfterOpen, create_file_hud)
示例#3
0
 def dateHud(self, state=True):
     if state:
         self.activesHuds.append(
             int(pm.headsUpDisplay("Date", label=self.Date, labelFontSize="small", section=6, block=1))
         )
     else:
         pm.headsUpDisplay("Date", rem=True)
示例#4
0
def showDate():
    global __HUD_DATE__
    pc.headsUpDisplay(__HUD_DATE__,
                      section=1,
                      block=0,
                      blockSize='large',
                      dfs='large',
                      command='pc.date(format="DD/MM/YYYY hh:mm")')
示例#5
0
 def sceneHud(self, state=True):
     self.queryData()
     if state:
         self.activesHuds.append(
             int(pm.headsUpDisplay("SceneName", label=self.SceneName, labelFontSize="small", section=7, block=1))
         )
     else:
         pm.headsUpDisplay("SceneName", rem=True)
示例#6
0
def togglePlaybackSpeed():
    """Toggle between Real-time and Every Frame playback"""

    newSpeed = not bool( pm.playbackOptions( playbackSpeed=True, query=True ) )
    pm.playbackOptions( playbackSpeed=newSpeed )

    pm.headsUpDisplay( 'HUDPlaybackSpeed', edit=True )
    print 'Playback Speed: %s' % ( 'Every Frame', 'Real-time' )[newSpeed]
示例#7
0
def deleteUselessHudExpression():
    try:
        # try to delete useless expression for hud updating
        if not pm.headsUpDisplay('frameCounterHUD', query=True, ex=True) and pm.objExists('frameCounterUpdate'):
            pm.delete('frameCounterUpdate')
        if not pm.headsUpDisplay('timeCodeHUD', query=True, ex=True) and pm.objExists('timeCodeUpdate'):
            pm.delete('timeCodeUpdate')
    except:
        pass
示例#8
0
 def createHud(self):
     self.activesHuds.append(
         int(pm.headsUpDisplay("AnimatorName", label=self.AnimatorName, labelFontSize="small", section=5, block=1))
     )
     self.activesHuds.append(
         int(pm.headsUpDisplay("Date", label=self.Date, labelFontSize="small", section=6, block=1))
     )
     self.activesHuds.append(
         int(pm.headsUpDisplay("SceneName", label=self.SceneName, labelFontSize="small", section=7, block=1))
     )
     self.frameHud()
示例#9
0
def writePB(fileNameFull, type):
    if type == 'mov':
        # Turn ON HUD
        pm.headsUpDisplay(rp=(6, 1))  # Delete HUD if exists by position
        hud = pm.headsUpDisplay('HUD',
                                section=6,
                                block=1,
                                blockSize='medium',
                                label=codeProject.upper(),
                                labelFontSize='large',
                                command=dataFrame,
                                attachToRefresh=True)
        if pm.ls(type='audio') == []:  # make PB without sound
            pm.playblast(format='qt',
                         compression='Sorenson Video 3',
                         showOrnaments=1,
                         quality=100,
                         percent=100,
                         f=fileNameFull,
                         width=999,
                         height=540,
                         forceOverwrite=1)
        else:  # make PB with sound
            audio = pm.ls(type='audio')[0]
            pm.playblast(format='qt',
                         compression='Sorenson Video 3',
                         s=audio,
                         showOrnaments=1,
                         offScreen=1,
                         quality=100,
                         percent=100,
                         f=fileNameFull,
                         width=999,
                         height=540,
                         forceOverwrite=1)
        print 'PLAYBLAST DONE: ' + str(fileNameFull)
    elif type == 'jpg':
        pm.playblast(frame=pm.env.getTime(),
                     format='image',
                     compression='jpg',
                     viewer=0,
                     showOrnaments=0,
                     quality=100,
                     percent=100,
                     completeFilename=fileNameFull,
                     width=999,
                     height=540,
                     forceOverwrite=1)
        shot = ftrack.getShotFromPath(
            [codeProject, codePart, codeSequence, 'SHOT_' + str(codeShot)])
        thumbnail = shot.createThumbnail(fileNameFull)
        shot.setThumbnail(thumbnail)
        print 'SCREENSHOT SET IN FTRACK: ' + str(fileNameFull)
示例#10
0
def showNameLabel():
    global __HUD_LABEL__
    global __HUD_USERNAME__
    pc.headsUpDisplay(__HUD_LABEL__,
                      section=2,
                      block=0,
                      blockSize='large',
                      dfs='large',
                      command=label)
    pc.headsUpDisplay(__HUD_USERNAME__,
                      section=3,
                      block=0,
                      blockSize='large',
                      dfs='large',
                      command=getUsername)
示例#11
0
 def duplicateTearPanel(self):
     # Make playblast model panel with an apropriade size
     #tearCopy = pc.windows.control(pc.windows.getPanel(withFocus=True), q=True, parent=True) #fullPathName=True)
     tearCopy = pc.windows.getPanel(withFocus=True)
     if tearCopy not in pc.windows.getPanel(type="modelPanel"):
         # Print worning and stop procedure
         show_error_dialog("Select (focus on) a panel that you want to make playblast from.")
         return()
     pbmodpanel = pc.windows.modelPanel(l='axplayBlastModelPanel1', tearOffCopy=tearCopy.split("|")[-1])
     # Scale panel to fit size
     pc.windows.control(pbmodpanel, e=True, w=self.resx()+100)
     pc.windows.control(pbmodpanel, e=True, h=self.resy()+100)
     # Deselect on option
     if self.isChecked(self.selectionBox):
         store_shots = pc.ls(sl=True, type='shot')
         pc.general.select(deselect=True)
         pc.general.select(store_shots, add=True)
     # Create raw folder if not there
     if not os.path.exists(self.tempfldr):
         os.mkdir(self.tempfldr)
     # Set HQ Rendering on the panel (Andy's request)
     if self.hqrendering:
         pc.modelEditor( pbmodpanel.split("|")[-1],
                         edit=True,
                         rnm="hwRender_OpenGL_Renderer"
                       )
     # NOTE If framecount gets requestes on HUD
     # if not pc.mel.eval('''optionVar -q frameRateVisibility'''):
     #     pc.runtime.ToggleFrameRate()
     # if not pc.mel.eval('''optionVar -q cameraNamesVisibility'''):
     #     pc.runtime.ToggleCameraNames()
     hudobj = 'HUDObjectPosition', 
     if not pc.headsUpDisplay(hudobj, q=True, ex=True):
         pc.headsUpDisplay(  hudobj, 
                             section=1, 
                             block=0, 
                             blockSize='medium', 
                             label='v%03d'%self.checkForNextVersions(),
                             labelFontSize='small', 
                         )
     else:
         pc.headsUpDisplay(  hudobj, 
                             e=True,
                             label='v%03d'%self.checkForNextVersions(),
                         )
     return([pbmodpanel, tearCopy])
示例#12
0
def writePB(fileNameFull, type):
    if type == 'mov':
        # Turn ON HUD
        pm.headsUpDisplay( rp = ( 6 , 1 ) ) # Delete HUD if exists by position
        hud = pm.headsUpDisplay ( 'HUD', section = 6, block = 1, blockSize = 'medium', label = codeProject.upper(), labelFontSize='large', command = dataFrame, attachToRefresh = True)
        if  pm.ls(type = 'audio') == []: # make PB without sound
            pm.playblast(format = 'qt', compression = 'Sorenson Video 3',showOrnaments = 1, quality = 100, percent = 100, f = fileNameFull, width = 999, height = 540, forceOverwrite = 1 ) 
        else: # make PB with sound
            audio = pm.ls(type = 'audio')[0]
            pm.playblast(format = 'qt', compression = 'Sorenson Video 3', s = audio, showOrnaments = 1, offScreen = 1, quality = 100, percent = 100, f = fileNameFull, width = 999, height = 540, forceOverwrite = 1 )
        print 'PLAYBLAST DONE: ' + str(fileNameFull)   
    elif type == 'jpg':
        pm.playblast(frame = pm.env.getTime(), format = 'image', compression = 'jpg', viewer = 0, showOrnaments = 0, quality = 100, percent = 100, completeFilename = fileNameFull, width = 999, height = 540, forceOverwrite = 1 )
        shot = ftrack.getShotFromPath([codeProject, codePart, codeSequence, 'SHOT_' + str(codeShot) ])
        thumbnail = shot.createThumbnail(fileNameFull)
        shot.setThumbnail(thumbnail)
        print 'SCREENSHOT SET IN FTRACK: ' + str(fileNameFull)
示例#13
0
    def restorePanes(self, panel, tearoff):
        # Delete TearOff panel
        if pc.windows.window(panel.split('|')[-1]+'Window', q=True, exists=True):
            pc.windows.deleteUI(panel.split('|')[-1]+'Window', window=True)
        # Update maya UI panels to avoid crashing
        # NOTE may not be necessary at all pc.mel.eval('switchPanes single 0')
        # Restore visible elements
        if self.isChecked(self.smarthud):
            self.toggleVisiblePanelElements(tearoff.split("|")[-1])
        # Convert to output
        curr_frm = pc.animation.currentTime(q=True)
        max_plbopt = self.timerange_max()

        # Set focus to other panel (avoid crashing if called agani straight
        # after)
        for i in pc.getPanel(all=True):
            if i != panel:
                pc.setFocus()
                break
        hudobj = 'HUDObjectPosition', 
        pc.headsUpDisplay(hudobj, rem=True)
示例#14
0
def jointCountHUD( toggle=True ):
    """
    Toggle the display of joint count.

    HUD element that shows the total visible joints in scene. The numbers represent the total number if visible joints,
    the number of visible selected joints in selection hierarchy, and the number of visible selected joints only.
    """

    opt_vis = 'jointCountHUDVis'

    if toggle:
        pm.optionVar[opt_vis] = not pm.optionVar.get( opt_vis, False )

    if pm.headsUpDisplay( 'HUDJointCount', exists=True ):
        pm.headsUpDisplay( 'HUDJointCount', remove=True )

    block = pm.headsUpDisplay( nextFreeBlock=0 )

    pm.headsUpDisplay( 
        'HUDJointCount',
        visible=pm.optionVar.get( opt_vis, False ),
        section=0,
        block=block,
        label='Joints:',
        dataAlignment='right',
        labelWidth=50,
        dataWidth=65,
        command=countJoints,
        event='SelectionChanged'
    )
示例#15
0
def currentTimeHUD( toggle=True ):
    """Toggle the display of current time."""

    opt_vis = 'currentTimeHUDVis'

    if toggle:
        pm.optionVar[opt_vis] = not pm.optionVar.get( opt_vis, False )

    if pm.headsUpDisplay( 'HUDCurrentTime', exists=True ):
        pm.headsUpDisplay( 'HUDCurrentTime', remove=True )

    block = pm.headsUpDisplay( nextFreeBlock=9 )

    pm.headsUpDisplay( 
        'HUDCurrentTime',
        visible=pm.optionVar.get( opt_vis, False ),
        section=9,
        block=block,

        label='Current Time:',
        dataAlignment='left',
        labelWidth=115,
        dataWidth=75,

        #label='',
        #dataWidth=22,
        #dataAlignment='right',
        command=_getCurrentTime,
        attachToRefresh=True,
        #dataFontSize='large'
    )
示例#16
0
def removeFrameInfo(all=False):
    if pc.headsUpDisplay(__hud_frame_1__, exists=True):
        pc.headsUpDisplay(__hud_frame_1__, rem=True)
    if pc.headsUpDisplay(__hud_frame_2__, exists=True):
        pc.headsUpDisplay(__hud_frame_2__, rem=True)
    if all:
        pc.Mel.eval('setCurrentFrameVisibility(0)')
        pc.Mel.eval('setFocalLengthVisibility(0)')
        pc.Mel.eval('setCameraNamesVisibility(0)')
示例#17
0
文件: hud.py 项目: Mikfr83/Luna
    def create(cls):
        hud_instance = None
        Logger.info("Building {0}...".format(cls.HUD_NAME))

        # Delete old
        cls.remove()
        hud_instance = pm.headsUpDisplay(cls.HUD_NAME,
                                         section=cls.SECTION,
                                         block=cls.BLOCK,
                                         blockSize=cls.BLOCK_SIZE,
                                         labelFontSize=cls.FONT_SIZE,
                                         command=cls.getHudText,
                                         event=cls.UPDATE_EVENT)
        Logger.info("Successfully created HUD: {0}".format(cls.HUD_NAME))

        return hud_instance
示例#18
0
def cleanPlayblastWindow(ui, renderers):
    print 'Remove playblasting windows and restore settings...'
    # display stereo layers if any
    try:
        scf.showLayer2()
    except:
        print traceback.format_exc()

    # recover transparent sorting
    try:
        pm.modelEditor(ui['editor'], e=True, sortTransparent=True)
    except:
        print traceback.format_exc()

    # delete hud expression
    if pm.objExists('stereoUpdateHUD'):
        pm.delete('stereoUpdateHUD')

    # delete custom hud, restore previous hud
    try:
        if pm.headsUpDisplay(ui['hud_stereo'], query=True, ex=True):
            pm.headsUpDisplay(ui['hud_stereo'], rem=True)

        for huds in ui['huds_current']:
            if pm.headsUpDisplay(huds, query=True, ex=True):
                pm.headsUpDisplay(huds, edit=True, vis=True)
    except:
        print traceback.format_exc()

    # delete safe area
    try:
        safeareaShapes = pm.ls(type='spReticleLoc')
        for safe in safeareaShapes:
            try:
                pm.delete(safe.getParent())
            except:
                pass
    except:
        print traceback.format_exc()

    # restore background color
    if ui['bgColor']:
        makeBluescreen( ui['bgColor'], renderers )

    # delete preview window
    try:
        pm.deleteUI(ui['window'].name(), window=True)
    except:
        print traceback.format_exc()

    try:
        pm.lookThru('persp')
    except:
        print traceback.format_exc()
示例#19
0
def showDate():
    global __HUD_DATE__
    if pc.headsUpDisplay(__HUD_DATE__, q=True, exists=True):
        pc.headsUpDisplay(__HUD_DATE__, remove=True)
    pc.headsUpDisplay(__HUD_DATE__,
                      section=1,
                      block=pc.headsUpDisplay(nfb=1),
                      blockSize='large',
                      dfs='large',
                      command='import pymel.core as pc;'
                      'pc.date(format="DD/MM/YYYY hh:mm")')
示例#20
0
    def showHUD(self, name):
        self.deleteHUD()
        self.artilstName = name
        pm.headsUpDisplay('frameCounterHUD',
                          allowOverlap=1,
                          l=u"■",
                          b=4,
                          s=5,
                          dataFontSize='small',
                          blockSize='small',
                          dataWidth=5,
                          preset="currentFrame")

        pm.headsUpDisplay('artistNameHUD',
                          l=u"■",
                          allowOverlap=1,
                          b=3,
                          s=5,
                          dataFontSize='small',
                          blockSize='small',
                          command=self.getArtist,
                          event='timeChanged')

        pm.headsUpDisplay('dateNameHUD',
                          l=u"■",
                          allowOverlap=1,
                          b=2,
                          s=5,
                          dataFontSize='small',
                          blockSize='small',
                          command=self.getData,
                          event='timeChanged')

        pm.headsUpDisplay('cameraFocalHUD',
                          l=u"■",
                          allowOverlap=1,
                          b=1,
                          s=5,
                          dataFontSize='small',
                          blockSize='small',
                          command=self.getScene,
                          event='timeChanged')
示例#21
0
    def create(cls):
        hud_instance = None
        Logger.info("Building HUD...")
        cls.SECTION = Config.get(HudVars.section, default=7)
        cls.BLOCK = Config.get(HudVars.block, default=5)

        # Delete old
        cls.remove()
        try:
            hud_instance = pm.headsUpDisplay(cls.HUD_NAME,
                                             allowOverlap=True,
                                             section=cls.SECTION,
                                             block=cls.BLOCK,
                                             blockSize=cls.BLOCK_SIZE,
                                             labelFontSize=cls.FONT_SIZE,
                                             command=cls.get_hud_text,
                                             event=cls.UPDATE_EVENT)
            Logger.info("Successfully created HUD: {0}".format(cls.HUD_NAME))
        except RuntimeError:
            Logger.error(
                "HUD position ({0}:{1}) is occupied by another HUD. Use configer to select other block/section."
                .format(cls.SECTION, cls.BLOCK))

        return hud_instance
示例#22
0
            'expression -s "headsUpDisplay -r currentFrame; headsUpDisplay -r currentTime; headsUpDisplay -r currentRate;" -n "headsup"; refresh;'
        )
    else:
        pm.delete('headsup')
        pm.mel.eval(
            'expression -s "headsUpDisplay -r currentFrame; headsUpDisplay -r currentTime; headsUpDisplay -r currentRate;" -n "headsup"; refresh;'
        )


clear()

pm.headsUpDisplay('currentFrame',
                  section=8,
                  block=1,
                  blockSize='small',
                  labelFontSize='large',
                  label='Frame',
                  command=frameNumber,
                  event='timeChanged',
                  dfs='large')
pm.headsUpDisplay('currentTime',
                  section=3,
                  block=1,
                  blockSize='medium',
                  labelFontSize='large',
                  command=localTime,
                  event='timeChanged',
                  dfs='large')
pm.headsUpDisplay('currentPath',
                  section=2,
                  block=1,
示例#23
0
    def _do_playblast(self):

        MODEL_EDITOR_PARAMS = {
            "activeView": True,
            "cameras": False,
            "controlVertices": False,
            "deformers": False,
            "dimensions": False,
            "displayAppearance": "smoothShaded",
            "displayLights": "default",
            "displayTextures": True,
            "dynamicConstraints": False,
            "fogging": False,
            "follicles": False,
            "grid": False,
            "handles": False,
            "headsUpDisplay": True,
            "hulls": False,
            "ignorePanZoom": False,
            "ikHandles": False,
            "imagePlane": True,
            "joints": False,
            "lights": False,
            "locators": False,
            "manipulators": False,
            "nurbsCurves": False,
            "nurbsSurfaces": True,
            "pivots": False,
            "planes": False,
            "selectionHiliteDisplay": False,
            "shadows": False,
            "sortTransparent": True,
            "strokes": True,
            "textures": True,
            "useDefaultMaterial": False,
            "wireframeOnShaded": False,
        }

        windowName = "review_blast"

        try:
            _current_panel = pm.getPanel(wf=True)
            if pm.modelEditor(_current_panel, q=True, fogging=True) == True:
                MODEL_EDITOR_PARAMS["fogging"] = True
        except:
            pass

        try:
            if pm.windowPref(windowName, exists=True):
                pm.windowPref(windowName, remove=True)
                pm.deleteUI(windowName)
        except:
            pass

        _window = pm.window(windowName,
                            titleBar=True,
                            iconify=True,
                            leftEdge=100,
                            topEdge=100,
                            width=800,
                            height=600,
                            sizeable=False)

        _layout = pm.formLayout()
        _editor = pm.modelEditor(**MODEL_EDITOR_PARAMS)

        pm.formLayout(_layout,
                      edit=True,
                      attachForm=((_editor, "left", 0), (_editor, "top", 0),
                                  (_editor, "right", 0), (_editor, "bottom",
                                                          0)))

        # Legacy viewport used
        try:
            mel.eval("setRendererInModelPanel ogsRenderer {};".format(_editor))
        except:
            cmds.confirmDialog(
                message=
                'You need to change your viewport as the legacy version',
                dismissString='No')

        # viewport 2.0 used
        # mel.eval( "setRendererInModelPanel \"vp2Renderer\" {};".format( _editor))

        pm.setFocus(_editor)
        pm.lookThru(_editor, self._shot_cam)

        cmds.refresh()

        _labelColor = cmds.displayColor('headsUpDisplayLabels',
                                        q=True,
                                        dormant=True)
        _labelValue = cmds.displayColor('headsUpDisplayValues',
                                        q=True,
                                        dormant=True)

        visibleHUDs = [
            f for f in pm.headsUpDisplay(listHeadsUpDisplays=True)
            if pm.headsUpDisplay(f, query=True, visible=True)
        ]
        map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False),
            visibleHUDs)

        for h in pm.headsUpDisplay(listHeadsUpDisplays=True):
            if pm.headsUpDisplay(h, q=1, s=1) == 7:
                if pm.headsUpDisplay(h, q=1, b=1) == 5:
                    try:
                        pm.headsUpDisplay(h, rem=True)
                    except:
                        pass

        for h in pm.headsUpDisplay(listHeadsUpDisplays=True):
            if pm.headsUpDisplay(h, q=1, s=1) == 7:
                if pm.headsUpDisplay(h, q=1, b=1) == 6:
                    try:
                        pm.headsUpDisplay(h, rem=True)
                    except:
                        pass

        cmds.displayColor('headsUpDisplayValues', 17, dormant=True)
        cmds.displayColor('headsUpDisplayLabels', 16, dormant=True)

        def hudShot():
            _nameTemp = cmds.file(q=1, ns=1).split(".")[0]
            return _nameTemp.rsplit("_", 1)[0]

        def hudName():
            return getpass.getuser()

        pm.headsUpDisplay('HUDCurrentFrame',
                          edit=True,
                          visible=True,
                          labelFontSize="large",
                          dataFontSize="large",
                          section=5,
                          block=1)
        #cmds.headsUpDisplay('HUDA',s=7,b=6, blockAlignment='center', dataFontSize='large', command=hudShot)
        #cmds.headsUpDisplay('HUDB',s=7,b=5, blockAlignment='center', dataFontSize='large', label="Artist:", labelFontSize="large", command=hudName)

        pm.setFocus(_editor)

        #if pm.headsUpDisplay('HUDCurrentFrame', query=True, visible=False):
        #    print "works 111"
        #    pass
        #else:
        _mov_file = os.path.splitext(self._file)[0]
        # print _mov_file
        # __audios = pm.ls(type="audio")
        __audios = pm.ls(type="audio")

        if len(__audios) > 0:
            __audio = str(__audios[0])
        else:
            __audio = False

        # frame catching min, max, current
        _min_frame = pm.playbackOptions(q=1, min=1)
        _max_frame = pm.playbackOptions(q=1, max=1)
        _current_frame = pm.currentTime(q=1)
        pm.currentTime(_min_frame)

        ### playblast option ###
        # play_args = "playblast -format avfoundation -filename \"{}\" -sound \"{}\" -sequenceTime 0 -clearCache 1 -viewer 1 -forceOverwrite -showOrnaments 1 -offScreen -fp 4 -percent 100 -compression \"H.264\" -quality 70 -widthHeight {} {};".format( self._file, __audio, self.resolution_size[0], self.resolution_size[1])

        try:

            _temp_path, _temp_file = os.path.split(self._file)
            _temp_mov_path = _temp_path + "/.temp"

            _temp_file_01 = os.path.splitext(_temp_file)
            _temp_mov_file = _temp_file_01[0] + "_uncomp" + _temp_file_01[1]

            _full_temp_mov_file = os.path.join(_temp_mov_path, _temp_mov_file)

            print _full_temp_mov_file

            try:
                if not os.path.exists(_temp_mov_path):
                    os.makedirs(_temp_mov_path)

                if os.path.exists(_full_temp_mov_file):
                    os.remove(_full_temp_mov_file)
            except:
                raise

            ### making playblast
            play_args = "playblast -format qt -filename \"{}\" -sound \"{}\" -sequenceTime 0 -clearCache 1 -viewer 0 -showOrnaments 1 -compression \"H.264\" -offScreen -fp 4 -percent 100 -quality 100 -widthHeight {} {};".format(
                _full_temp_mov_file, __audio, self.resolution_size[0],
                self.resolution_size[1])
            mel.eval(play_args)
            pm.currentTime(_current_frame)

            sceneName = pm.sceneName()
            tk = sgtk.sgtk_from_path(sceneName)

            # get entity information
            _context = tk.context_from_path(sceneName)

            _date = datetime.date.today()
            _task = _context.step["name"]
            _shot_name = _context.entity["name"]
            _png_file = os.path.normpath(
                _temp_mov_path + "/" +
                _context.user["name"].translate(None, string.whitespace) +
                ".png")

            try:
                if not os.path.exists(_temp_mov_path):
                    os.makedirs(_temp_mov_path)

                if os.path.exists(_png_file):
                    os.remove(_png_file)
            except:
                raise

            ### write information on png file ###
            _copylight = "Copyright (C) {} JibJab Studios - All Rights Reserved".format(
                _date.year)
            _img = Image.new('RGBA', (1920, 1080), (0, 0, 0, 0))
            _slate_image = ImageDraw.Draw(_img)
            _type_shot_asset = ImageFont.truetype('/Library/Fonts/arial.ttf',
                                                  30)
            _type_copyright = ImageFont.truetype('/Library/Fonts/arial.ttf',
                                                 15)
            _type_task = ImageFont.truetype('/Library/Fonts/arial.ttf', 18)

            _slate_image.text((820, 1000),
                              _shot_name,
                              font=_type_shot_asset,
                              fill=(255, 255, 255, 128))
            _slate_image.text((780, 1060),
                              _copylight,
                              font=_type_copyright,
                              fill=(255, 255, 255, 128))
            _slate_image.text((910, 1035),
                              "Task : {}".format(_task),
                              font=_type_task,
                              fill=(255, 255, 255, 128))
            # _slate_image.text((1610, 1060), _review_file, font=_type_copyright, fill=(255,255,255,80))

            _img.save(_png_file, 'PNG')

            ### convert uncomppresed file to h.264
            #t = os.system("/Volumes/public/StoryBots/production/series/ask_the_storybots/03_shared_assets/01_cg/05_maya_tools/pipeline/module/ffmpeg/ffmpeg -y -i " + _full_temp_mov_file + " -vcodec libx264 -pix_fmt yuv420p -preset slower -crf 0 -vf eq=brightness=0.04 -g 1 -acodec copy " + self._file)
            t = os.system(
                "/Volumes/public/StoryBots/production/series/ask_the_storybots/03_shared_assets/01_cg/05_maya_tools/pipeline/module/ffmpeg/ffmpeg -y -i "
                + _full_temp_mov_file + " -i " + _png_file +
                " -vcodec libx264 -pix_fmt yuv420p -preset slow -crf 22 -filter_complex \"overlay=x=(main_w-overlay_w)/2:y=(main_h-overlay_h)/2\" -g 0 -acodec copy "
                + self._file)
            ######################################
            #### This is RV open with mov file ###
            ######################################

            _mov_path_RV, _mov_file_RV = os.path.split(self._file)
            os.chdir(_mov_path_RV)
            subprocess.Popen(self._RV_path + _mov_file_RV, shell=True)

            if os.path.exists(_full_temp_mov_file):
                os.remove(_full_temp_mov_file)

            if os.path.exists(_png_file):
                os.remove(_png_file)

        except:
            pm.confirmDialog(
                title="Playblast Error",
                message=
                "Close your RV or deselect the file.\nYour file is being used from other application",
                defaultButton="Yes")
            raise

        # playblast  -format avfoundation -sound "ATS_301_sq020_020" -sequenceTime 0 -clearCache 1 -viewer 1 -showOrnaments 0 -offScreen  -fp 4 -percent 80 -compression "H.264" -quality 70 -widthHeight 1920 1080;
        #pm.showWindow( _window )
        pm.headsUpDisplay('HUDCurrentFrame',
                          edit=True,
                          visible=False,
                          section=5,
                          block=1)
        # cmds.headsUpDisplay( 'HUDA', rem=True )
        # cmds.headsUpDisplay( 'HUDB', rem=True )
        # delete playblast window
        pm.deleteUI(_window)
        # revive HOD modes

        cmds.displayColor('headsUpDisplayValues', _labelColor, dormant=True)
        cmds.displayColor('headsUpDisplayLabels', _labelValue, dormant=True)
        map(lambda f: pm.headsUpDisplay(f, edit=True, visible=True),
            visibleHUDs)
示例#24
0
def clear():
    for i in range(0, 10):
        for h in range(0, 10):
            pm.headsUpDisplay(rp=(i, h))
示例#25
0
"""CUSTOM HUD FOR MAYA
 BY DANIEL SANCHEZ QUIROS"""

import pymel.core as pm


def custom_hud(names):
    """TESTING"""
    pm.headsUpDisplay("Current_Camera", section = 1, block = 2, label= "position", labelFontSize = "small")

"""MORE TESTING"""	
cameraHUD = custom_hud("names")	
pm.headsUpDisplay("Current_Camera", rem = True)
示例#26
0
def showNameLabel():
    global __HUD_LABEL__
    global __HUD_USERNAME__
    if pc.headsUpDisplay(__HUD_LABEL__, q=True, exists=True):
        pc.headsUpDisplay(__HUD_LABEL__, remove=True)
    pc.headsUpDisplay(__HUD_LABEL__,
                      section=2,
                      block=pc.headsUpDisplay(nfb=2),
                      blockSize='large',
                      dfs='large',
                      command=label)
    if pc.headsUpDisplay(__HUD_USERNAME__, q=True, exists=True):
        pc.headsUpDisplay(__HUD_USERNAME__, remove=True)
    pc.headsUpDisplay(__HUD_USERNAME__,
                      section=3,
                      block=pc.headsUpDisplay(nfb=3),
                      blockSize='large',
                      dfs='large',
                      command=getUsername)
    pc.headsUpDisplay(__HUD_USERNAME__, e=True, dfs='large')
示例#27
0
    def setup_huds(self):
        data = dict(
            objectDetailsVisibility='ToggleObjectDetails;',
            polyCountVisibility='TogglePolyCount;',
            subdDetailsVisibility='ToggleSubdDetails;',
            animationDetailsVisibility='ToggleAnimationDetails;',
            frameRateVisibility='ToggleFrameRate;',
            viewAxisVisibility='ToggleViewAxis;',
            toolMessageVisible='ToggleToolMessage;',
            currentContainerVisibility='ToggleCurrentContainerHud',
            currentFrameVisibility='ToggleCurrentFrame',
            focalLengthVisibility='ToggleFocalLength',
            hikDetailsVisibility='ToggleHikDetails',
            materialLoadingDetailsVisibility=
            'ToggleMaterialLoadingDetailsVisibility',
            particleCountVisibility='ToggleParticleCount',
            sceneTimecodeVisibility='ToggleSceneTimecode',
            # 'cameraNamesVisibility': 'ToggleCameraNames;',
            selectDetailsVisibility='ToggleSelectDetails',
            symmetryVisibility='ToggleSymmetryDisplay')
        for tgl in data:
            try:
                if cmds.optionVar(q=tgl):
                    mel.eval(data[tgl])
            except:
                pass
        try:
            if cmds.toggleAxis(q=True, o=True):
                mel.eval('ToggleOriginAxis;')
        except:
            pass
        if not pm.optionVar(q='cameraNamesVisibility'):
            mel.eval('ToggleCameraNames;')
        dfs = 'large'
        labelFontSize = 'large'
        blockSize = 'small'

        # for i in range(10):
        #     for b in range(4):
        #         cmds.headsUpDisplay(rp=[i, b])
        HUD_names = [
            'HUD_partNum', 'HUD_sceneNum', 'HUD_user', 'HUD_version',
            'HUD_frame'
        ]
        for h in HUD_names:
            try:
                pm.headsUpDisplay(h, rem=True)
            except:
                pass

        pm.headsUpDisplay('HUD_partNum',
                          section=6,
                          block=4,
                          blockSize=blockSize,
                          label='Part:',
                          dfs=dfs,
                          labelFontSize=labelFontSize,
                          command=lambda: self.part)

        pm.headsUpDisplay('HUD_sceneNum',
                          section=6,
                          block=3,
                          blockSize=blockSize,
                          label='Scene:',
                          dfs=dfs,
                          labelFontSize=labelFontSize,
                          command=lambda: self.scene)

        pm.headsUpDisplay('HUD_user',
                          section=5,
                          block=3,
                          blockSize=blockSize,
                          label='User:'******'HUD_version',
                          section=5,
                          block=4,
                          blockSize=blockSize,
                          label='ver:',
                          dfs=dfs,
                          labelFontSize=labelFontSize,
                          command=lambda: self.version,
                          atr=True)

        pm.headsUpDisplay('HUD_frame',
                          section=8,
                          block=3,
                          blockSize=blockSize,
                          label='frame:',
                          dfs=dfs,
                          labelFontSize=labelFontSize,
                          command=lambda: pm.currentTime(q=1),
                          atr=True)
    def set_huds(self, action='set', v_huds=[]):
        """Depending on the requested action, either creates and sets new HUDs
        for playblast display, or returns all HUDs to their orignal settings
        pre-playblast.

        Args:
            action (str, optional): Set or unset the HUDs. Defaults to 'set'.
            v_huds (list, optional): Empty if action is 'set'; a list of
            originally-visible HUDs if action is 'unset'. Defaults to [].

        Returns:
            list: If action is 'set', returns a list of the originally-visible
                HUDs.
        """
        huds = pm.headsUpDisplay(listHeadsUpDisplays=True)

        if action == 'set':
            v_huds = [
                f for f in huds if pm.headsUpDisplay(f, query=True, vis=True)
            ]

            # hide all visible HUDs
            map(lambda f: pm.headsUpDisplay(f, edit=True, vis=False), v_huds)

            # add required HUD
            # user name
            edit_existing_hud = 'HUDUserName' in huds

            user_data = sgtk.util.get_current_user(self.__app.sgtk)
            user_name = user_data['login']
            self.logger.info('>> user_name > {}'.format(user_name))

            pm.headsUpDisplay('HUDUserName',
                              edit=edit_existing_hud,
                              visible=True,
                              label='User: {}'.format(user_name),
                              section=8,
                              block=1,
                              blockSize='small',
                              padding=0)

            # scene name
            edit_existing_hud = 'HUDSceneName' in huds
            sh_name = cmds.file(q=True, loc=True, shn=True).rsplit('.', 1)[0]

            pm.headsUpDisplay('HUDSceneName',
                              edit=edit_existing_hud,
                              visible=True,
                              label='Shot: {}'.format(sh_name),
                              section=6,
                              block=1,
                              blockSize='small',
                              padding=0)

            # focal length
            pm.headsUpDisplay('HUDFocalLength',
                              edit=True,
                              visible=True,
                              section=3,
                              block=1,
                              blockSize='small',
                              padding=0)

            # current frame
            pm.headsUpDisplay('HUDCurrentFrame',
                              edit=True,
                              visible=True,
                              dataFontSize='large',
                              section=8,
                              block=0,
                              blockSize='small',
                              padding=0)

            # date & time
            # get the time at the point of playblast
            edit_existing_hud = 'HUDTime' in huds

            current_time = datetime.now().strftime(TIME_STR_FMT)
            pm.headsUpDisplay('HUDTime',
                              edit=edit_existing_hud,
                              visible=True,
                              label=current_time,
                              section=6,
                              block=0,
                              blockSize='small',
                              padding=0)

            return v_huds

        if action == 'unset':
            # hide the playblast-specific HUDs
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False), huds)

            # show the originally visible HUDs again
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=True),
                v_huds)
示例#29
0
def custom_hud(names):
    """TESTING"""
    pm.headsUpDisplay("Current_Camera", section = 1, block = 2, label= "position", labelFontSize = "small")
示例#30
0
 def refresh(cls):
     try:
         pm.headsUpDisplay(cls.HUD_NAME, r=1)
     except BaseException:
         Logger.warning("Failed to refresh {0}".format(cls.HUD_NAME))
示例#31
0
 def removeAll(self):
     for i in self.activesHuds:
         pm.headsUpDisplay(rid=i)
     self.activesHuds = []
示例#32
0
import pymel.core as pm

# Define a function that returns material's count
def matsCounter(*args):
    matsCount = []
    allMats = pm.ls(materials=True) # list all materials
    matsCount.append((len(allMats)-1)) # minus particle cloud material
    try:
        geo = pm.ls(selection=True)[0].getShape() # get selected shape
        mats = geo.outputs(type='shadingEngine') # get selected shape's material
        matsCount.append(len(set(mats)))
    except:
        matsCount.append("unknown")
    return matsCount

# create HUD objects
pm.headsUpDisplay( 'allMaterials',
                  labelWidth=50,
                  dataAlignment="right",
                  dataWidth=70,
                  section=0,
                  block=11,
                  label='materials:',
                  command=matsCounter,
                  event='SelectionChanged',
                  nodeChanges='attributeChange')
示例#33
0
def toggle_file_hud():
    if pm.headsUpDisplay('HUDFilename', exists=True):
        pm.headsUpDisplay('HUDFilename', rem=True)
    else:
        create_file_hud()
示例#34
0
def showFrameInfo(pl_item):
    global __camera_name__
    fps = getFrameRate()
    inOut = str(pl_item.inFrame) + ' - ' + str(pl_item.outFrame)

    def getFps():
        return fps

    def getInOut():
        return inOut

    removeFrameInfo()
    pc.headsUpDisplay(
            __hud_frame_1__, lfs='large', label='FPS:', section=6,
            block=pc.headsUpDisplay(nfb=6), blockSize='medium', dfs='large',
            command=getFps)
    pc.headsUpDisplay(
            __hud_frame_2__, lfs='large', label='IN OUT:', section=6,
            block=pc.headsUpDisplay(nfb=6), blockSize='medium', dfs='large',
            command=getInOut)
    __camera_name__ = pc.optionVar(q='cameraNamesVisibility')
    pc.Mel.eval('setCurrentFrameVisibility(1)')
    pc.headsUpDisplay(
            'HUDCurrentFrame', e=True, lfs='large', dfs='large', bs='medium')
    pc.Mel.eval('setFocalLengthVisibility(1)')
    pc.headsUpDisplay(
            'HUDFocalLength', e=True, lfs='large', dfs='large', bs='medium')
    pc.Mel.eval('setCameraNamesVisibility(1)')
    pc.headsUpDisplay(
            'HUDCameraNames', e=True, lfs='large', dfs='large', bs='medium')
示例#35
0
 def deleteHUD(self):
     if pm.headsUpDisplay('frameCounterHUD', exists=True):
         pm.headsUpDisplay('frameCounterHUD', rem=True)
     if pm.headsUpDisplay('artistNameHUD', exists=True):
         pm.headsUpDisplay('artistNameHUD', rem=True)
     if pm.headsUpDisplay('dateNameHUD', exists=True):
         pm.headsUpDisplay('dateNameHUD', rem=True)
     if pm.headsUpDisplay('cameraFocalHUD', exists=True):
         pm.headsUpDisplay('cameraFocalHUD', rem=True)
示例#36
0
def hud_parseWatchList():
	result=[]
	for hud in pm.headsUpDisplay(q=True,lh=True):
		if "HUD_cbCustom_" in hud:
			result.append( pm.PyNode( hud.split('_')[2] ) )
	return result
示例#37
0
def setHUD(name, info, version):
    name = name 
    info = info
    version = version

    pm.displayColor('headsUpDisplayLabels', 17, dormant = True)

    pm.headsUpDisplay("cycles", section = 5, block = 6, blockSize='small', label = 'Cycle:',  command = partial(getCycleName,name), dfs = 'large', lfs = 'large')
    print 1
    pm.headsUpDisplay("info", section = 5, block = 5, blockSize='small',  label = 'Info:', command = partial(getCycleInfo,info), dfs = 'large', lfs = 'large')
    print 2
    pm.headsUpDisplay("version", section = 5, block = 4,  blockSize='small',  label = 'Version:', command = partial(getCycleVersion,version), dfs = 'large', lfs = 'large')
    print 3
    pm.headsUpDisplay("animator", section = 5, block = 2,  blockSize='small', label = 'Animator:', command = partial(getAnimator), dfs = 'large', lfs = 'large')
    print 4
    pm.headsUpDisplay("frames", section = 5, block = 1, blockSize='small',  label = 'Frame:', preset = 'currentFrame', dfs = 'large', lfs = 'large')
    print 5
    pm.headsUpDisplay("date", section = 5, block = 3,  blockSize='small', label = 'Date:', command = partial(getDate), dfs = 'large', lfs = 'large')
    print 6
    pm.headsUpDisplay("cycles", edit=True, visible = True);
    pm.headsUpDisplay("info", edit=True, visible = True);
    pm.headsUpDisplay("version", edit=True, visible = True);
    pm.headsUpDisplay("frames", edit=True, visible = True);
    pm.headsUpDisplay("animator", edit=True, visible = True);
    pm.headsUpDisplay("date", edit=True, visible = True);

    print 7
示例#38
0
    def execute(self, action='', data=[], **kwargs):
        """
        Main hook entry point
        
        :action:        String
                        hud_set             -> set required HUDs
                        hud_unset           -> removed added HUDs, restoring back to original setup
                        playblast_params    -> read playblast parameters
                        create_window       -> return function to create playblast window
        """
        if action == 'hud_set':
            visibleHUDs = [
                f for f in pm.headsUpDisplay(listHeadsUpDisplays=True)
                if pm.headsUpDisplay(f, query=True, visible=True)
            ]
            # hide all visible HUDs
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False),
                visibleHUDs)

            # Add required HUD
            # User name
            editExistingHUD = 'HUDUserName' in pm.headsUpDisplay(
                listHeadsUpDisplays=True)
            pm.headsUpDisplay(
                'HUDUserName',
                edit=editExistingHUD,
                command=lambda: os.getenv("USERNAME", "unknown.user"),
                event='playblasting',
                section=1,
                block=1)
            pm.headsUpDisplay('HUDUserName',
                              edit=True,
                              visible=True,
                              label="User:"******".", 1)[0],
                              event='playblasting',
                              section=6,
                              block=1)
            pm.headsUpDisplay('HUDSceneName',
                              edit=True,
                              visible=True,
                              label="Shot:")
            # Focal length
            pm.headsUpDisplay('HUDFocalLength',
                              edit=True,
                              visible=True,
                              section=3,
                              block=1)
            pm.headsUpDisplay('HUDCurrentFrame',
                              edit=True,
                              visible=True,
                              dataFontSize="large",
                              section=8,
                              block=1)

            return visibleHUDs

        elif action == 'hud_unset':
            # restore HUD state
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False),
                pm.headsUpDisplay(listHeadsUpDisplays=True))
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=True), data)
            return None

        elif action == "playblast_params":
            PLAYBLAST_PARAMS["filename"] = data
            # include audio if available
            audioList = pm.ls(type="audio")
            if audioList:
                PLAYBLAST_PARAMS["sound"] = audioList[0]
            return PLAYBLAST_PARAMS

        elif action == "create_window":
            # setting up context window for playblast
            @contextmanager
            def createWindow():
                """ try to get data from shotgun project fields
                    need to get context's project
                                context's shotgun instance
                """
                app = self.parent
                project = app.context.project
                sg = app.context.tank.shotgun
                # set filters and search fields for entity type "Project"
                filters = [
                    ["id", "is", project['id']],
                ]
                fields = ["sg_width", "sg_height"]
                result = sg.find_one("Project", filters, fields)
                # with result, set parameters accordingly or use default otherwise
                if result:
                    videoWidth = result.get("sg_width", DEFAULT_WIDTH)
                    videoHeight = result.get("sg_height", DEFAULT_HEIGHT)

                # Find first camera matching pattern and set as active camera
                # if not use default current active camera
                camera_name_pattern = app.get_setting("camera_name_pattern",
                                                      "persp")
                cameraList = [
                    c.name() for c in pm.ls(type="camera", r=True)
                    if re.search(camera_name_pattern, c.name())
                ]
                #print cameraList
                if not "cam" in MODEL_EDITOR_PARAMS.keys() and cameraList:
                    MODEL_EDITOR_PARAMS["cam"] = cameraList[0]
                #print MODEL_EDITOR_PARAMS
                # Give Viewport 2.0 renderer only for Maya 2015++
                # mayaVersionString = cmds.about(version=True)
                # mayaVersion = int(mayaVersionString[:4]) if len(mayaVersionString) >= 4 else 0
                # if mayaVersion >= 2015:
                #     params[ "rendererName" ] = "vp2Renderer"

                # Create window
                if pm.windowPref(PLAYBLAST_WINDOW, exists=True):
                    pm.windowPref(PLAYBLAST_WINDOW, remove=True)
                window = pm.window(PLAYBLAST_WINDOW,
                                   titleBar=True,
                                   iconify=True,
                                   leftEdge=100,
                                   topEdge=100,
                                   width=videoWidth,
                                   height=videoHeight,
                                   sizeable=False)
                # Create editor area
                layout = pm.formLayout()
                editor = pm.modelEditor(**MODEL_EDITOR_PARAMS)
                pm.setFocus(editor)
                pm.formLayout(layout,
                              edit=True,
                              attachForm=((editor, "left", 0), (editor, "top",
                                                                0),
                                          (editor, "right", 0), (editor,
                                                                 "bottom", 0)))
                # Show window
                pm.setFocus(editor)
                pm.showWindow(window)
                pm.refresh()
                try:
                    yield True
                except:
                    traceback.print_exc()
                finally:
                    pm.deleteUI(window)

            return createWindow
        else:
            self._app.log_info("nothing to work on")
示例#39
0
    def execute(self, action='', data=[], **kwargs):
        """
        Main hook entry point
        
        :action:        String
                        hud_set             -> set required HUDs
                        hud_unset           -> removed added HUDs, restoring back to original setup
                        playblast_params    -> read playblast parameters
                        create_window       -> return function to create playblast window
        """
        if action == 'hud_set':
            visibleHUDs = [f for f in pm.headsUpDisplay(listHeadsUpDisplays=True)
                                   if pm.headsUpDisplay(f, query=True, visible=True)]
            # hide all visible HUDs
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False), visibleHUDs)
            
            # Add required HUD
            # User name
            editExistingHUD = 'HUDUserName' in pm.headsUpDisplay( listHeadsUpDisplays=True )
            pm.headsUpDisplay( 'HUDUserName', edit=editExistingHUD,
                               command=lambda: os.getenv("USERNAME", "unknown.user"),
                               event='playblasting', section=1, block=1 )
            pm.headsUpDisplay( 'HUDUserName', edit=True, visible=True, label="User:"******".", 1)[0],
                               event='playblasting', section=6, block=1 )
            pm.headsUpDisplay( 'HUDSceneName', edit=True, visible=True, label="Shot:" )
            # Focal length            
            pm.headsUpDisplay( 'HUDFocalLength', edit=True, visible=True, section=3, block=1 )
            pm.headsUpDisplay( 'HUDCurrentFrame', edit=True, visible=True, dataFontSize="large", section=8, block=1 )

            return visibleHUDs
            
        elif action == 'hud_unset':
            # restore HUD state
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=False), pm.headsUpDisplay(listHeadsUpDisplays=True))
            map(lambda f: pm.headsUpDisplay(f, edit=True, visible=True), data)
            return None
            
        elif action == "playblast_params":
            PLAYBLAST_PARAMS["filename"] = data
            # include audio if available
            audioList = pm.ls(type="audio")
            if audioList:
                PLAYBLAST_PARAMS["sound"] = audioList[0]
            return PLAYBLAST_PARAMS
            
        elif action == "create_window":
            # setting up context window for playblast
            @contextmanager
            def createWindow():
                """ try to get data from shotgun project fields
                    need to get context's project
                                context's shotgun instance
                """
                app = self.parent
                project = app.context.project
                sg = app.context.tank.shotgun
                # set filters and search fields for entity type "Project"
                filters=[["id", "is", project['id']],]
                fields=["sg_width", "sg_height"]
                result=sg.find_one("Project", filters, fields)
                # with result, set parameters accordingly or use default otherwise
                if result:
                    videoWidth = result.get("sg_width", DEFAULT_WIDTH)
                    videoHeight = result.get("sg_height", DEFAULT_HEIGHT)

                # Find first camera matching pattern and set as active camera
                # if not use default current active camera
                camera_name_pattern = app.get_setting( "camera_name_pattern", "persp" )
                cameraList = [c.name() for c in pm.ls(type="camera", r=True) if re.search( camera_name_pattern, c.name() )]
                if not "cam" in MODEL_EDITOR_PARAMS.keys() and cameraList:
                    MODEL_EDITOR_PARAMS["cam"] = cameraList[0]
                    
                # Give Viewport 2.0 renderer only for Maya 2015++
                # mayaVersionString = cmds.about(version=True)
                # mayaVersion = int(mayaVersionString[:4]) if len(mayaVersionString) >= 4 else 0
                # if mayaVersion >= 2015:
                #     params[ "rendererName" ] = "vp2Renderer"

                # Create window
                if pm.windowPref( PLAYBLAST_WINDOW, exists=True ):
                    pm.windowPref( PLAYBLAST_WINDOW, remove=True )
                window = pm.window( PLAYBLAST_WINDOW, titleBar=True, iconify=True,
                                      leftEdge = 100, topEdge = 100,
                                      width = videoWidth, height = videoHeight,
                                      sizeable = False)
                # Create editor area
                layout = pm.formLayout()
                editor = pm.modelEditor( **MODEL_EDITOR_PARAMS )
                pm.setFocus( editor )
                pm.formLayout( layout, edit=True,
                               attachForm = ( ( editor, "left", 0 ),
                                              ( editor, "top", 0 ),
                                              ( editor, "right", 0 ),
                                              ( editor, "bottom", 0 ) ) )
                # Show window
                pm.setFocus( editor )
                pm.showWindow( window )
                pm.refresh()
                try:
                    yield True
                except:
                    traceback.print_exc()
                finally:
                    pm.deleteUI(window)

            return createWindow
        else:
            self._app.log_info("nothing to work on")
示例#40
0
def removeNameLabel():
    if pc.headsUpDisplay(__HUD_LABEL__, exists=True):
        pc.headsUpDisplay(__HUD_LABEL__, rem=True)
    if pc.headsUpDisplay(__HUD_USERNAME__, exists=True):
        pc.headsUpDisplay(__HUD_USERNAME__, rem=True)
示例#41
0
def buildPlayblastWindow(cameras, layer, layer_number, add_float_window, renderers, is_rear_layer=True, \
                        ratio=2.387, display_elements={}):
    print 'Start to build playblasting window...'

    p_window = None
    p_editor = None
    center = cameras['center']

    try:
        p_window = pm.window(title='stereo_pb_window', w=512, h=215)
        form = pm.formLayout()
        p_editor = pm.modelEditor(displayAppearance='smoothShaded', displayTextures=True, displayLights='default')
        #print 'set basic display mode'
        # use viewport engine
        pm.modelEditor(p_editor, e=True, rnm=renderers)
        if display_elements['displayLights']:
            pm.modelEditor(p_editor, e=True, displayLights='all')
        #print 'set displayLights'
        # display elements
        for k,v in display_elements.iteritems():
            cmd = 'modelEditor -e -'+k+(' on ' if v else ' off ')+'"'+p_editor.name()+'"'
            try:
                pm.mel.eval(cmd)
                #print 'set '+k
            except:
                pass
        # turn off sortTransparent
        pm.modelEditor(p_editor, e=True, sortTransparent=False)
        #print 'turn off sortTransparent'
        # turn off color management for view port 2.0
        #if renderers=='vp2Renderer':
        #    try:
        #        pm.modelEditor(p_editor, e=True, cmEnabled=False)
        #        print 'disable color management for viewport2.0'
        #    except:
        #        pass

        column = pm.columnLayout('true')
        pm.formLayout( form, edit=True, attachForm=[(column, 'top', 0), (column, 'left', 0), (p_editor, 'top', 0), (p_editor, 'bottom', 0), (p_editor, 'right', 0)], attachNone=[(column, 'bottom'), (column, 'right')], attachControl=(p_editor, 'left', 0, column))
        pm.showWindow( p_window )
    except:
        print traceback.format_exc()

    # hud display, we disable all available hud, only show the custom value at the top right, and restore the previous hud after playblasting
    huds_current = []
    hud_stereo = 'HudStereo'
    try:
        for huds in pm.headsUpDisplay(query=True, lh=True):
            if pm.headsUpDisplay(huds, query=True, ex=True) and pm.headsUpDisplay(huds, query=True, vis=True):
                huds_current.append(huds)
                pm.headsUpDisplay(huds, edit=True, vis=False)

        if pm.headsUpDisplay(hud_stereo, query=True, ex=True):
            pm.headsUpDisplay(hud_stereo, rem=True)

        block = pm.headsUpDisplay(nfb=4)
        if layer=='near':
            block = block + 1
        elif layer=='far':
            if layer_number==2:
                block = block + 1
            elif layer_number==3:
                block = block + 2
        try:       
            pm.headsUpDisplay( hud_stereo, ao=True, section=4, block=block, padding=15, blockSize='small', blockAlignment='right', dataAlignment='right', label='', dataFontSize='large', command=pm.Callback(getCustomHUD, str(center), layer), event='timeChanged' )
            pm.headsUpDisplay( hud_stereo, refresh=True )
        except:
            print traceback.format_exc()
        try:
            pm.toggleAxis(origin=False)
            pm.viewManip(visible=False)
        except:
            print traceback.format_exc()
    except:
        for huds in huds_current:
            if pm.headsUpDisplay(huds, query=True, ex=True):
                pm.headsUpDisplay(huds, edit=True, vis=True)
        pm.modelEditor(p_editor, edit=True, hud=False)

    # create floating window if any
    safearea = None
    if add_float_window:
        try:
            safearea_inst = sa.SafeArea()
            safearea_inst.enable()
            safearea = safearea_inst.safearea
            try:
                safearea.attr('useSpReticle').set(0)
            except:
                pass
            safearea.attr('panScanDisplayMode').set(2)
            safearea.attr('panScanLineTrans').set(1)
            safearea.attr('panScanMaskTrans').set(0)
            safearea.attr('panScanRatio').set(ratio)
            safearea.attr('panScanAspectRatio').set(ratio)
        except:
            print traceback.format_exc()

    # change background color
    bgColor = None
    if not is_rear_layer:
        bgColor = makeBluescreen({}, renderers)

    # hide stereo layer
    try:
        scf.showLayer2(layer)
    except:
        print traceback.format_exc()

    # set up expression for updating hud
    if pm.headsUpDisplay(hud_stereo, query=True, ex=True) and not pm.objExists('stereoUpdateHUD'):
        pm.expression(n='stereoUpdateHUD', ae=True, s='headsUpDisplay -r '+hud_stereo)

    global stereo_pb_window
    stereo_pb_window = { 'window':p_window, 'editor':p_editor, 'safearea':safearea, 'hud_stereo':hud_stereo, \
                            'huds_current':huds_current, 'bgColor':bgColor, 'ratio':ratio}

    return stereo_pb_window
示例#42
0
 def remove(cls):
     if pm.headsUpDisplay(cls.HUD_NAME, ex=1):
         pm.headsUpDisplay(cls.HUD_NAME, rem=1)
示例#43
0
def removeDate():
    if pc.headsUpDisplay(__HUD_DATE__, exists=True):
        pc.headsUpDisplay(__HUD_DATE__, rem=True)
示例#44
0
def removeHUD():

    pm.headsUpDisplay("cycles", rem=True)
    pm.headsUpDisplay("info", rem=True)
    pm.headsUpDisplay("version", rem=True)
    pm.headsUpDisplay("frames", rem=True)
    pm.headsUpDisplay("animator", rem=True)
    pm.headsUpDisplay("date", rem=True)
示例#45
0
 def addHUDs(self):
     conf = self._conf
     for hud in conf.get('HUDs', {}):
         if pc.headsUpDisplay(hud, q=True, exists=True):
             pc.headsUpDisplay(hud, remove=True)
         pc.headsUpDisplay(hud, **conf['HUDS'][hud])
示例#46
0
 def removeHUDs(self):
     conf = self._conf
     for hud in conf.get('HUDs', []):
         if pc.headsUpDisplay(hud, q=True, exists=True):
             pc.headsUpDisplay(hud, remove=True)
示例#47
0
def hubRem():
	for hud in pm.headsUpDisplay(q=True,lh=True):
		if "HUD_cbCustom_" in hud:
			pm.headsUpDisplay(hud, rem=True)