def export( *args ): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) if not os.path.exists( path ): try: sgBFunction_fileAndPath.makeFolder( path ) except: cmds.error( '"%s" is not exist path' % path ) return None if not os.path.isdir( path ): cmds.error( '"%s" is not Directory' % path ) return None path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) startFrame = cmds.floatField( WinA_Global.fld_startFrame, q=1, v=1 ) endFrame = cmds.floatField( WinA_Global.fld_endFrame, q=1, v=1 ) step = cmds.floatField( WinA_Global.fld_step, q=1, v=1 ) exportTargets = sgBFunction_selection.getDeformedObjectsFromGroup( WinA_Cmd.getExportTargets() ) cacheTypeIndex = cmds.optionMenu( WinA_Global.om_cacheType, q=1, sl=1 )-1 pointsSpaceIndex = cmds.optionMenu( WinA_Global.om_pointsSpace, q=1, sl=1 )-1 cacheType = ['mcc', 'mcx'] pointsSpace = ['world', 'local'] if not exportTargets: cmds.error( 'Target is not exists' ) else: sgBExcute_data.exportCacheData( exportTargets, startFrame, endFrame, step, path, cacheType[cacheTypeIndex], pointsSpace[pointsSpaceIndex] )
def export( *args ): import sgBFunction_fileAndPath import sgBFunction_dag exportPath = cmds.textField( WinA_Global.txf_export, q=1, tx=1 ) minFrame = cmds.intField( WinA_Global.fld_startFrame, q=1, v=1 ) maxFrame = cmds.intField( WinA_Global.fld_endFrame, q=1, v=1 ) exportPath = exportPath.replace( '\\', '/' ) folderPath = '/'.join( exportPath.split( '/' )[-1:] ) sgBFunction_fileAndPath.makeFolder( folderPath ) sels = cmds.ls( sl=1 ) cams = [] for sel in sels: selShape = sgBFunction_dag.getShape( sel ) if cmds.nodeType( selShape ) == 'camera': cams.append( sel ) import sgBFunction_scene sgBFunction_scene.doBake( exportPath, minFrame, maxFrame ) WinA_Cmd.write_windowInfo()
def exportTransformData( targets, folderPath ): import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder( folderPath ) for target in targets: filePath = folderPath + '/' + target.split( '|' )[-1].replace( ':', '_' )+'.transformData' sgBFunction_fileAndPath.makeFile( filePath ) tx = cmds.getAttr( target+'.tx' ) ty = cmds.getAttr( target+'.ty' ) tz = cmds.getAttr( target+'.tz' ) rx = cmds.getAttr( target+'.rx' ) ry = cmds.getAttr( target+'.ry' ) rz = cmds.getAttr( target+'.rz' ) sx = cmds.getAttr( target+'.sx' ) sy = cmds.getAttr( target+'.sy' ) sz = cmds.getAttr( target+'.sz' ) values = [target, tx, ty, tz, rx, ry, rz, sx, sy, sz] f = open( filePath, 'w' ) cPickle.dump( values, f ) f.close()
def export(*args): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) if not os.path.exists(path): try: sgBFunction_fileAndPath.makeFolder(path) except: cmds.error('"%s" is not exist path' % path) return None if not os.path.isdir(path): cmds.error('"%s" is not Directory' % path) return None path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) startFrame = cmds.intField(WinA_Global.fld_startFrame, q=1, v=1) endFrame = cmds.intField(WinA_Global.fld_endFrame, q=1, v=1) exportTargets = WinA_Cmd.getExportTargets() exportByMatrix = cmds.checkBox(WinA_Global.chk_exportByMatrix, q=1, v=1) if not exportTargets: cmds.error('Target is not exists') else: sgBExcute_data.exportSgKeyData(exportTargets, startFrame, endFrame, path, exportByMatrix)
def write_windowInfo(): exportPath = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) exportType = WinA_Cmd.getExportType() searchFor = cmds.textField(WinA_Global.searchFor_txf, q=1, tx=1) searchForType = WinA_Cmd.getSearchForType() splitStringAndSearchCheck = cmds.checkBox( WinA_Global.searchForType_check, q=1, v=1) splitStringAndSearchString = cmds.textField( WinA_Global.searchForType_txf, q=1, tx=1) cacheType = cmds.optionMenu(WinA_Global.om_cacheType, q=1, sl=1) pointsSpace = cmds.optionMenu(WinA_Global.om_pointsSpace, q=1, sl=1) data = [ exportPath, exportType, searchFor, searchForType, splitStringAndSearchCheck, splitStringAndSearchString, cacheType, pointsSpace ] import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder(WinA_Global.infoFolderPath) sgBFunction_fileAndPath.makeFile(WinA_Global.infoPathPath, False) f = open(WinA_Global.infoPath, 'w') cPickle.dump(data, f) f.close() f = open(WinA_Global.infoPathPath, 'w') cPickle.dump(exportPath, f) f.close()
def exportSgKeyData( targetTransformNodes, startFrame, endFrame, step, folderPath=None, exportByMatrix=False, *args ): import sgBFunction_scene import copy if step < 0.05: cmds.error( "Step Must be larger then %.f." % step ) sgBFunction_base.autoLoadPlugin( "sgBDataCmd" ) if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgKeyDataPath() sgBFunction_fileAndPath.makeFolder( folderPath ) sgBFunction_fileAndPath.removeChildFiles( folderPath ) targetTransformNodeParents = [] for transformNode in targetTransformNodes: targetTransformNodeParents += sgBFunction_dag.getParents( transformNode ) targetTransformNodeParents.append( transformNode ) targetTransformNodeParents = list( set( targetTransformNodeParents ) ) sgBFunction_scene.exportTransformData( targetTransformNodeParents, folderPath ) cmds.sgBDataCmd_key( targetTransformNodes, se=1, folderPath= folderPath, ebm=exportByMatrix ) cuTime = copy.copy( startFrame ) while cuTime <= endFrame+1: cmds.currentTime( cuTime ) cmds.sgBDataCmd_key( write=1 ) cuTime += step cmds.sgBDataCmd_key( ee=1 )
def exportAlembicData( prefix, exportTargets, startFrame, endFrame, step, path ): import sgBFunction_base sgBFunction_base.autoLoadPlugin( 'AbcExport' ) sgBFunction_base.autoLoadPlugin( 'AbcImport' ) if prefix: prefix += '_' topTransforms = [] visValues = [] for tr in cmds.ls( tr=1 ): if cmds.listRelatives( tr, p=1 ): continue topTransforms.append( tr ) visValues.append( cmds.getAttr( tr+'.v' ) ) cmds.setAttr( tr+'.v', 0 ) sgBFunction_fileAndPath.makeFolder( path ) for target in exportTargets: target = cmds.ls( target, l=1 )[0] cmds.showHidden( target, a=1 ) targetName = target.split( '|' )[-1] filePath = path + '/' + prefix + targetName.replace( ':', '_' ) + '_s' + str( step ).replace( '.', '_' ) + '.abc' cmds.AbcExport( target, j="-frameRange %s %s -step %s -writeVisibility -uvWrite -dataFormat ogawa -root %s -file %s" %( startFrame, endFrame, step, target, filePath ) ) for tr in topTransforms: cmds.setAttr( tr+'.v', 0 ) for i in range( len( topTransforms ) ): cmds.setAttr( topTransforms[i] + '.v', visValues[i] )
def export(*args): import sgBFunction_fileAndPath import sgBFunction_dag exportPath = cmds.textField(WinA_Global.txf_export, q=1, tx=1) minFrame = cmds.intField(WinA_Global.fld_startFrame, q=1, v=1) maxFrame = cmds.intField(WinA_Global.fld_endFrame, q=1, v=1) exportPath = exportPath.replace('\\', '/') folderPath = '/'.join(exportPath.split('/')[-1:]) sgBFunction_fileAndPath.makeFolder(folderPath) sels = cmds.ls(sl=1) cams = [] for sel in sels: selShape = sgBFunction_dag.getShape(sel) if cmds.nodeType(selShape) == 'camera': cams.append(sel) import sgBFunction_scene sgBFunction_scene.doBake(exportPath, minFrame, maxFrame) WinA_Cmd.write_windowInfo()
def export( *args ): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) if not os.path.exists( path ): try: sgBFunction_fileAndPath.makeFolder( path ) except: cmds.error( '"%s" is not exist path' % path ) return None if not os.path.isdir( path ): cmds.error( '"%s" is not Directory' % path ) return None path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) startFrame = cmds.floatField( WinA_Global.fld_startFrame, q=1, v=1 ) endFrame = cmds.floatField( WinA_Global.fld_endFrame, q=1, v=1 ) step = cmds.floatField( WinA_Global.fld_step, q=1, v=1 ) exportTargets = WinA_Cmd.getExportTargets() exportByMatrix = cmds.checkBox( WinA_Global.chk_exportByMatrix, q=1, v=1 ) if not exportTargets: cmds.error( 'Target is not exists' ) else: sgBExcute_data.exportSgKeyData( exportTargets, startFrame, endFrame, step, path, exportByMatrix )
def exportSgMeshData( targetMesh, filePath=None, *args ): sgBFunction_base.autoLoadPlugin( "sgBDataCmd" ) if not filePath: filePath = sgBFunction_fileAndPath.getDefaultSgMeshDataPath() filePath = filePath.replace( '\\', '/' ) folderPath = '/'.join( filePath.split( '/' )[:-1] ) sgBFunction_fileAndPath.makeFolder( folderPath ) cmds.sgBDataCmd_mesh( targetMesh, em=1, fp=filePath ) print '"%s" export to "%s"' %( targetMesh, filePath )
def saveInfo(*args): import sgBFunction_fileAndPath import cPickle importPath = cmds.textField(WinA_Global.importPath_txf, q=1, tx=1) data = importPath sgBFunction_fileAndPath.makeFolder(WinA_Global.filePathInfo) f = open(WinA_Global.filePathInfo, 'w') cPickle.dump(data, f) f.close()
def saveInfo( *args ): import sgBFunction_fileAndPath import cPickle importPath = cmds.textField( WinA_Global.importPath_txf, q=1, tx=1 ) data = importPath sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) f = open( WinA_Global.infoPath, 'w' ) cPickle.dump( data, f ) f.close()
def exportSgMeshData(targetMesh, filePath=None, *args): sgBFunction_base.autoLoadPlugin("sgBDataCmd") if not filePath: filePath = sgBFunction_fileAndPath.getDefaultSgMeshDataPath() filePath = filePath.replace('\\', '/') folderPath = '/'.join(filePath.split('/')[:-1]) sgBFunction_fileAndPath.makeFolder(folderPath) cmds.sgBDataCmd_mesh(targetMesh, em=1, fp=filePath) print '"%s" export to "%s"' % (targetMesh, filePath)
def saveInfo( *args ): import sgBFunction_fileAndPath import cPickle importPath = cmds.textField( WinA_Global.importPath_txf, q=1, tx=1 ) importByMatrix = cmds.checkBox( WinA_Global.checkBox, q=1, v=1 ) data = [ importPath, importByMatrix ] sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) f = open( WinA_Global.infoPath, 'w' ) cPickle.dump( data, f ) f.close()
def write_windowInfo(): exportPath = cmds.textField( WinA_Global.txf_export, q=1, tx=1 ) data = exportPath import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) f = open( WinA_Global.infoFilePath, 'w' ) cPickle.dump( data, f ) f.close()
def write_windowInfo(): exportPath = cmds.textField(WinA_Global.txf_export, q=1, tx=1) data = exportPath import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder(WinA_Global.infoFolderPath) f = open(WinA_Global.infoFilePath, 'w') cPickle.dump(data, f) f.close()
def loadInfo( *args ): import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) try: f = open( WinA_Global.infoPath, 'r' ) importPath = cPickle.load( f ) f.close() cmds.textField( WinA_Global.importPath_txf, e=1, tx= importPath ) except: return None
def loadInfo(*args): import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder(WinA_Global.infoFolderPath) try: f = open(WinA_Global.infoPathPath, 'r') importPath = cPickle.load(f) f.close() cmds.textField(WinA_Global.importPath_txf, e=1, tx=importPath) except: return None
def exportSgMeshDatas( targetMeshs, folderPath = None, typ='old', *args ): sgBFunction_base.autoLoadPlugin( "sgBDataCmd" ) if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgMeshDataFolder() sgBFunction_fileAndPath.makeFolder( folderPath ) if typ == 'old': print len( targetMeshs ) for targetMesh in targetMeshs: targetMeshName = cmds.ls( targetMesh ) if not targetMeshName: continue filePath = folderPath + '/' + targetMeshName[0].replace( ':', '_' ).replace( '|', '_' ) + '.sgBData_mesh' cmds.sgBDataCmd_mesh( targetMeshName[0], em=1, fp= filePath ) else: cmds.sgBDataCmd_mesh( targetMeshs, em=1, fdp= folderPath )
def importSgKeyData( folderPath, *args ): import sgBFunction_scene import os sgBFunction_base.autoLoadPlugin( "sgBDataCmd" ) if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgKeyDataPath() sgBFunction_fileAndPath.makeFolder( folderPath ) sgBFunction_scene.importTransformData( folderPath ) for root, dirs, names in os.walk( folderPath ): for name in names: if name.split( '.' )[-1] != 'sgKeyData': continue cmds.sgBDataCmd_key( im=1, fp= root + '/' + name )
def importSgKeyData(folderPath, *args): import sgBFunction_scene import os sgBFunction_base.autoLoadPlugin("sgBDataCmd") if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgKeyDataPath() sgBFunction_fileAndPath.makeFolder(folderPath) sgBFunction_scene.importTransformData(folderPath) for root, dirs, names in os.walk(folderPath): for name in names: if name.split('.')[-1] != 'sgKeyData': continue cmds.sgBDataCmd_key(im=1, fp=root + '/' + name)
def exportSgMeshDatas(targetMeshs, folderPath=None, typ='old', *args): sgBFunction_base.autoLoadPlugin("sgBDataCmd") if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgMeshDataFolder() sgBFunction_fileAndPath.makeFolder(folderPath) if typ == 'old': print len(targetMeshs) for targetMesh in targetMeshs: targetMeshName = cmds.ls(targetMesh) if not targetMeshName: continue filePath = folderPath + '/' + targetMeshName[0].replace( ':', '_').replace('|', '_') + '.sgBData_mesh' cmds.sgBDataCmd_mesh(targetMeshName[0], em=1, fp=filePath) else: cmds.sgBDataCmd_mesh(targetMeshs, em=1, fdp=folderPath)
def export(*args): import sgBExcute_data import sgBFunction_fileAndPath import sgBFunction_scene import sgBFunction_base import cPickle sgBFunction_base.autoLoadPlugin('AbcExport') sgBFunction_base.autoLoadPlugin('AbcImport') path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) sgBFunction_fileAndPath.makeFile(WinA_Global.pathInfo, False) f = open(WinA_Global.pathInfo, 'w') cPickle.dump(path, f) f.close() if not os.path.exists(path): try: sgBFunction_fileAndPath.makeFolder(path) except: cmds.error('"%s" is not exist path' % path) return None if not os.path.isdir(path): cmds.error('"%s" is not Directory' % path) return None path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) startFrame = cmds.floatField(WinA_Global.fld_startFrame, q=1, v=1) endFrame = cmds.floatField(WinA_Global.fld_endFrame, q=1, v=1) step = cmds.floatField(WinA_Global.fld_step, q=1, v=1) exportType = WinA_Cmd.getExportType() if exportType == 0: exportTargets = cmds.ls(sl=1) elif exportType == 1: exportTargets = [] for tr in cmds.ls(tr=1): if cmds.listRelatives(tr, p=1): continue exportTargets.append(tr) if not exportTargets: cmds.error('Target is not exists') else: sgBExcute_data.exportAlembicData(sgBFunction_scene.getCutNumber(), exportTargets, startFrame, endFrame, step, path)
def buildSceneBakeInfoFile( path=None ): import sgBFunction_fileAndPath import cPickle if not path: path = sgBFunction_fileAndPath.getSceneBakeInfoPath() info = getSceneBakeInfo() path = path.replace( '\\', '/' ) folderPath = '/'.join( path.split( '/' )[:-1] ) sgBFunction_fileAndPath.makeFolder( folderPath ) f = open( path, 'w' ) cPickle.dump( info, f ) f.close() return path
def export( *args ): import sgBExcute_data import sgBFunction_fileAndPath import sgBFunction_scene import sgBFunction_base import cPickle sgBFunction_base.autoLoadPlugin( 'AbcExport' ) sgBFunction_base.autoLoadPlugin( 'AbcImport' ) path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) sgBFunction_fileAndPath.makeFile( WinA_Global.pathInfo, False ) f = open( WinA_Global.pathInfo, 'w' ) cPickle.dump( path, f ) f.close() if not os.path.exists( path ): try: sgBFunction_fileAndPath.makeFolder( path ) except: cmds.error( '"%s" is not exist path' % path ) return None if not os.path.isdir( path ): cmds.error( '"%s" is not Directory' % path ) return None path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) startFrame = cmds.floatField( WinA_Global.fld_startFrame, q=1, v=1 ) endFrame = cmds.floatField( WinA_Global.fld_endFrame, q=1, v=1 ) step = cmds.floatField( WinA_Global.fld_step, q=1, v=1 ) exportType = WinA_Cmd.getExportType() if exportType == 0: exportTargets = cmds.ls( sl=1 ) elif exportType == 1: exportTargets = [] for tr in cmds.ls( tr=1 ): if cmds.listRelatives( tr, p=1 ): continue exportTargets.append( tr ) if not exportTargets: cmds.error( 'Target is not exists' ) else: sgBExcute_data.exportAlembicData( sgBFunction_scene.getCutNumber(), exportTargets, startFrame, endFrame, step, path )
def exportSgKeyData(targetTransformNodes, startFrame, endFrame, step, folderPath=None, exportByMatrix=False, *args): import sgBFunction_scene import copy if step < 0.05: cmds.error("Step Must be larger then %.f." % step) sgBFunction_base.autoLoadPlugin("sgBDataCmd") if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultSgKeyDataPath() sgBFunction_fileAndPath.makeFolder(folderPath) sgBFunction_fileAndPath.removeChildFiles(folderPath) targetTransformNodeParents = [] for transformNode in targetTransformNodes: targetTransformNodeParents += sgBFunction_dag.getParents(transformNode) targetTransformNodeParents.append(transformNode) targetTransformNodeParents = list(set(targetTransformNodeParents)) sgBFunction_scene.exportTransformData(targetTransformNodeParents, folderPath) cmds.sgBDataCmd_key(targetTransformNodes, se=1, folderPath=folderPath, ebm=exportByMatrix) cuTime = copy.copy(startFrame) while cuTime <= endFrame + 1: cmds.currentTime(cuTime) cmds.sgBDataCmd_key(write=1) cuTime += step cmds.sgBDataCmd_key(ee=1)
def exportKeyAndCacheData( keyTransformNodes, cacheTransformNodes, keyFolderPath, cacheFolderPath, startFrame, endFrame, step, exportByMatrix=False, exportType='mcc', *args ): import maya.mel as mel import sgBFunction_selection import maya.OpenMaya as om import sgBFunction_scene sgBFunction_base.autoLoadPlugin( "sgBDataCmd" ) keyFolderPath = keyFolderPath.replace( '\\', '/' ) cacheFolderPath = cacheFolderPath.replace( '\\', '/' ) def exportKeyEachFrame( *args ): cmds.sgBDataCmd_key( write=1 ) connectedTransforms = sgBFunction_selection.getTransformConnectedObjectsFromGroup( keyTransformNodes ) deformedTransforms = sgBFunction_selection.getDeformedObjectsFromGroup( cacheTransformNodes ) if deformedTransforms and connectedTransforms: sgBFunction_fileAndPath.makeFolder( keyFolderPath ) sgBFunction_fileAndPath.makeFolder( cacheFolderPath ) targetTransformNodeParents = [] for transformNode in connectedTransforms: targetTransformNodeParents += sgBFunction_dag.getParents( transformNode ) targetTransformNodeParents.append( transformNode ) targetTransformNodeParents = list( set( targetTransformNodeParents ) ) sgBFunction_scene.exportTransformData( targetTransformNodeParents, keyFolderPath ) cmds.sgBDataCmd_key( connectedTransforms, se=1, folderPath= keyFolderPath, ebm=exportByMatrix ) callbackId = om.MEventMessage().addEventCallback( 'timeChanged', exportKeyEachFrame ) cmds.select( deformedTransforms ) mel.eval( 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","0","%s","0" };' %( startFrame, endFrame, cacheFolderPath, step, exportType ) ) om.MMessage().removeCallback( callbackId ) cmds.sgBDataCmd_key( ee=1 ) elif deformedTransforms and not connectedTransforms: exportCacheData( deformedTransforms, startFrame, endFrame, step, cacheFolderPath, exportType ) elif not deformedTransforms and connectedTransforms: exportSgKeyData( connectedTransforms, startFrame, endFrame, step, keyFolderPath, exportByMatrix )
def loadInfo( *args ): import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) print WinA_Global.infoPathPath try: f = open( WinA_Global.infoPath, 'r' ) importPath, importByMatrix = cPickle.load( f ) f.close() f = open( WinA_Global.infoPathPath, 'r' ) importPath = cPickle.load( f ) f.close() except: return None cmds.textField( WinA_Global.importPath_txf, e=1, tx= importPath ) cmds.checkBox( WinA_Global.checkBox, e=1, v=importByMatrix )
def export(*args): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) if not os.path.exists(path): try: sgBFunction_fileAndPath.makeFolder(path) except: cmds.error('"%s" is not exist path' % path) return None if not os.path.isdir(path): cmds.error('"%s" is not Directory' % path) return None path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) startFrame = cmds.floatField(WinA_Global.fld_startFrame, q=1, v=1) endFrame = cmds.floatField(WinA_Global.fld_endFrame, q=1, v=1) step = cmds.floatField(WinA_Global.fld_step, q=1, v=1) exportTargets = sgBFunction_selection.getDeformedObjectsFromGroup( WinA_Cmd.getExportTargets()) cacheTypeIndex = cmds.optionMenu(WinA_Global.om_cacheType, q=1, sl=1) - 1 pointsSpaceIndex = cmds.optionMenu( WinA_Global.om_pointsSpace, q=1, sl=1) - 1 cacheType = ['mcc', 'mcx'] pointsSpace = ['world', 'local'] if not exportTargets: cmds.error('Target is not exists') else: sgBExcute_data.exportCacheData(exportTargets, startFrame, endFrame, step, path, cacheType[cacheTypeIndex], pointsSpace[pointsSpaceIndex])
def export( *args ): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) if not os.path.exists( path ): try: print "try make folder : ", path sgBFunction_fileAndPath.makeFolder( path ) except: cmds.error( '"%s" is not exist path' % path ) return None if not os.path.isdir( path ): cmds.error( '"%s" is not Directory' % path ) return None path = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) sgBExcute_data.exportSgMeshDatas( WinA_Cmd.getExportTargets(), path )
def export(*args): import sgBExcute_data import sgBFunction_fileAndPath WinA_Cmd.write_windowInfo() path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) if not os.path.exists(path): try: print "try make folder : ", path sgBFunction_fileAndPath.makeFolder(path) except: cmds.error('"%s" is not exist path' % path) return None if not os.path.isdir(path): cmds.error('"%s" is not Directory' % path) return None path = cmds.textField(WinA_Global.exportPath_txf, q=1, tx=1) sgBExcute_data.exportSgMeshDatas(WinA_Cmd.getExportTargets(), path)
def exportCacheData( targetTransformNodes, startFrame, endFrame, step, folderPath=None, exportType='mcc', pointsSpace = 'world', *args ): import maya.mel as mel import sgBFunction_selection if step < 0.05: cmds.error( "Step Must be larger then %.f." % step ) if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultCachePath() folderPath = folderPath.replace( '\\', '/' ) sgBFunction_fileAndPath.makeFolder( folderPath ) targetTransforms = sgBFunction_selection.getDeformedObjectsFromGroup( targetTransformNodes ) cmds.select( targetTransforms ) print "exportTargets :", targetTransformNodes print "startFrame :", startFrame print "endFrame :", endFrame print "path :", folderPath print "cacheType : ", exportType print "pointsSpace :", pointsSpace print 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","1","%s" ,"%s" };' %( startFrame, endFrame, folderPath, step, exportType, int(pointsSpace=='world') ) mel.eval( 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","1","%s" ,"%s" };' %( startFrame, endFrame, folderPath, step, exportType, int(pointsSpace=='world') ) )
def write_windowInfo(): exportPath = cmds.textField( WinA_Global.exportPath_txf, q=1, tx=1 ) exportType = WinA_Cmd.getExportType() searchFor = cmds.textField( WinA_Global.searchFor_txf, q=1, tx=1 ) searchForType = WinA_Cmd.getSearchForType() splitStringAndSearchCheck = cmds.checkBox( WinA_Global.searchForType_check, q=1, v=1 ) splitStringAndSearchString = cmds.textField( WinA_Global.searchForType_txf, q=1, tx=1 ) data = [ exportPath, exportType, searchFor, searchForType, splitStringAndSearchCheck, splitStringAndSearchString ] import cPickle import sgBFunction_fileAndPath sgBFunction_fileAndPath.makeFolder( WinA_Global.infoFolderPath ) sgBFunction_fileAndPath.makeFile( WinA_Global.infoPathPath, False ) f = open( WinA_Global.infoPath, 'w' ) cPickle.dump( data, f ) f.close() f = open( WinA_Global.infoPathPath, 'w' ) cPickle.dump( exportPath, f ) f.close()
def makeUvFiles(): import sgBFunction_base sgBFunction_base.autoLoadPlugin( 'sgBDataCmd' ) import sgBModel_fileAndPath import sgBFunction_fileAndPath scenePath = cmds.file( q=1, sceneName=1 ) cmds.file( scenePath, f=1, options="v=0;", ignoreVersion=True ) folderPath = '/'.join( scenePath.split( '/' )[:-1] ) uvPath = folderPath + '/' + sgBModel_fileAndPath.cacheBodyUvFolderName sgBFunction_fileAndPath.makeFolder( uvPath ) meshs = cmds.ls( type='mesh' ) for mesh in meshs: if cmds.getAttr( mesh+'.io' ): continue meshName = mesh.replace( '|', '_' ).replace( ':', '_' ) uvFilePath = uvPath + '/' + meshName + '.sgBData_uvs' cmds.sgBDataCmd_mesh( mesh, euv=1, filePath = uvFilePath )
def exportCacheData(targetTransformNodes, startFrame, endFrame, step, folderPath=None, exportType='mcc', pointsSpace='world', *args): import maya.mel as mel import sgBFunction_selection if step < 0.05: cmds.error("Step Must be larger then %.f." % step) if not folderPath: folderPath = sgBFunction_fileAndPath.getDefaultCachePath() folderPath = folderPath.replace('\\', '/') sgBFunction_fileAndPath.makeFolder(folderPath) targetTransforms = sgBFunction_selection.getDeformedObjectsFromGroup( targetTransformNodes) cmds.select(targetTransforms) print "exportTargets :", targetTransformNodes print "startFrame :", startFrame print "endFrame :", endFrame print "path :", folderPath print "cacheType : ", exportType print "pointsSpace :", pointsSpace print 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","1","%s" ,"%s" };' % ( startFrame, endFrame, folderPath, step, exportType, int(pointsSpace == 'world')) mel.eval( 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","1","%s" ,"%s" };' % (startFrame, endFrame, folderPath, step, exportType, int(pointsSpace == 'world')))
def exportAlembicData(prefix, exportTargets, startFrame, endFrame, step, path): import sgBFunction_base sgBFunction_base.autoLoadPlugin('AbcExport') sgBFunction_base.autoLoadPlugin('AbcImport') if prefix: prefix += '_' topTransforms = [] visValues = [] for tr in cmds.ls(tr=1): if cmds.listRelatives(tr, p=1): continue topTransforms.append(tr) visValues.append(cmds.getAttr(tr + '.v')) cmds.setAttr(tr + '.v', 0) sgBFunction_fileAndPath.makeFolder(path) for target in exportTargets: target = cmds.ls(target, l=1)[0] cmds.showHidden(target, a=1) targetName = target.split('|')[-1] filePath = path + '/' + prefix + targetName.replace( ':', '_') + '_s' + str(step).replace('.', '_') + '.abc' cmds.AbcExport( target, j="-frameRange %s %s -step %s -writeVisibility -uvWrite -dataFormat ogawa -root %s -file %s" % (startFrame, endFrame, step, target, filePath)) for tr in topTransforms: cmds.setAttr(tr + '.v', 0) for i in range(len(topTransforms)): cmds.setAttr(topTransforms[i] + '.v', visValues[i])
def standalone_makeUvFiles( scenePath, launchFolder=None, *args ): import maya.mel as mel import sgBFunction_fileAndPath import sys import cPickle if not launchFolder: launchFolder = sgBFunction_fileAndPath.getDefaultStandaloneFolder() + '/thread' launchFolder = sgBFunction_fileAndPath.makeFolder( launchFolder, True ) sysPathInfo = launchFolder + "/sysPathInfo.txt" scenePathInfo = launchFolder + "/scenePathInfo.txt" f = open( sysPathInfo, 'w' ) cPickle.dump( sys.path, f ) f.close() f = open( scenePathInfo, 'w' ) f.write( scenePath ) f.close() launchPy = launchFolder + "/launch.py" doStandaloneCommand = """import maya.standalone maya.standalone.initialize( name='python' ) import sys, cPickle launchFolder = "%s" sysPathInfo = launchFolder + '/sysPathInfo.txt' scenePathInfo = launchFolder + '/scenePathInfo.txt' f = open( sysPathInfo, 'r' ) sysPath = cPickle.load( f ) f.close() for path in sysPath: if not path in sys.path: sys.path.append( path ) import sgBFunction_fileAndPath import sgBFunction_scene import os, cPickle if not os.path.exists( scenePathInfo ): cmds.warning( '%s is not exist path' ) else: f = open( scenePathInfo, 'r' ) scenePath = f.read() f.close() print "scene path ---> ", scenePath cmds.file( scenePath, f=1, o=1 ) cmds.refresh() print "current file path : ", cmds.file( q=1, sceneName=1 ) sgBFunction_scene.makeUvFiles() tempFile = sgBFunction_fileAndPath.deletePathHierarchy( launchFolder ) os.rmdir( launchFolder ) """ %( launchFolder, scenePathInfo ) f = open( launchPy, 'w' ) f.write( doStandaloneCommand ) f.close() mel.eval( 'system( "start %s %s" )' %( sgBFunction_fileAndPath.getMayaPyPath(), launchPy ) )
def exportKeyAndCacheData(keyTransformNodes, cacheTransformNodes, keyFolderPath, cacheFolderPath, startFrame, endFrame, step, exportByMatrix=False, exportType='mcc', *args): import maya.mel as mel import sgBFunction_selection import maya.OpenMaya as om import sgBFunction_scene sgBFunction_base.autoLoadPlugin("sgBDataCmd") keyFolderPath = keyFolderPath.replace('\\', '/') cacheFolderPath = cacheFolderPath.replace('\\', '/') def exportKeyEachFrame(*args): cmds.sgBDataCmd_key(write=1) connectedTransforms = sgBFunction_selection.getTransformConnectedObjectsFromGroup( keyTransformNodes) deformedTransforms = sgBFunction_selection.getDeformedObjectsFromGroup( cacheTransformNodes) if deformedTransforms and connectedTransforms: sgBFunction_fileAndPath.makeFolder(keyFolderPath) sgBFunction_fileAndPath.makeFolder(cacheFolderPath) targetTransformNodeParents = [] for transformNode in connectedTransforms: targetTransformNodeParents += sgBFunction_dag.getParents( transformNode) targetTransformNodeParents.append(transformNode) targetTransformNodeParents = list(set(targetTransformNodeParents)) sgBFunction_scene.exportTransformData(targetTransformNodeParents, keyFolderPath) cmds.sgBDataCmd_key(connectedTransforms, se=1, folderPath=keyFolderPath, ebm=exportByMatrix) callbackId = om.MEventMessage().addEventCallback( 'timeChanged', exportKeyEachFrame) cmds.select(deformedTransforms) mel.eval( 'doCreateGeometryCache 6 { "3", "%s", "%s", "OneFile", "1", "%s","1","","0", "export", "0", "%s", "1","0","0","%s","0" };' % (startFrame, endFrame, cacheFolderPath, step, exportType)) om.MMessage().removeCallback(callbackId) cmds.sgBDataCmd_key(ee=1) elif deformedTransforms and not connectedTransforms: exportCacheData(deformedTransforms, startFrame, endFrame, step, cacheFolderPath, exportType) elif not deformedTransforms and connectedTransforms: exportSgKeyData(connectedTransforms, startFrame, endFrame, step, keyFolderPath, exportByMatrix)