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()
예제 #3
0
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()
예제 #4
0
    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)
예제 #5
0
    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()
예제 #6
0
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 )
예제 #7
0
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()
예제 #9
0
    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 )
예제 #10
0
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()
예제 #13
0
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)
예제 #14
0
 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
예제 #18
0
    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
예제 #19
0
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 )
예제 #20
0
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 )
예제 #21
0
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)
예제 #22
0
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)
예제 #23
0
    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)
예제 #24
0
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 )
예제 #26
0
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)
예제 #27
0
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 )
예제 #28
0
 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 )
예제 #31
0
    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)
예제 #32
0
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()
예제 #34
0
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 )
예제 #35
0
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')))
예제 #36
0
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])
예제 #37
0
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 ) )
예제 #38
0
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)