class animLayerOps: def getNonBaseAnimationLayerNodes(self): ret= []; import maya.cmds as mc; if not self.licCheck(): False; else: import maya.cmds as mc; animLayerNodes= mc.ls(type="animLayer"); for ALN in animLayerNodes: attr= ALN+".parentLayer"; if mc.objExists(attr) and mc.listConnections(attr): ret.append(ALN); return( ret ); def mergeAnimLayers(self): import maya.cmds as mc; bakeAttrs= []; animLayers= self.getNonBaseAnimationLayerNodes(); for item in animLayers: attr= item+".dagSetMembers"; if mc.objExists(attr): cncts= mc.listConnections(attr,p=1,s=1,d=0); if cncts: for item2 in cncts: bakeAttrs.append(item2); bakeAttrs= sorted(set(bakeAttrs),key=bakeAttrs.index); if len(bakeAttrs): start= mc.playbackOptions(q=1,min=1); end= mc.playbackOptions(q=1,max=1); mc.bakeResults(bakeAttrs,t=(start,end),sm=1,mr=1); mc.delete(animLayers);