Exemplo n.º 1
0
    def export(self, human, filename):
        import mh2mhx
        #mhxversion = []
        #if self.version24.selected: mhxversion.append('24')
        #if self.version25.selected: mhxversion.append('25')

        for (button, rig) in self.mhxRigs:
            if button.selected:
                break

        options = {
            'mhxversion': ["25"],  #mhxversion,
            'usemasks': self.mhxMasks.selected,
            'hidden': self.mhxHidden.selected,
            #'expressions':     False,    #self.mhxExpressions.selected,
            'expressionunits': self.mhxExpressionUnits.selected,
            #'faceshapes':      self.mhxFaceShapes.selected,
            'bodyshapes': self.mhxBodyShapes.selected,
            'customshapes': self.mhxCustomShapes.selected,
            #'facepanel':       self.mhxFacePanel.selected,
            'clothes': self.mhxClothes.selected,
            'cage': self.mhxCage.selected,
            'separatefolder': self.mhxSeparateFolder.selected,
            'feetonground': self.mhxFeetOnGround.selected,
            'advancedspine': self.mhxAdvancedSpine.selected,
            'malerig': self.mhxMaleRig.selected,
            'skirtrig': False,  #self.mhxSkirtRig.selected,
            'clothesrig': self.mhxClothesRig.selected,
            'mhxrig': rig,
        }

        mh2mhx.exportMhx(human, filename("mhx"), options)
Exemplo n.º 2
0
    def export(self, human, filename):
        import mh2mhx

        # mhxversion = []
        # if self.version24.selected: mhxversion.append('24')
        # if self.version25.selected: mhxversion.append('25')

        for (button, rig) in self.mhxRigs:
            if button.selected:
                break

        options = {
            "mhxversion": ["25"],  # mhxversion,
            "usemasks": self.mhxMasks.selected,
            "hidden": self.mhxHidden.selected,
            #'expressions':     False,    #self.mhxExpressions.selected,
            "expressionunits": self.mhxExpressionUnits.selected,
            #'faceshapes':      self.mhxFaceShapes.selected,
            "bodyshapes": self.mhxBodyShapes.selected,
            "customshapes": self.mhxCustomShapes.selected,
            #'facepanel':       self.mhxFacePanel.selected,
            "clothes": self.mhxClothes.selected,
            "cage": self.mhxCage.selected,
            "separatefolder": self.mhxSeparateFolder.selected,
            "feetonground": self.mhxFeetOnGround.selected,
            "advancedspine": self.mhxAdvancedSpine.selected,
            "malerig": self.mhxMaleRig.selected,
            "skirtrig": False,  # self.mhxSkirtRig.selected,
            "clothesrig": self.mhxClothesRig.selected,
            "mhxrig": rig,
        }

        mh2mhx.exportMhx(human, filename("mhx"), options)
Exemplo n.º 3
0
 def quickExport(self):
     exportPath = mh.getPath('exports')
     if not os.path.exists(exportPath):
         os.makedirs(exportPath)
     import mh2obj
     mh2obj.exportObj(self.selectedHuman.meshData, exportPath + '/quick_export.obj')
     import mh2bvh
     mh2bvh.exportSkeleton(self.selectedHuman.meshData, exportPath + '/quick_export.bvh')
     import mh2mhx
     mh2mhx.exportMhx(self.selectedHuman.meshData, exportPath + '/quick_export.mhx')
Exemplo n.º 4
0
        def onFileSelected(filename):
            
            exportPath = mh.getPath('exports')
            if not os.path.exists(exportPath):
                os.makedirs(exportPath)

            if self.wavefrontObj.selected:
                
                if self.exportEyebrows.selected and self.exportDiamonds.selected:
                    filter = None
                elif self.exportEyebrows.selected:
                    filter = lambda fg: not ('joint' in fg.name or 'helper' in fg.name)
                elif self.exportDiamonds.selected:
                    filter = lambda fg: not 'eyebrown' in fg.name
                else:
                    filter = lambda fg: not ('joint' in fg.name or 'helper' in fg.name or 'eyebrown' in fg.name)
                    
                human = gui3d.app.selectedHuman
                    
                mesh = human.getSubdivisionMesh() if self.exportSmooth.selected else human.getSeedMesh()
                
                mh2obj.exportObj(mesh,
                    os.path.join(exportPath, filename + ".obj"),
                    self.exportGroups.selected,
                    filter)
                    
                options = {
                    "helpers" : self.exportDiamonds.selected,
                    "eyebrows" : self.exportEyebrows.selected,
                    "lashes" : self.exportLashes.selected,
                    "scale": self.getScale(self.objScales),
                    "pngTexture": True, #self.exportPngTexture.selected
                }                    
                mh2obj_proxy.exportProxyObj(gui3d.app.selectedHuman, os.path.join(exportPath, filename), options)
                
                if self.exportSkeleton.selected:
                    mh2bvh.exportSkeleton(human.meshData, os.path.join(exportPath, filename + ".bvh"))
                    
                if self.exportHair.selected and human.hairObj and human.hairObj.mesh and human.hairObj.mesh.verts:
                    mesh = human.hairObj.getSubdivisionMesh() if self.exportSmooth.selected else human.hairObj.getSeedMesh()
                    mh2obj.exportObj(mesh, os.path.join(exportPath, "hair_" + filename+".obj"))
                    texturePath = os.path.join(exportPath, basename(mesh.texture))
                    if not os.path.isfile(texturePath):
                        copyfile(mesh.texture, texturePath)
                        
                texturePath = os.path.join(exportPath, basename(mesh.texture))
                if not os.path.isfile(texturePath):
                    copyfile(mesh.texture, texturePath)
                  
            elif self.mhx.selected:
                if self.mhxConfig.selected:
                    options = None
                else:
                    mhxversion = []
                    if self.version24.selected: mhxversion.append('24')
                    if self.version25.selected: mhxversion.append('25')
                    for (button, rig) in self.mhxRigs:
                        if button.selected:
                            break
                    options = {
                        'mhxversion':mhxversion,
                        'expressions':False,    #self.exportExpressions.selected,
                        'expressionunits':self.exportExpressionUnits.selected,
                        'faceshapes':self.exportFaceShapes.selected,
                        'bodyshapes':self.exportBodyShapes.selected,
                        'facepanel':self.exportFacePanel.selected,
                        'clothes':self.exportClothes.selected,
                        'cage':self.exportCage.selected,
                        'separatefolder':self.exportSeparateFolder.selected,
                        'feetonground':self.exportFeetOnGround.selected,
                        'advancedspine':self.exportAdvancedSpine.selected,
                        'malerig':self.exportMaleRig.selected,
                        'skirtrig':False, #self.exportSkirtRig.selected,
                        'clothesrig':self.exportClothesRig.selected,
                        'mhxrig': rig,
                    }

                mh2mhx.exportMhx(gui3d.app.selectedHuman, os.path.join(exportPath, filename + ".mhx"), options)
            elif self.collada.selected:
                for (button, rig) in self.daeRigs:
                    if button.selected:
                        break                
                options = {
                    "daerig": rig,
                    "rotate90X" : self.colladaRot90X.selected,
                    "rotate90Z" : self.colladaRot90Z.selected,
                    "eyebrows" : self.colladaEyebrows.selected,
                    "lashes" : self.colladaLashes.selected,
                    "helpers" : self.colladaHelpers.selected,
                    "scale": self.getScale(self.daeScales),
                    "pngTexture": True, #self.colladaPngTexture.selected
                }
                mh2collada.exportCollada(gui3d.app.selectedHuman, os.path.join(exportPath, filename), options)
            elif self.md5.selected:
                mh2md5.exportMd5(gui3d.app.selectedHuman.meshData, os.path.join(exportPath, filename + ".md5mesh"))
            elif self.stl.selected:
                mesh = gui3d.app.selectedHuman.getSubdivisionMesh() if self.exportSmooth.selected else gui3d.app.selectedHuman.meshData
                if self.stlAscii.selected:
                    mh2stl.exportStlAscii(mesh, os.path.join(exportPath, filename + ".stl"))
                else:
                    mh2stl.exportStlBinary(mesh, os.path.join(exportPath, filename + ".stl"))
            elif self.skel.selected:
                mesh = gui3d.app.selectedHuman.getSubdivisionMesh() if self.exportSmooth.selected else gui3d.app.selectedHuman.meshData
                mh2skel.exportSkel(mesh, os.path.join(exportPath, filename + ".skel"))
                    
            gui3d.app.prompt('Info', u'The mesh has been exported to %s.' % os.path.join(mh.getPath(''), u'exports'), 'OK', helpId='exportHelp')

            gui3d.app.switchCategory('Modelling')