Ejemplo n.º 1
0
 def setActive(self):
     '''
     Set sound node as active on the timeSlider
     '''
     if self.isLoaded:
         gPlayBackSlider = mel.eval("string $temp=$gPlayBackSlider")
         cmds.timeControl(gPlayBackSlider, e=True, ds=1, sound=self.audioNode)
Ejemplo n.º 2
0
def load():
    '''loads animation environment'''
    print "loading animation environment presets..."
    #set autoKey
    cmds.autoKeyframe( state=True )
    #set 24fps and playback on all viewports
    cmds.playbackOptions(ps=1.0, v='all')
    #set unlimited undo's
    cmds.undoInfo( state=True, infinity=True )
    #set manipulator sizes
    if lib.checkAboveVersion(2014):
        cmds.manipOptions( r=False, hs=55, ls=4, sph=1 )
    else:
        cmds.manipOptions( r=False, hs=55, ls=4 )
    #set framerate visibility
    mel.eval("setFrameRateVisibility(1);")
    #gimbal rotation
    cmds.manipRotateContext('Rotate', e=True, mode=2)
    #world translation
    cmds.manipMoveContext('Move', e=True, mode=2)
    #time slider height
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    cmds.timeControl(aPlayBackSliderPython, h=45, e=True);
    #special tick color
    cmds.displayRGBColor("timeSliderTickDrawSpecial", 1,0.5,0)

    #check if hotkeys have been set
    if (cmds.hotkey( 't', ctl=True, query=True, name = True)== 'CharacterAnimationEditorNameCommand'):
        print "Hotkeys have been previously loaded"
    else:
        setHotkeys('default')

    print "ENVIRONMENT SET\n", #the comma forces output on the status line
Ejemplo n.º 3
0
    def load(self, context, name, namespace, data):

        start_frame = cmds.playbackOptions(query=True, min=True)
        sound_node = cmds.sound(
            file=context["representation"]["data"]["path"], offset=start_frame
        )
        cmds.timeControl(
            mel.eval("$tmpVar=$gPlayBackSlider"),
            edit=True,
            sound=sound_node,
            displaySound=True
        )

        asset = context["asset"]["name"]
        namespace = namespace or lib.unique_namespace(
            asset + "_",
            prefix="_" if asset[0].isdigit() else "",
            suffix="_",
        )

        return containerise(
            name=name,
            namespace=namespace,
            nodes=[sound_node],
            context=context,
            loader=self.__class__.__name__
        )
Ejemplo n.º 4
0
Archivo: lib.py Proyecto: ldunham1/pype
def get_time_slider_range(highlighted=True,
                          withinHighlighted=True,
                          highlightedOnly=False):
    """Return the time range from Maya's time slider.

    Arguments:
        highlighted (bool): When True if will return a selected frame range
            (if there's any selection of more than one frame!) otherwise it
            will return min and max playback time.
        withinHighlighted (bool): By default Maya returns the highlighted range
            end as a plus one value. When this is True this will be fixed by
            removing one from the last number.

    Returns:
        list: List of two floats of start and end frame numbers.

    """
    if highlighted is True:
        gPlaybackSlider = mel.eval("global string $gPlayBackSlider; "
                                   "$gPlayBackSlider = $gPlayBackSlider;")
        if cmds.timeControl(gPlaybackSlider, query=True, rangeVisible=True):
            highlightedRange = cmds.timeControl(gPlaybackSlider,
                                                query=True,
                                                rangeArray=True)
            if withinHighlighted:
                highlightedRange[-1] -= 1
            return highlightedRange
    if not highlightedOnly:
        return [cmds.playbackOptions(query=True, minTime=True),
                cmds.playbackOptions(query=True, maxTime=True)]
Ejemplo n.º 5
0
def plot():
	curves = mc.keyframe(q=1, sl=1, name=1)
	if type(curves).__name__ != 'NoneType':
		for curve in curves:
			indexes = mc.keyframe(curve, q=1, sl=1, iv=1)
			if len(indexes) != 1:
				startTime = int(mc.keyframe(curve, q=1, tc=1, index=tuple([indexes[0]]))[0])
				endTime = int(mc.keyframe(curve, q=1, tc=1, index=tuple([indexes[1]]))[0])
				mc.selectKey(cl=1)
				for point in range(startTime, endTime):
					mc.setKeyframe(curve, insert=1, time=point)
					mc.selectKey(curve, time=( (startTime+0.01), (endTime-0.01) ), add=1, k=1)
			else:
				mc.warning('Only one keyframe is selected for the curve ' + curve + '.')
	else:
		sels = mc.ls(sl=1)
		if sels:
			timeSlider = mm.eval('$tmp = $gPlayBackSlider')
			if mc.timeControl(timeSlider, q=1, rv=1) == 1:
				startTime = int(mc.timeControl(timeSlider, q=1, ra=1)[0])
				endTime = int(mc.timeControl(timeSlider, q=1, ra=1)[1])
			else:
				startTime = int(mc.playbackOptions(q=1, min=1))
				endTime = int(mc.playbackOptions(q=1, max=1))

			curves = mc.keyframe(q=1, name=1)
			for curve in curves:
				for point in range(startTime, endTime):
					mc.setKeyframe(curve, insert=1, time=point)
					mc.selectKey(curve, time=( (startTime+0.01), (endTime-0.01) ), add=1, k=1)
		else:
			mc.warning('Nothing is selected.')
Ejemplo n.º 6
0
    def setDefaultConfig(self):

        #STATIC PREFS
        # tumble config
        #cmds.tumbleCtx( 'tumbleContext', edit=True, alternateContext=True, tumbleScale=1.0, localTumble=0, autoOrthoConstrain=False, orthoLock=False)
        cmds.tumbleCtx('tumbleContext',
                       edit=True,
                       alternateContext=True,
                       tumbleScale=1.0,
                       localTumble=0)
        cmds.dollyCtx('dollyContext',
                      edit=True,
                      alternateContext=True,
                      scale=1.0,
                      localDolly=True,
                      centerOfInterestDolly=False)
        #timeline ticks display
        G.playBackSliderPython = G.playBackSliderPython or mel.eval(
            '$aTools_playBackSliderPython=$gPlayBackSlider')
        cmds.timeControl(G.playBackSliderPython,
                         edit=True,
                         showKeys="mainChannelBox",
                         showKeysCombined=True,
                         animLayerFilterOptions="active")
        #tickDrawSpecial Color
        cmds.displayRGBColor('timeSliderTickDrawSpecial', 1, 1, .4)

        #CUSTOMIZABLE PREFS
        for loopPref in PREFS:
            name = loopPref["name"]
            self.setPref(name, True)
Ejemplo n.º 7
0
def _getStartAndEnd():
    
    gPlayBackSlider = mm.eval('$temp=$gPlayBackSlider')
    if mc.timeControl(gPlayBackSlider, query=True, rangeVisible=True):
        start, end = mc.timeControl(gPlayBackSlider, query=True, rangeArray=True)
        return start, end-1
    return None, None
Ejemplo n.º 8
0
    def getActionFrameRange(self):

        playBackRange = {}

        playBackSlider = mel.eval('$tmp=$gPlayBackSlider')
        highlighted = cmds.timeControl(playBackSlider,
                                       q=True,
                                       rangeVisible=True)

        if highlighted:

            self.highlighted = True

            frameRange = cmds.timeControl(playBackSlider,
                                          q=True,
                                          rangeArray=True)

            playBackRange['start'] = int(frameRange[0])
            playBackRange['end'] = int(frameRange[1])

        else:

            playBackRange['start'] = int(cmds.playbackOptions(q=True,
                                                              min=True))
            playBackRange['end'] = int(cmds.playbackOptions(q=True, max=True))

        return playBackRange
Ejemplo n.º 9
0
    def addCallbacks(self):
        """
        Add callbacks that will clear all marker information on the timeline 
        every time a new file is created or a file is opened. It also adds 
        callback to determine if the markers are sliding.
        """
        # after new scene
        self.newID = OpenMaya.MSceneMessage.addCallback(
            OpenMaya.MSceneMessage.kAfterNew, 
            self.readFromCurrentScene
        )
        
        # after open scene
        self.openID = OpenMaya.MSceneMessage.addCallback(
            OpenMaya.MSceneMessage.kAfterOpen, 
            self.readFromCurrentScene
        )

        # timeline press callbacks
        cmds.timeControl(
            utils.getMayaTimeline(), 
            edit=True, 
            pressCommand=self.pressCommand,
            releaseCommand=self.releaseCommand,
        )
Ejemplo n.º 10
0
    def set_keys(s, info):
        """ Finally start the key setting process """

        # Get frame range we're working in
        slider = mel.eval("$tmp = $gPlayBackSlider")
        if cmds.timeControl(
                slider, q=True,
                rv=True):  # Check if we have highlighted the timeline
            Fstart, Fstop = cmds.timeControl(slider, q=True, ra=True)
        else:
            Fstart = cmds.playbackOptions(q=True, min=True)
            Fstop = cmds.playbackOptions(q=True, max=True)

        # Process data
        data = {}
        for at, ax, t1, t2 in info:
            if t1 != NONE and validate_attribute(at):
                dat = logic.process_keys(ax, Fstart, Fstop, s.data[t1],
                                         s.data[t2] if t2 != NONE else [])
                if dat:
                    data[at] = dat
                else:
                    cmds.warning(
                        "({}) :: {} has no visible keys. Could be out of frame range?"
                        .format(t1, at))
        # Set keyframes
        Helper(data)
Ejemplo n.º 11
0
    def pressCommand(self, *args):
        """
        Press callback on the timeline, this callback registers the current
        selected frames, if the user settings determine that the frame range
        is not important ( no automated shifting of markers ), no range will 
        be stored.
        """
        # variable
        timeline = utils.getMayaTimeline()

        # restore sound scrub
        cmds.timeControl(timeline, edit=True, beginScrub=True)

        # get visible range
        rangeVisible = cmds.timeControl(
            timeline,
            q=True, 
            rangeVisible=True
        )
        
        # check if range needs to be stored
        if not rangeVisible or not self.menu.moveA.isChecked():
            return

        # save range
        self._range = utils.getTimelineRange()
Ejemplo n.º 12
0
def set_in_and_out():
    updateVars()
    if cmds.timeControl(timeline_control, q=True, rangeVisible=True):
        range_array = cmds.timeControl(timeline_control,
                                       q=True,
                                       rangeArray=True)
        cmds.playbackOptions(maxTime=range_array[0], minTime=range_array[-1])
Ejemplo n.º 13
0
    def restoreSettings(self):
        '''
        restore all UI settings
        '''
        cmds.autoKeyframe(state=self.dataStore['autoKey'])

        # timeline management
        cmds.currentTime(self.dataStore['currentTime'])
        cmds.playbackOptions(min=self.dataStore['minTime'])
        cmds.playbackOptions(max=self.dataStore['maxTime'])
        cmds.playbackOptions(ast=self.dataStore['startTime'])
        cmds.playbackOptions(aet=self.dataStore['endTime'])
        cmds.playbackOptions(ps=self.dataStore['playSpeed'])
        cmds.playbackOptions(loop=self.dataStore['playLoop'])

        # unit management
        cmds.currentUnit(time=self.dataStore['timeUnit'])
        cmds.currentUnit(linear=self.dataStore['sceneUnits'])
        if not cmds.upAxis(axis=True, q=True) == self.dataStore['upAxis']:
            cmds.upAxis(axis=self.dataStore['upAxis'])

        log.debug('Restored PlayBack / Timeline setup')

        # viewport colors
        cmds.displayPref(displayGradient=self.dataStore['displayGradient'])
        cmds.displayRGBColor(resetToSaved=True)

        # objects colors
        cmds.displayColor("curve", self.dataStore['curvecolor'], dormant=True)

        # panel management
        for panel, data in self.dataStore['panelStore'].items():
            try:
                cmdString = data['settings'].replace('$editorName', panel)
                mel.eval(cmdString)
                log.debug("Restored Panel Settings Data >> %s" % panel)
                mel.eval('lookThroughModelPanel("%s","%s")' % (data['activeCam'], panel))
                log.debug("Restored Panel Active Camera Data >> %s >> cam : %s" % (panel, data['activeCam']))
            except:
                log.debug("Failed to fully Restore ActiveCamera Data >> %s >> cam : %s" % (panel, data['activeCam']))

        # camera management
        for cam, settings in self.dataStore['cameraTransforms'].items():
            try:
                cmds.setAttr('%s.translate' % cam, settings[0][0][0], settings[0][0][1], settings[0][0][2])
                cmds.setAttr('%s.rotate' % cam, settings[1][0][0], settings[1][0][1], settings[1][0][2])
                cmds.setAttr('%s.scale' % cam, settings[2][0][0], settings[2][0][1], settings[2][0][2])
                log.debug('Restored Default Camera Transform Data : % s' % cam)
            except:
                log.debug("Failed to fully Restore Default Camera Transform Data : % s" % cam)

        # sound management
        if self.dataStore['displaySound']:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=1, sound=self.dataStore['activeSound'])
            log.debug('Restored Audio setup')
        else:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=0)
        log.debug('Scene Restored fully')
        return True
Ejemplo n.º 14
0
    def doPlayblast(self, camera):
        
        G.TU_movie              = None
        G.TU_audioFile          = None
        G.TU_audioOffsetSec     = None        
        winName                 = 'playblastWindow'
        overscan                = cmds.getAttr("%s.overscan"%camera)   
        audioTrack              = cmds.timeControl(G.playBackSliderPython, query=True, sound=True)
        rangeVisible            = cmds.timeControl(G.playBackSliderPython, query=True, rangeVisible=True )  
        widthHeight             = utilMod.getRenderResolution()  
        
        if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName)
        
        window                  = cmds.window(winName, widthHeight=widthHeight)
        form                    = cmds.formLayout()
        editor                  = cmds.modelEditor()
        column                  = cmds.columnLayout('true')
        
        cmds.formLayout( form, edit=True, attachForm=[(column, 'top', 0), (column, 'left', 0), (editor, 'top', 0), (editor, 'bottom', 0), (editor, 'right', 0)], attachNone=[(column, 'bottom'), (column, 'right')], attachControl=(editor, 'left', 0, column))
        cmds.modelEditor(editor, edit=True, camera=camera, activeView=True)
        cmds.showWindow( window )
        cmds.window( winName, edit=True, topLeftCorner=(0, 0), widthHeight=[200,200])        
        utilMod.cameraViewMode(editor)        
        cmds.setAttr("%s.overscan"%camera, 1)
        
        
        if rangeVisible:
            range = animMod.getTimelineRange(float=False)
            rFrom   = range[0]
            rTo     = range[1]-1
        else:
            rFrom = cmds.playbackOptions(query=True, minTime=True)
            rTo   = cmds.playbackOptions(query=True, maxTime=True)
        

        if G.currentStudio == None:
            G.TU_movie = cmds.playblast(format="qt", sound=audioTrack, startTime=rFrom ,endTime=rTo , viewer=1, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="png", quality=70, widthHeight=widthHeight, clearCache=True)
            
        else:
            
            fps             = mel.eval("currentTimeUnitToFPS") 
            if audioTrack:
                G.TU_audioFile      = cmds.sound(audioTrack, query=True, file=True)
                audioOffset         = cmds.sound(audioTrack, query=True, offset=True)
                G.TU_audioOffsetSec = str((rFrom - audioOffset)/-fps)
                
            movieName       = cmds.playblast(format="image", startTime=rFrom ,endTime=rTo , viewer=0, showOrnaments=0, offScreen=True, fp=4, percent=50, compression="jpg", quality=70, widthHeight=widthHeight, clearCache=True)
            if movieName: 
                G.TU_movie           = "%s.%s-%s#.jpg"%(movieName.split(".")[0], int(rFrom), int(rTo))
                if audioTrack:  G.TU_audioOffsetSec = audioOffset
                self.playMovie(G.TU_movie, G.TU_audioFile, G.TU_audioOffsetSec)
            
        if cmds.window(winName, query=True, exists=True): cmds.deleteUI(winName)
        
        cmds.setAttr("%s.overscan"%camera, overscan)
        
        if not G.TU_movie: return
        save = aToolsMod.getUserPref("saveAfterPlayblasting", default=True)
        if save and not rangeVisible: cmds.file(save=True)
Ejemplo n.º 15
0
    def restoreSettings(self):
        '''
        restore all UI settings
        '''
        cmds.autoKeyframe(state=self.dataStore['autoKey'])

        # timeline management
        cmds.currentTime(self.dataStore['currentTime'])
        cmds.playbackOptions(min=self.dataStore['minTime'])
        cmds.playbackOptions(max=self.dataStore['maxTime'])
        cmds.playbackOptions(ast=self.dataStore['startTime'])
        cmds.playbackOptions(aet=self.dataStore['endTime'])
        cmds.playbackOptions(ps=self.dataStore['playSpeed'])
        cmds.playbackOptions(loop=self.dataStore['playLoop'])

        # unit management
        cmds.currentUnit(time=self.dataStore['timeUnit'])
        cmds.currentUnit(linear=self.dataStore['sceneUnits'])
        if not cmds.upAxis(axis=True, q=True) == self.dataStore['upAxis']:
            cmds.upAxis(axis=self.dataStore['upAxis'])

        log.debug('Restored PlayBack / Timeline setup')

        # viewport colors
        cmds.displayPref(displayGradient=self.dataStore['displayGradient'])
        cmds.displayRGBColor(resetToSaved=True)

        # objects colors
        cmds.displayColor("curve", self.dataStore['curvecolor'], dormant=True)

        # panel management
        for panel, data in self.dataStore['panelStore'].items():
            try:
                cmdString = data['settings'].replace('$editorName', panel)
                mel.eval(cmdString)
                log.debug("Restored Panel Settings Data >> %s" % panel)
                mel.eval('lookThroughModelPanel("%s","%s")' % (data['activeCam'], panel))
                log.debug("Restored Panel Active Camera Data >> %s >> cam : %s" % (panel, data['activeCam']))
            except:
                log.debug("Failed to fully Restore ActiveCamera Data >> %s >> cam : %s" % (panel, data['activeCam']))

        # camera management
        for cam, settings in self.dataStore['cameraTransforms'].items():
            try:
                cmds.setAttr('%s.translate' % cam, settings[0][0][0], settings[0][0][1], settings[0][0][2])
                cmds.setAttr('%s.rotate' % cam, settings[1][0][0], settings[1][0][1], settings[1][0][2])
                cmds.setAttr('%s.scale' % cam, settings[2][0][0], settings[2][0][1], settings[2][0][2])
                log.debug('Restored Default Camera Transform Data : % s' % cam)
            except:
                log.debug("Failed to fully Restore Default Camera Transform Data : % s" % cam)

        # sound management
        if self.dataStore['displaySound']:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=1, sound=self.dataStore['activeSound'])
            log.debug('Restored Audio setup')
        else:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=0)
        log.debug('Scene Restored fully')
        return True
Ejemplo n.º 16
0
def HotKey_SetUI():

	oSel = [str(o) for o in cmds.ls(sl = True, o = True)]

	# Timeline setting : Display Key Ticks to : 'selected'
	oPlayBackSlider = mel.eval('$tmpVar=$gPlayBackSlider')
	cmds.timeControl(oPlayBackSlider, edit = True, animLayerFilterOptions = 'selected')

	# ANIM camera creation
	iRecreateAnimCam = 0 # 1 = Re-create ANIM_CAM everytime. 0 = Only create when there is no cam.
	sCamName = 'ANIM_CAM'
	if iRecreateAnimCam:
		aList = ['focalLength', 'focusDistance', 'centerOfInterest', 'locatorScale', 'nearClipPlane', 'farClipPlane']

		aTransform = []
		aAttr = []
		if cmds.objExists(sCamName):
			aTransform.append(cmds.xform(sCamName, q = True, ws = True, t = True))
			aTransform.append(cmds.xform(sCamName, q = True, ws = True, ro = True))
			for a in aList:
				aAttr.append(cmds.getAttr('%sShape.%s'%(sCamName,a)))
			cmds.delete(sCamName)

		oCamera = cmds.camera()
		cmds.rename(oCamera[0], '%s'%sCamName)

		if aTransform:
			cmds.xform(sCamName, ws = True, t = aTransform[0])
			cmds.xform(sCamName, ws = True, ro = aTransform[1])

			for i, v in enumerate(aAttr):
				cmds.setAttr('%sShape.%s'%(sCamName,aList[i]),v)
	else:
		if not cmds.objExists(sCamName):
			oCamera = cmds.camera()
			cmds.rename(oCamera[0], '%s'%sCamName)


	# Visibility Layer creation
	aLayer = ['Hidden', 'NonSelect']
	aLayerSetting = [	[28,2,False, True],
						[28,2,True, False],]
	for i, a in enumerate(aLayer):
		if not cmds.objExists(a):
			cmds.createDisplayLayer(e = True, name = a)
			for v, s in enumerate(['color', 'displayType', 'visibility', 'hideOnPlayback']):
				cmds.setAttr('%s.%s'%(aLayer[i], s),aLayerSetting[i][v])


	# Set panel to custom.
	mel.eval('setNamedPanelLayout "Custom_Anim";')


	# CUSTOM TOOL - project based
	ProjectCustom_SetUI() # Custom tool for this proj

	# Selection - Back to what was selected first.
	cmds.select(oSel, r = True)
Ejemplo n.º 17
0
def toggle_audio():
    sound_enabled = cmds.timeControl(timeline_control,
                                     q=True,
                                     displaySound=True)
    cmds.timeControl(timeline_control, e=True, displaySound=not sound_enabled)
    if sound_enabled == True:
        cmds.evalDeferred('print "Sound disabled"')
    else:
        cmds.evalDeferred('print "Sound enabled"')
Ejemplo n.º 18
0
def getPlaybackRange():
	'''
	returns a 2-tuple of startTime, endTime.  The values are taken from the visible playback unless there is a time selection.
	If there is a time selection, then its range is returned instead
	'''
	if cmd.timeControl( 'timeControl1', q=True, rv=True ):  #NOTE: timeControl1 is the name of maya's default, global timeControl widget...
		return cmd.timeControl( 'timeControl1', q=True, range=True )

	return int( cmd.playbackOptions( q=True, min=True ) ), int( cmd.playbackOptions( q=True, max=True ) )
Ejemplo n.º 19
0
def _getStartAndEnd():

    gPlayBackSlider = mm.eval('$temp=$gPlayBackSlider')
    if mc.timeControl(gPlayBackSlider, query=True, rangeVisible=True):
        start, end = mc.timeControl(gPlayBackSlider,
                                    query=True,
                                    rangeArray=True)
        return start, end - 1
    return None, None
Ejemplo n.º 20
0
def getPlaybackRange():
	'''
	returns a 2-tuple of startTime, endTime.  The values are taken from the visible playback unless there is a time selection.
	If there is a time selection, then its range is returned instead
	'''
	if cmd.timeControl( 'timeControl1', q=True, rv=True ):  #NOTE: timeControl1 is the name of maya's default, global timeControl widget...
		return cmd.timeControl( 'timeControl1', q=True, range=True )

	return int( cmd.playbackOptions( q=True, min=True ) ), int( cmd.playbackOptions( q=True, max=True ) )
Ejemplo n.º 21
0
    def storeSettings(self):
        '''
        main work function, store all UI settings
        '''
        self.dataStore['autoKey'] = cmds.autoKeyframe(query=True, state=True)

        # timeline management
        self.dataStore['currentTime'] = cmds.currentTime(q=True)
        self.dataStore['minTime'] = cmds.playbackOptions(q=True, min=True)
        self.dataStore['maxTime'] = cmds.playbackOptions(q=True, max=True)
        self.dataStore['startTime'] = cmds.playbackOptions(q=True, ast=True)
        self.dataStore['endTime'] = cmds.playbackOptions(q=True, aet=True)
        self.dataStore['playSpeed'] = cmds.playbackOptions(query=True,
                                                           playbackSpeed=True)

        # unit management
        self.dataStore['timeUnit'] = cmds.currentUnit(q=True,
                                                      fullName=True,
                                                      time=True)
        self.dataStore['sceneUnits'] = cmds.currentUnit(q=True,
                                                        fullName=True,
                                                        linear=True)
        self.dataStore['upAxis'] = cmds.upAxis(q=True, axis=True)

        #panel management
        self.dataStore['panelStore'] = {}
        for panel in [
                'modelPanel1', 'modelPanel2', 'modelPanel3', 'modelPanel4'
        ]:
            if not cmds.modelPanel(panel, q=True, exists=True):
                continue
            self.dataStore['panelStore'][panel] = {}
            self.dataStore['panelStore'][panel]['settings'] = cmds.modelEditor(
                panel, q=True, sts=True)
            activeCam = cmds.modelPanel(panel, q=True, camera=True)
            if not cmds.nodeType(activeCam) == 'camera':
                activeCam = cmds.listRelatives(activeCam)[0]
            self.dataStore['panelStore'][panel]['activeCam'] = activeCam

        #camera management
        #TODO : store the camera field of view etc also
        self.dataStore['cameraTransforms'] = {}
        for cam in ['persp', 'top', 'side', 'front']:
            self.dataStore['cameraTransforms'][cam] = [
                cmds.getAttr('%s.translate' % cam),
                cmds.getAttr('%s.rotate' % cam),
                cmds.getAttr('%s.scale' % cam)
            ]

        #sound management
        self.dataStore['activeSound'] = cmds.timeControl(self.gPlayBackSlider,
                                                         q=True,
                                                         s=1)
        self.dataStore['displaySound'] = cmds.timeControl(self.gPlayBackSlider,
                                                          q=True,
                                                          ds=1)
Ejemplo n.º 22
0
def _getStartAndEnd():
    '''
    Only return start and end if frame range is highlighted. Otherwise use all available animation.
    '''

    gPlayBackSlider = mm.eval('$temp=$gPlayBackSlider')
    if mc.timeControl(gPlayBackSlider, query=True, rangeVisible=True):
        start, end = mc.timeControl(gPlayBackSlider, query=True, rangeArray=True)
        return start, end-1
    return None, None
Ejemplo n.º 23
0
def _getStartAndEnd():
    '''
    Only return start and end if frame range is highlighted. Otherwise use all available animation.
    '''

    gPlayBackSlider = mm.eval('$temp=$gPlayBackSlider')
    if mc.timeControl(gPlayBackSlider, query=True, rangeVisible=True):
        start, end = mc.timeControl(gPlayBackSlider, query=True, rangeArray=True)
        return start, end-1
    return None, None
Ejemplo n.º 24
0
    def release_command_callback(self, *args):
        """
        Release callback on the timeline, together with the press command the
        difference can be extracted and the markers can be moved accordingly.
        Theuser settings will be checked if the moving of markers is
        appropriate.
        """
        timeline_path = utils.get_timeline_path()
        cmds.timeControl(timeline_path, edit=True, endScrub=True)

        # check if markers need to be shifted
        if not self.range or not self.move.isChecked():
            return

        # get begin and end range
        start_range = self.range[:]
        end_range = utils.get_timeline_range()

        # reset stored range
        self.range = None

        # check data
        start_length = len(start_range)
        end_length = len(end_range)
        range_visible = cmds.timeControl(timeline_path,
                                         query=True,
                                         rangeVisible=True)
        if (start_length == 1 and end_length != 1) or not range_visible:
            return

        # remap frames
        matches = {
            frame: self.data[frame]
            for frame in start_range if frame in self.data
        }
        for frame, frame_data in matches.items():
            if start_length == 1:
                frame_remapped = end_range[0]
            else:
                frame_remapped = int(
                    utils.remap(frame,
                                input_min=start_range[0],
                                input_max=start_range[-1],
                                output_min=end_range[0],
                                output_max=end_range[-1]))

            # continue if frame is the same
            if frame == frame_remapped:
                continue

            # update data
            self.data[frame_remapped] = frame_data
            self.data.pop(frame, None)

        self.update()
Ejemplo n.º 25
0
def get_slider():
    aPlayBackSlider = maya.mel.eval('$tmpVar=$gPlayBackSlider')

    if not cmds.timeControl(aPlayBackSlider, query=True, rangeVisible=True):
        return cmds.warning("No range selected")

    time_slider_range = cmds.timeControl(aPlayBackSlider,
                                         query=True,
                                         rangeArray=True)
    timeline_range = tuple(time_slider_range)
    return timeline_range
Ejemplo n.º 26
0
def pin_control():
    # Rigging Dojo: 2016 v.2
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    selection = cmds.ls(sl=True)
    selectionActvive = cmds.timeControl(aPlayBackSliderPython, query=True, rangeVisible=True)
    selectedRange = cmds.timeControl(aPlayBackSliderPython, query=True, rangeArray=True)
    frameRange = range(*map(int, selectedRange))
    zeroStartKey = cmds.setKeyframe(selection, time=(selectedRange[0] - 1), id=True)  # zero the frames to base layer adjust as needed
    startTime = cmds.currentTime(selectedRange[0])  # makesure pose is from the start of the selection
    keyRange = cmds.setKeyframe(selection, time=frameRange)  # Set all the keys at the same time
    zeroEndKey = cmds.setKeyframe(selection, time=(selectedRange[1] + 1), id=True)  # zero the frames to base layer adjust as needed
Ejemplo n.º 27
0
def pin_control():
    # Rigging Dojo: 2016 v.2
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    selection = cmds.ls(sl=True)
    selectionActive = cmds.timeControl(aPlayBackSliderPython, query=True, rangeVisible=True)
    selectedRange = cmds.timeControl(aPlayBackSliderPython, query=True, rangeArray=True)
    frameRange = range(*map(int, selectedRange))
    zeroStartKey = cmds.setKeyframe(selection, time=(selectedRange[0] - 1), id=True)  # zero the frames to base layer adjust as needed
    startTime = cmds.currentTime(selectedRange[0])  # makesure pose is from the start of the selection
    keyRange = cmds.setKeyframe(selection, time=frameRange)  # Set all the keys at the same time
    zeroEndKey = cmds.setKeyframe(selection, time=(selectedRange[1] + 1), id=True)  # zero the frames to base layer adjust as needed
Ejemplo n.º 28
0
    def setTimeSlider(*args):
        mode = cmds.radioButtonGrp(UI.widgets['timeSldrRadBtn'],
                                   q=True,
                                   select=True)

        if mode == 1:
            nModeStart = cmds.textField(UI.widgets['timeSldrNrmStartTxtFld'],
                                        q=True,
                                        text=True)
            nModeEnd = cmds.textField(UI.widgets['timeSldrNrmEndTxtFld'],
                                      q=True,
                                      text=True)
            cmds.playbackOptions(minTime=nModeStart)
            cmds.playbackOptions(maxTime=nModeEnd)
            cmds.currentTime(nModeStart)
        elif mode == 2:
            tModeDur = float(
                cmds.textField(UI.widgets['timeSldrTimeDurTxtFld'],
                               q=True,
                               text=True))
            tModeStart = float(
                cmds.textField(UI.widgets['timeSldrTimeStartTxtFld'],
                               q=True,
                               text=True))
            curTime = cmds.currentUnit(q=True, time=True)
            if curTime == 'film':
                fps = 24
            elif curTime == 'pal':
                fps = 25
            elif curTime == 'ntsc':
                fps = 30
            durFrameLen = tModeDur * fps
            tModeEnd = (tModeStart + durFrameLen) - 1
            cmds.playbackOptions(minTime=tModeStart)
            cmds.playbackOptions(maxTime=tModeEnd)
            cmds.currentTime(tModeStart)
        elif mode == 3:
            mel.eval('source "updateSoundMenu.mel";')
            sModeSndPath = cmds.textField(
                UI.widgets['timeSldrSoundPathTxtFld'], q=True, text=True)
            sModeStart = int(
                cmds.textField(UI.widgets['timeSldrSoundStartTxtFld'],
                               q=True,
                               text=True))
            sndNode = cmds.sound(offset=sModeStart, file=sModeSndPath)
            soundLength = round(cmds.sound(sndNode, q=True, length=True)) - 1
            sModeEnd = sModeStart + soundLength
            cmds.playbackOptions(minTime=sModeStart)
            cmds.playbackOptions(maxTime=sModeEnd)
            cmds.currentTime(sModeStart)
            gPlayBackSlider = mel.eval('$tmpVar=$gPlayBackSlider')
            cmds.timeControl(gPlayBackSlider, edit=True, sound=sndNode)
            mel.eval('setSoundDisplay %s 1;' % (sndNode))
Ejemplo n.º 29
0
    def storeSettings(self):
        '''
        main work function, store all UI settings
        '''
        self.dataStore['autoKey'] = cmds.autoKeyframe(query=True, state=True)

        # timeline management
        self.dataStore['currentTime'] = cmds.currentTime(q=True)
        self.dataStore['minTime'] = cmds.playbackOptions(q=True, min=True)
        self.dataStore['maxTime'] = cmds.playbackOptions(q=True, max=True)
        self.dataStore['startTime'] = cmds.playbackOptions(q=True, ast=True)
        self.dataStore['endTime'] = cmds.playbackOptions(q=True, aet=True)
        self.dataStore['playSpeed'] = cmds.playbackOptions(query=True, playbackSpeed=True)
        self.dataStore['playLoop'] = cmds.playbackOptions(query=True, loop=True)

        # unit management
        self.dataStore['timeUnit'] = cmds.currentUnit(q=True, fullName=True, time=True)
        self.dataStore['sceneUnits'] = cmds.currentUnit(q=True, fullName=True, linear=True)
        self.dataStore['upAxis'] = cmds.upAxis(q=True, axis=True)

        # viewport colors
        self.dataStore['displayGradient'] = cmds.displayPref(q=True, displayGradient=True)

        # objects colors
        self.dataStore['curvecolor'] = cmds.displayColor("curve", q=True, dormant=True)

        # panel management
        self.dataStore['panelStore'] = {}
        for panel in ['modelPanel1', 'modelPanel2', 'modelPanel3', 'modelPanel4']:
            if not cmds.modelPanel(panel, q=True, exists=True):
                continue
            self.dataStore['panelStore'][panel] = {}
            self.dataStore['panelStore'][panel]['settings'] = cmds.modelEditor(panel, q=True, sts=True)
            activeCam = cmds.modelPanel(panel, q=True, camera=True)
            if not cmds.nodeType(activeCam) == 'camera':
                activeCam = cmds.listRelatives(activeCam, f=True)[0]
            self.dataStore['panelStore'][panel]['activeCam'] = activeCam

        # camera management
        # TODO : store the camera field of view etc also
        self.dataStore['cameraTransforms'] = {}
        for cam in ['persp', 'top', 'side', 'front']:
            try:
                self.dataStore['cameraTransforms'][cam] = [cmds.getAttr('%s.translate' % cam),
                                                     cmds.getAttr('%s.rotate' % cam),
                                                     cmds.getAttr('%s.scale' % cam)]
            except:
                log.debug("Camera doesn't exists : %s" % cam)

        # sound management
        self.dataStore['activeSound'] = cmds.timeControl(self.gPlayBackSlider, q=True, s=1)
        self.dataStore['displaySound'] = cmds.timeControl(self.gPlayBackSlider, q=True, ds=1)
Ejemplo n.º 30
0
    def remove_callbacks(self):
        """
        Remove the callbacks that update the time line markers every time a
        new scene is initialized or opened.
        """
        if self.callbacks:
            OpenMaya.MMessage.removeCallbacks(self.callbacks)

        timeline_path = utils.get_timeline_path()
        cmds.timeControl(timeline_path,
                         edit=True,
                         pressCommand=None,
                         releaseCommand=None)
Ejemplo n.º 31
0
    def load(self, context, name, namespace, data):
        start_frame = cmds.playbackOptions(query=True, min=True)
        sound_node = cmds.sound(
            file=context["representation"]["data"]["path"], offset=start_frame
        )
        cmds.timeControl(
            mel.eval("$tmpVar=$gPlayBackSlider"),
            edit=True,
            sound=sound_node,
            displaySound=True
        )

        return [sound_node]
Ejemplo n.º 32
0
def FaceCapImportAudio(filePath):
    dirName, fileName = ntpath.split(filePath)
    name, extension = os.path.splitext(fileName)
    audioPath = ntpath.join(dirName, name + ".wav")
    print("AudioPath:" + audioPath)

    if os.path.exists(audioPath):
        cmds.currentTime('0sec', edit=True)
        audioNode = cmds.sound(offset=0, file=audioPath)
        gPlayBackSlider = maya.mel.eval('$tmpVar=$gPlayBackSlider')
        cmds.timeControl(gPlayBackSlider, edit=True, sound=audioNode)
    else:
        print("Audio not found, load it manually.")
Ejemplo n.º 33
0
def _getTime(type):
	timeSlider = mm.eval('$tmp = $gPlayBackSlider')

	if type == 'playbackMin':
		return mc.playbackOptions(q=1, min=1)
	elif type == 'playbackMax':
		return mc.playbackOptions(q=1, max=1)
	elif type == 'rangeSelected':
		return mc.timeControl(timeSlider, q=1, rv=1)
	elif type == 'rangeMin':
		return mc.timeControl(timeSlider, q=1, ra=1)[0]
	elif type == 'rangeMax':
		return mc.timeControl(timeSlider, q=1, ra=1)[1]
Ejemplo n.º 34
0
    def restoreSettings(self):
        '''
        restore all UI settings
        '''
        cmds.autoKeyframe(state=self.dataStore['autoKey'])

        #timeline management
        cmds.currentTime(self.dataStore['currentTime'])
        cmds.playbackOptions(min=self.dataStore['minTime'])
        cmds.playbackOptions(max=self.dataStore['maxTime'])
        cmds.playbackOptions(ast=self.dataStore['startTime'])
        cmds.playbackOptions(aet=self.dataStore['endTime'])
        cmds.playbackOptions(ps=self.dataStore['playSpeed'])

        #unit management
        cmds.currentUnit(time=self.dataStore['timeUnit'])
        cmds.currentUnit(linear=self.dataStore['sceneUnits'])
        cmds.upAxis(axis=self.dataStore['upAxis'])

        log.info('Restored PlayBack / Timeline setup')

        #panel management
        for panel, data in self.dataStore['panelStore'].items():
            cmdString = data['settings'].replace('$editorName', panel)
            mel.eval(cmdString)
            log.info("Restored Panel Settings Data >> %s" % panel)
            mel.eval('lookThroughModelPanel("%s","%s")' %
                     (data['activeCam'], panel))
            log.info("Restored Panel Active Camera Data >> %s >> cam : %s" %
                     (panel, data['activeCam']))

        # camera management
        for cam, settings in self.dataStore['cameraTransforms'].items():
            cmds.setAttr('%s.translate' % cam, settings[0][0][0],
                         settings[0][0][1], settings[0][0][2])
            cmds.setAttr('%s.rotate' % cam, settings[1][0][0],
                         settings[1][0][1], settings[1][0][2])
            cmds.setAttr('%s.scale' % cam, settings[2][0][0],
                         settings[2][0][1], settings[2][0][2])
            log.info('Restored Default Camera Transform Data : % s' % cam)

        #sound management
        if self.dataStore['displaySound']:
            cmds.timeControl(self.gPlayBackSlider,
                             e=True,
                             ds=1,
                             sound=self.dataStore['activeSound'])
            log.info('Restored Audio setup')
        else:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=0)
        return True
Ejemplo n.º 35
0
def openFile():
   """
   Function to open a new wav file into the scene. 
   
   Creates a new Maya sound node and changes the timeslider to use the audio for playback while scrubbing.
   
   Prepares the wav file for reading audio data.
   
   Adjusts the UI to display the current audio parameters and progress bar for the new track.
   """
   global wavFile, params, frames
   
   #open file dialog
   fileNameList = cmds.fileDialog2(cap="Choose Audio File...", ff="*.wav", fm=4, ds=2, okc="Open")
   
   #convert result from dialog box to a useable string
   fileName = str(fileNameList[0])   
   
   #load the file name into the info text area in the UI
   cmds.text('currentAudioPath', edit=True, label="Currently Loaded: "+fileName)
   
   #delete any existing audio nodes
   if(cmds.objExists('audio')):
      cmds.select('audio')
      cmds.delete()
   
   #create a new sound node
   cmds.sound(f=fileName, n="audio")
   
   #set the 'audio' node to be the audio for the timeline.
   #--------- code from documentation starts here ------------#
   gPlayBackSlider = mel.eval( '$tmpVar=$gPlayBackSlider' )
   cmds.timeControl( gPlayBackSlider, edit=True, sound='audio', displaySound=True)
   #--------- code from documentation ends here -------------#
   
   #set the playback range to the range of the audio
   cmds.playbackOptions(min=0, aet=(cmds.getAttr('audio.duration')), max=(cmds.getAttr('audio.duration')))
   
   #------- set up the stream -------#
   wavFile = wave.open(fileName)   
   params = wavFile.getparams()   
   frames = wavFile.readframes(params[3])
   
   #update the info text with the audio parameters.
   cmds.text('currentParams', edit=True, label=str(params))
   
   #set the max of the progress bar to the number of audio frames in the selected track
   cmds.progressBar('progress', edit=True, maxValue = params[3])
   
   print "Result: ",fileName, "has been loaded."
Ejemplo n.º 36
0
def scrubbingUndo(onOff):

    G.playBackSliderPython = G.playBackSliderPython or mel.eval('$aTools_playBackSliderPython=$gPlayBackSlider')
    pc = "from maya import cmds;"
    rc = "from maya import cmds;"
    
    if not onOff:
        pc += "cmds.undoInfo(stateWithoutFlush=False); "
        rc += "cmds.undoInfo(stateWithoutFlush=True); "
    
    pc += "cmds.timeControl('%s',edit=True,beginScrub=True)"%G.playBackSliderPython
    rc += "cmds.timeControl('%s',edit=True,endScrub=True)"%G.playBackSliderPython
    
    cmds.timeControl( G.playBackSliderPython, edit=True, pressCommand=pc, releaseCommand=rc)    
Ejemplo n.º 37
0
    def ChangeTrack(self, tracksMenu, selectedTrack):
        """
        Changes from one audio node to another
        """
        # Set selected track as the audio in the playBackSlider
        cmds.timeControl(self.playBackSlider,
                         edit=True,
                         sound=selectedTrack,
                         displaySound=True)

        # Get the index of this track
        numberOfItems = cmds.optionMenu(tracksMenu, query=True, select=True)

        # Set the wav reader
        self.reader = self.readersList[numberOfItems - 1]
Ejemplo n.º 38
0
 def updateFrameRange(self, all=False):
     
     rangeVisible            = cmds.timeControl(G.playBackSliderPython, query=True, rangeVisible=True )
     
     if not rangeVisible or all:
         range = [cmds.playbackOptions(query=True, minTime=True), cmds.playbackOptions(query=True, maxTime=True)+1]
     else:            
         range = cmds.timeControl(G.playBackSliderPython, query=True, rangeArray=True)
         #range[1] -= 1            
             
     self.firstFrame         = range[0]
     self.lastFrame          = range[1]-1
     
     self.updateSortedRange()
     self.updateCameraMatrices()
Ejemplo n.º 39
0
 def setTimelineRange(self, range=None, *args):  
        
     rangeVisible            = cmds.timeControl( G.playBackSliderPython, query=True, rangeVisible=True )
     
     if not rangeVisible and not range:
         range = [cmds.playbackOptions(query=True, minTime=True), cmds.playbackOptions(query=True, maxTime=True)+1]
     
     if range or rangeVisible:
   
         if not range: range = animMod.getTimelineRange(float=False)
         rFrom   = range[0]
         rTo     = range[1]-1
         
         cmds.playbackOptions(minTime=rFrom, maxTime=rTo)
         
         
         if self.getTimelineRanges() != None: 
             ranges = eval(self.getTimelineRanges()) 
         else: 
             ranges = []
         if not range in ranges:
             ranges.append(range)     
             aToolsMod.saveInfoWithScene(STORE_NODE, RANGE_ATTR, ranges) 
             
     
     utilMod.deselectTimelineRange()
Ejemplo n.º 40
0
def parse_active_scene():
    """Parse active scene for arguments for capture()

    *Resolution taken from render settings.

    """

    time_control = mel.eval("$gPlayBackSlider = $gPlayBackSlider")

    return {
        "start_frame": cmds.playbackOptions(minTime=True, query=True),
        "end_frame": cmds.playbackOptions(maxTime=True, query=True),
        "width": cmds.getAttr("defaultResolution.width"),
        "height": cmds.getAttr("defaultResolution.height"),
        "compression": cmds.optionVar(query="playblastCompression"),
        "filename": (cmds.optionVar(query="playblastFile")
                     if cmds.optionVar(query="playblastSaveToFile") else None),
        "format": cmds.optionVar(query="playblastFormat"),
        "off_screen": (True if cmds.optionVar(query="playblastOffscreen")
                       else False),
        "show_ornaments": (True if cmds.optionVar(query="playblastShowOrnaments")
                       else False),
        "quality": cmds.optionVar(query="playblastQuality"),
        "sound": cmds.timeControl(time_control, q=True, sound=True) or None
    }
Ejemplo n.º 41
0
def cmdKeyframe(val=None):
    try:
        if val != None: offset = val
        else: offset = int(cmds.textField("animOffsetInput", q=True, tx=True))
        if not offset: return
    except:
        cmds.headsUpMessage(u'请输入有效数值:负值为向左移动,正值为向右移动', time=3)
        return

    tc = mel.eval("$tmpVar = $gPlayBackSlider;")
    sound = cmds.timeControl(tc, q=True, sound=True)
    if sound:
        cmds.setAttr(sound + ".offset",
                     cmds.getAttr(sound + ".offset") + offset)

    animCurves = []
    for ac in cmds.ls(type="animCurveTL"):
        animCurves.append(ac)
    for ac in cmds.ls(type="animCurveTA"):
        animCurves.append(ac)
    for ac in cmds.ls(type="animCurveTU"):
        animCurves.append(ac)

    if not len(animCurves): return

    cmds.progressWindow(title=u"进度", status=u"处理中...")
    cmds.progressWindow(e=True, progress=0, max=len(animCurves))

    for ac in animCurves:
        cmds.select(ac, r=True)
        cmds.keyframe(edit=True, relative=True, timeChange=offset)
        cmds.progressWindow(e=True, step=1)

    cmds.select(clear=True)
    cmds.progressWindow(endProgress=1)
Ejemplo n.º 42
0
def get_InOutFrames(type = 'Time Slider'):
    '''
    Get Frame Range from maya
    '''
    in_out = []
    if type == r"Highlighted":
        slider = mel.eval('$tmpVal=$gPlayBackSlider')
        in_out = cmds.timeControl(slider, query=True, rangeArray = True)
        in_out[1] = in_out[1]-1

    elif type == r"Start / End":
        in_out.append(cmds.playbackOptions(q=True, minTime = True))
        in_out.append(cmds.playbackOptions(q=True, maxTime = True))

    elif type == r"Time Slider":
        in_out.append(cmds.playbackOptions(q=True, animationStartTime = True))
        in_out.append(cmds.playbackOptions(q=True, animationEndTime = True))

    elif type == r"Current Frame":
        cf = cmds.currentTime(query=True)
        in_out = [cf,cf]
    else:
        start_frame = database.read_cache('frame_start')
        end_frame = database.read_cache('frame_end')
        in_out = [start_frame, end_frame]
    try:
        in_out = [str(int(val)) for val in in_out]
    except:
        pass
    return in_out
Ejemplo n.º 43
0
def qeury_active_sound_node():
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    sound = cmds.timeControl(aPlayBackSliderPython, q=1, s=1)
    if sound:
        return sound
    else:
        return None
Ejemplo n.º 44
0
def qeury_active_sound_node():
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    sound = cmds.timeControl(aPlayBackSliderPython, q=1, s=1)
    if sound:
        return sound
    else:
        return None
Ejemplo n.º 45
0
    def get_selected_range(cls):
        playback_slider = mel.eval("$tempVar = $gPlayBackSlider")
        selected_range = cmds.timeControl(playback_slider,
                                          q=True,
                                          rangeArray=True)

        return selected_range
Ejemplo n.º 46
0
def frameRange(start=None, end=None):
    '''
    Returns the frame range based on the highlighted timeslider,
    or otherwise the playback range.
    '''
    
    if not start and not end:
        gPlayBackSlider = mm.eval('$temp=$gPlayBackSlider')
        if mc.timeControl(gPlayBackSlider, query=True, rangeVisible=True):
            frameRange = mc.timeControl(gPlayBackSlider, query=True, rangeArray=True)
            return frameRange
        else:
            start = mc.playbackOptions(query=True, min=True)
            end = mc.playbackOptions(query=True, max=True)
    
    return start,end
Ejemplo n.º 47
0
def blast(*args):
    """Playblast and settings. Change to your liking."""
    fileNameLong = cmds.file(query=True, sceneName=True, shortName=True)

    if fileNameLong == "":
        fileNameLong = "untitled"
    else:
        fileNameLong = cmds.file(query=True, sceneName=True, shortName=True)

    fileNameShort = fileNameLong.split(".")

    TimeRange = mel.eval('$tmpVar=$gPlayBackSlider')
    SoundNode = cmds.timeControl(TimeRange, query=True, sound=True)

    # Disable 2D Pan & Zoom in current viewport
    activepanel = cmds.getPanel(withFocus=True)
    cam = cmds.modelEditor(activepanel, query=True, camera=True)
    # camShape = cmds.listRelatives(cam, shapes=True)[0]
    cmds.setAttr(cam + '.panZoomEnabled', False)

    if cmds.ls(renderResolutions=True):
        ResX = cmds.getAttr("defaultResolution.width")
        ResY = cmds.getAttr("defaultResolution.height")

        cmds.playblast(
            filename=("movies/" + fileNameShort[0] + ".mov"),
            forceOverwrite=True, format="qt", compression="png",
            offScreen=True, width=ResX, height=ResY, quality=100,
            percent=100, sound=SoundNode
        )
    else:
        cmds.error("No resolution data in file. \
                    Please set resolution and save.")
def channelbox_command_syncTimeline(box, menuItem, key, *args):
    with sysCmd.Undo(0):
        state = channelBox_Checkbox_Update(box, key, menuItem)
        playback_slider = mel.eval("$tmpVar=$gPlayBackSlider")  # gets timeslider name
        if state:
            cmds.timeControl(playback_slider, e=1, showKeys=box.channelbox)
            cmds.timeControl(playback_slider, e=1, showKeysCombined=1)
        else:
            cmds.timeControl(playback_slider, e=1, showKeysCombined=0)
            cmds.timeControl(playback_slider, e=1, showKeys="active")
Ejemplo n.º 49
0
def selRange():
    selRange = cmds.timeControl('timeControl1', q=True, ra=True)
    min = selRange[0]
    max = selRange[1]
    range = max - min
    if range > 1:
        return min, max
    else:
        return False
Ejemplo n.º 50
0
def getSoundInfo():
    gPlayBackSlider = mel.eval('$tmpVar=$gPlayBackSlider')  # seriously maya?
    sound = cmds.timeControl(gPlayBackSlider, q=True, sound=True)
    if sound:
        soundfile = cmds.sound(sound, q=True, file=True)
        soundOffset = cmds.getAttr('%s.offset' % sound)
        return str(soundfile), soundOffset
    else:
        return None, None
Ejemplo n.º 51
0
 def smartSnapKeys(self):
     
     rangeVisible            = cmds.timeControl( G.playBackSliderPython, query=True, rangeVisible=True )
     
     if not rangeVisible: return        
     
     cmds.undoInfo(stateWithoutFlush=False)
     commandsMod.smartSnapKeys()
     cmds.undoInfo(stateWithoutFlush=True)
Ejemplo n.º 52
0
def playback_selection_range():
    aPlayBackSliderPython = mel.eval('$tmpVar=$gPlayBackSlider')
    time_selection = cmds.timeControl( aPlayBackSliderPython, q=True,rng=True )[1:-1]
    start = round(float(time_selection.split(":")[0]))
    end = round(float(time_selection.split(":")[1]))
    
    if start+1 == end:
        return None
    else:
        return [start, end]    
Ejemplo n.º 53
0
    def restoreSettings(self):
        '''
        restore all UI settings
        '''
        cmds.autoKeyframe(state=self.dataStore['autoKey'])
        
        #timeline management
        cmds.currentTime(self.dataStore['currentTime'])
        cmds.playbackOptions(min=self.dataStore['minTime'])
        cmds.playbackOptions(max=self.dataStore['maxTime'])
        cmds.playbackOptions(ast=self.dataStore['startTime'])
        cmds.playbackOptions(aet=self.dataStore['endTime'])
        cmds.playbackOptions(ps=self.dataStore['playSpeed'])
        
        #unit management
        cmds.currentUnit(time=self.dataStore['timeUnit'])
        cmds.currentUnit(linear=self.dataStore['sceneUnits'])
        cmds.upAxis(axis=self.dataStore['upAxis'])
        
        log.info('Restored PlayBack / Timeline setup')
        
        #panel management
        for panel, data in self.dataStore['panelStore'].items():
            cmdString = data['settings'].replace('$editorName', panel)
            mel.eval(cmdString)
            log.info("Restored Panel Settings Data >> %s" % panel)
            mel.eval('lookThroughModelPanel("%s","%s")' % (data['activeCam'], panel))
            log.info("Restored Panel Active Camera Data >> %s >> cam : %s" % (panel, data['activeCam']))
            
        # camera management
        for cam, settings in self.dataStore['cameraTransforms'].items():
            cmds.setAttr('%s.translate' % cam, settings[0][0][0], settings[0][0][1], settings[0][0][2])
            cmds.setAttr('%s.rotate' % cam, settings[1][0][0], settings[1][0][1], settings[1][0][2])
            cmds.setAttr('%s.scale' % cam, settings[2][0][0], settings[2][0][1], settings[2][0][2])
            log.info('Restored Default Camera Transform Data : % s' % cam)

        #sound management
        if self.dataStore['displaySound']:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=1, sound=self.dataStore['activeSound'])
            log.info('Restored Audio setup')
        else:
            cmds.timeControl(self.gPlayBackSlider, e=True, ds=0)
        return True
Ejemplo n.º 54
0
 def setDefaultConfig(self):
     
     #STATIC PREFS
     # tumble config
     #cmds.tumbleCtx( 'tumbleContext', edit=True, alternateContext=True, tumbleScale=1.0, localTumble=0, autoOrthoConstrain=False, orthoLock=False)
     cmds.tumbleCtx( 'tumbleContext', edit=True, alternateContext=True, tumbleScale=1.0, localTumble=0)
     cmds.dollyCtx( 'dollyContext', edit=True, alternateContext=True, scale=1.0, localDolly=True, centerOfInterestDolly=False)
     #timeline ticks display
     G.playBackSliderPython  = G.playBackSliderPython or mel.eval('$aTools_playBackSliderPython=$gPlayBackSlider')
     cmds.timeControl(G.playBackSliderPython, edit=True, showKeys="mainChannelBox", showKeysCombined=True, animLayerFilterOptions="active") 
     #tickDrawSpecial Color
     cmds.displayRGBColor('timeSliderTickDrawSpecial',1,1,.4)
     
     
     
     #CUSTOMIZABLE PREFS
     for loopPref in PREFS:
         name    = loopPref["name"]
         self.setPref(name, True)
Ejemplo n.º 55
0
def getTimelineRange(float=True):

    # if G.lastCurrentFrame == cmds.currentTime(query=True): return G.lastRange

    G.playBackSliderPython = G.playBackSliderPython or mel.eval("$aTools_playBackSliderPython=$gPlayBackSlider")
    range = cmds.timeControl(G.playBackSliderPython, query=True, rangeArray=True)
    if float:
        range[1] -= 0.0001
    # G.lastRange        = range
    # G.lastCurrentFrame = cmds.currentTime(query=True)

    return range
Ejemplo n.º 56
0
 def selRange(self):
     # overide range if selected range is detected
     sel = cmds.timeControl('timeControl1', q=True, ra=True)
     self.range = sel[1] - sel[0]
     # print range, '  range'
     if self.range > 1:
         print self.range, '_____range'
         self.selStart = sel[0]
         self.selEnd = sel[1]
         self.keyStart = sel[0]
         self.keyEnd = sel[1]
         self.selection = True
Ejemplo n.º 57
0
def get_current_sound():
    
    playback_slider = mel.eval('$tmpVar = $gPlayBackSlider')
    if not playback_slider:
        print '# Could not get gPlayBackSlider'
        return
    
    sound_node = cmds.timeControl(playback_slider, query=True, sound=True)
    if not sound_node:
        cmds.warning('No sound node.')
        return
    
    return cmds.sound(sound_node, query=True, file=True)
Ejemplo n.º 58
0
    def getActionFrameRange(self):

        playBackRange = {}

        playBackSlider = mel.eval('$tmp=$gPlayBackSlider')
        highlighted = cmds.timeControl(playBackSlider, q=True, rangeVisible=True)

        if highlighted:

            self.highlighted = True

            frameRange = cmds.timeControl(playBackSlider, q=True, rangeArray=True)

            playBackRange['start'] = int(frameRange[0])
            playBackRange['end'] = int(frameRange[1])

        else:

            playBackRange['start'] = int(cmds.playbackOptions(q=True, min=True))
            playBackRange['end'] = int(cmds.playbackOptions(q=True, max=True))

        return playBackRange