コード例 #1
2
ファイル: commandsMod.py プロジェクト: Italic-/maya-prefs
def setSmartKey(time=None, animCurves=None, select=True, insert=True, replace=True, addTo=False):
    
    if not time: time   = animMod.getTimelineTime()    
    getFrom             = "timeline"
    
    if not animCurves:
        getCurves  = animMod.getAnimCurves()
        animCurves = getCurves[0]
        getFrom    = getCurves[1]
    
    
    if animCurves and getFrom != "timeline": 
        cmds.setKeyframe(animCurves, time=time, insert=insert)
        if select: cmds.selectKey(animCurves, replace=replace, addTo=addTo, time=time)
        
    else:
        objects = animMod.getObjsSel()
        if objects:
            
            channelboxSelObjs = animMod.channelBoxSel()
            if channelboxSelObjs:
                #objsAttrs     = ["%s.%s"%(loopObj, loopChannelboxSel) for loopObj in objects for loopChannelboxSel in channelboxSel]
                         
                #key selected attributes in the channelbox
                for n, loopObjAttr in enumerate(channelboxSelObjs):
                    prevKey       = cmds.findKeyframe(loopObjAttr, time=(time,time), which="previous")
                    tangentType   = cmds.keyTangent(loopObjAttr, query=True, outTangentType=True, time=(prevKey,prevKey)) 
               
                    if not tangentType: #if there is no key 
                        tangentType = cmds.keyTangent(query=True, g=True, outTangentType=True)
                        inTangentType  = tangentType[0].replace("fixed", "auto").replace("step", "auto")
                        outTangentType = tangentType[0].replace("fixed", "auto")
                        cmds.setKeyframe(loopObjAttr, time=time, insert=False, shape=False, inTangentType=inTangentType, outTangentType=outTangentType)
                        continue
                    
                    inTangentType  = tangentType[0].replace("fixed", "auto").replace("step", "auto")
                    outTangentType = tangentType[0].replace("fixed", "auto")
                
                    cmds.setKeyframe(loopObjAttr, time=time, insert=insert, shape=False, inTangentType=inTangentType, outTangentType=outTangentType)
                    
            else:
                #allChannels   = animMod.getAllChannels(objects)
                #objAttrs      = ["%s.%s"%(objects[n], loopAttr) for n, loopObj in enumerate(allChannels) for loopAttr in loopObj]
                prevKeys      = [cmds.findKeyframe(obj, time=(time,time), which="previous") for obj in objects]
                tangentTypes  = [cmds.keyTangent(obj, query=True, outTangentType=True, time=(prevKeys[n],prevKeys[n])) for n, obj in enumerate(objects)]
                #prevKeys      = [cmds.findKeyframe(obj, time=(time,time), which="previous") for obj in objAttrs]
                #tangentTypes  = [cmds.keyTangent(obj, query=True, outTangentType=True, time=(prevKeys[n],prevKeys[n])) for n, obj in enumerate(objAttrs)]
                #key all atributes
                cmds.setKeyframe(objects, time=time, insert=insert, shape=False) 
                #cmds.setKeyframe(objAttrs, time=time, insert=insert, shape=False)    
                            
                if insert: #will force create key if there is no key
                    for n, loopTangent in enumerate(tangentTypes):
                        if not loopTangent:
                            cmds.setKeyframe(objects[n], time=time, insert=False, shape=False)
コード例 #2
0
ファイル: mirror.py プロジェクト: jubeyjose/maya-prefs
    def unselectMirrorObjs(self, side):
        objects = animMod.getObjsSel()

        if side == "center":
            objs = animMod.getMirrorObjs(objects, side="left")
            objects.extend(objs)
            objs.extend(animMod.getMirrorObjs(objects, side="right"))
            objects.extend(objs)
            objs.extend(animMod.getMirrorObjs(objects, side="left"))

            centerObjs = [
                loopObj for loopObj in objects
                if loopObj not in objs and loopObj and cmds.objExists(loopObj)
            ]

            if len(centerObjs) > 0: cmds.select(centerObjs, deselect=True)
        else:
            if side == "left": side = "right"
            elif side == "right": side = "left"
            objs = animMod.getMirrorObjs(objects, side=side)
            objs = [
                loopObj for loopObj in objs
                if loopObj and cmds.objExists(loopObj)
            ]

            if len(objs) > 0: cmds.select(objs, deselect=True)
コード例 #3
0
    def getDataFromFiles(self, animAttr, folder, infoFiles, fileModTime, ext, progressInfo, onlySelectedNodes):
        currSel             = animMod.getObjsSel()
        data                = {"data":[], "modTime":None}
        infoFileModTimeList = []
        startChrono, firstStep, thisStep, totalSteps, estimatedTime, status = progressInfo
        initialStep         = thisStep
        
        for n, loopFile in enumerate(infoFiles): 
            if cmds.progressBar(G.progBar, query=True, isCancelled=True ):  
                utilMod.setProgressBar(endProgress=True)
                return
            
            thisStep        = n+initialStep
            startChrono     = utilMod.chronoStart(startChrono, firstStep, thisStep, totalSteps, estimatedTime, status)  
                      
            infoFileStr     = loopFile.replace(":", "_aTools_")[0:-(len(ext)+1)]
            infoFilePath    = aToolsMod.getSaveFilePath("%s%s%s"%(folder, os.sep, infoFileStr), ext=ext)
            infoFileModTimeList.append(os.path.getmtime(infoFilePath))
            
            if infoFileModTimeList[-1] > fileModTime: #load only what is newer
                object          = loopFile.replace("_aTools_", ":")[0:-(len(ext)+1)]
                value           = aToolsMod.loadFileWithUser(folder, infoFileStr, ext=ext)
            
                if onlySelectedNodes:
                    if animAttr == "anim":
                        obj = value["objects"][0]
                    else:  
                        obj = object.split(".")[0]

                    if obj not in currSel: continue           
            
            
                data["data"].append({"_modTime":infoFileModTimeList[-1],"object":object, "value":value})
            
            estimatedTime = utilMod.chronoEnd(startChrono, firstStep, thisStep, totalSteps)
            
        #file mod date
        data["data"].sort() #sort newer files last
        if len(infoFileModTimeList) > 0:
            data["modTime"] = max(infoFileModTimeList)
        
        progressInfo = [startChrono, firstStep, thisStep, totalSteps, estimatedTime, status]
        #blend animation data=================
        
        return [data, progressInfo]
コード例 #4
0
ファイル: mirror.py プロジェクト: jubeyjose/maya-prefs
    def selectMirrorObjs(self, add, lastObj=None):
        objects = animMod.getObjsSel()
        mirrorObjs = animMod.getMirrorObjs(objects)
        sel = []

        if mirrorObjs:
            for n, loopObj in enumerate(mirrorObjs):
                if loopObj:
                    if cmds.objExists(loopObj): sel.append(loopObj)
                else:
                    #central controller
                    sel.append(objects[n])

        if len(sel) > 0:

            if lastObj:
                cmds.select(sel, addFirst=add)
            else:
                cmds.select(sel, add=add)
コード例 #5
0
ファイル: mirror.py プロジェクト: Italic-/maya-prefs
 def selectMirrorObjs(self, add, lastObj=None):   
     objects     = animMod.getObjsSel()
     mirrorObjs  = animMod.getMirrorObjs(objects)     
     sel         = []
     
     if mirrorObjs: 
         for n, loopObj in enumerate(mirrorObjs):
             if loopObj:
                 if cmds.objExists(loopObj): sel.append(loopObj)
             else:
                 #central controller
                 sel.append(objects[n])
     
     if len(sel) >0:
     
         if lastObj:
             cmds.select(sel, addFirst=add)
         else:
             cmds.select(sel, add=add)
コード例 #6
0
ファイル: mirror.py プロジェクト: Italic-/maya-prefs
    def unselectMirrorObjs(self, side):
        objects     = animMod.getObjsSel()
        
        if side == "center":
            objs  =   animMod.getMirrorObjs(objects, side="left")
            objects.extend(objs)
            objs.extend(animMod.getMirrorObjs(objects, side="right")) 
            objects.extend(objs)
            objs.extend(animMod.getMirrorObjs(objects, side="left")) 
            
            centerObjs = [loopObj for loopObj in objects if loopObj not in objs and loopObj and cmds.objExists(loopObj)]

            if len(centerObjs) >0: cmds.select(centerObjs, deselect=True)
        else:
            if side == "left": side = "right"
            elif side == "right": side = "left"
            objs = animMod.getMirrorObjs(objects, side=side) 
            objs = [loopObj for loopObj in objs if loopObj and cmds.objExists(loopObj)]
        
            if len(objs) > 0: cmds.select(objs, deselect=True)
コード例 #7
0
ファイル: commandsMod.py プロジェクト: jubeyjose/maya-prefs
def setSmartKey(time=None,
                animCurves=None,
                select=True,
                insert=True,
                replace=True,
                addTo=False):

    if not time: time = animMod.getTimelineTime()
    getFrom = "timeline"

    if not animCurves:
        getCurves = animMod.getAnimCurves()
        animCurves = getCurves[0]
        getFrom = getCurves[1]

    if animCurves and getFrom != "timeline":
        cmds.setKeyframe(animCurves, time=time, insert=insert)
        if select:
            cmds.selectKey(animCurves, replace=replace, addTo=addTo, time=time)

    else:
        objects = animMod.getObjsSel()
        if objects:

            channelboxSelObjs = animMod.channelBoxSel()
            if channelboxSelObjs:
                #objsAttrs     = ["%s.%s"%(loopObj, loopChannelboxSel) for loopObj in objects for loopChannelboxSel in channelboxSel]

                #key selected attributes in the channelbox
                for n, loopObjAttr in enumerate(channelboxSelObjs):
                    prevKey = cmds.findKeyframe(loopObjAttr,
                                                time=(time, time),
                                                which="previous")
                    tangentType = cmds.keyTangent(loopObjAttr,
                                                  query=True,
                                                  outTangentType=True,
                                                  time=(prevKey, prevKey))

                    if not tangentType:  #if there is no key
                        tangentType = cmds.keyTangent(query=True,
                                                      g=True,
                                                      outTangentType=True)
                        inTangentType = tangentType[0].replace(
                            "fixed", "auto").replace("step", "auto")
                        outTangentType = tangentType[0].replace(
                            "fixed", "auto")
                        cmds.setKeyframe(loopObjAttr,
                                         time=time,
                                         insert=False,
                                         shape=False,
                                         inTangentType=inTangentType,
                                         outTangentType=outTangentType)
                        continue

                    inTangentType = tangentType[0].replace("fixed",
                                                           "auto").replace(
                                                               "step", "auto")
                    outTangentType = tangentType[0].replace("fixed", "auto")

                    cmds.setKeyframe(loopObjAttr,
                                     time=time,
                                     insert=insert,
                                     shape=False,
                                     inTangentType=inTangentType,
                                     outTangentType=outTangentType)

            else:
                #allChannels   = animMod.getAllChannels(objects)
                #objAttrs      = ["%s.%s"%(objects[n], loopAttr) for n, loopObj in enumerate(allChannels) for loopAttr in loopObj]
                prevKeys = [
                    cmds.findKeyframe(obj, time=(time, time), which="previous")
                    for obj in objects
                ]
                tangentTypes = [
                    cmds.keyTangent(obj,
                                    query=True,
                                    outTangentType=True,
                                    time=(prevKeys[n], prevKeys[n]))
                    for n, obj in enumerate(objects)
                ]
                #prevKeys      = [cmds.findKeyframe(obj, time=(time,time), which="previous") for obj in objAttrs]
                #tangentTypes  = [cmds.keyTangent(obj, query=True, outTangentType=True, time=(prevKeys[n],prevKeys[n])) for n, obj in enumerate(objAttrs)]
                #key all atributes
                cmds.setKeyframe(objects,
                                 time=time,
                                 insert=insert,
                                 shape=False)
                #cmds.setKeyframe(objAttrs, time=time, insert=insert, shape=False)

                if insert:  #will force create key if there is no key
                    for n, loopTangent in enumerate(tangentTypes):
                        if not loopTangent:
                            cmds.setKeyframe(objects[n],
                                             time=time,
                                             insert=False,
                                             shape=False)