Пример #1
0
def getMeshInfo(obj, proxy, rawWeights, rawShapes, rigname):
    if proxy:
        verts = []
        vnormals = []
        for bary in proxy.realVerts:
            v = proxyCoord(bary)
            verts.append(v)
            vnormals.append(v)

        faces = []
        if proxy.texVerts:
            texVerts = proxy.texVertsLayers[proxy.objFileLayer]
            texFaces = proxy.texFacesLayers[proxy.objFileLayer]        
            fn = 0
            for (f,g) in proxy.faces:
                texFace = texFaces[fn]
                face = []
                for (vn,v) in enumerate(f):
                    face.append((v, texFace[vn]))
                faces.append(face)
                fn += 1
        else:
            faces = proxy.faces

        weights = getProxyWeights(rawWeights, proxy)
        shapes = getProxyShapes(rawShapes, proxy.verts)
        return (verts, vnormals, proxy.texVerts, faces, weights, shapes)
    else:
        verts = []
        vnormals = []
        for v in obj.verts:
            verts.append(v.co)
            vnormals.append(v.no)
        faces = mhx_main.loadFacesIndices(obj)
        return (verts, vnormals, obj.uvValues, faces, rawWeights, rawShapes)
Пример #2
0
def exportProxy24(obj, plist, fp):
    proxy = mh2proxy.readProxyFile(obj, plist, True)
    if not proxy:
        return
    faces = mhx_main.loadFacesIndices(obj)
    tmpl = open("shared/mhx/templates/proxy24.mhx", "rU")
    for line in tmpl:
        words= line.split()
        if len(words) == 0:
            fp.write(line)
        elif words[0] == 'mesh':
            fp.write("mesh %s %s\n" % (proxy.name, proxy.name))
        elif words[0] == 'object':
            fp.write("object %s Mesh %s\n" % (proxy.name, proxy.name))
        elif words[0] == 'v':
            for bary in proxy.realVerts:
                (x,y,z) = mh2proxy.proxyCoord(bary)
                fp.write("v %.6g %.6g %.6g ;\n" % (x, -z, y))
        elif words[0] == 'f':
            for (f,g) in proxy.faces:
                fp.write("    f")
                for v in f:
                    fp.write(" %d" % v)
                fp.write(" ;\n")
            fn = 0
            for mat in proxy.materials:
                fp.write("    fx %d %d 1 ;\n" % (fn,mat))
                fn += 1
        elif words[0] == 'vt':
            for f in proxy.texFaces:
                fp.write("    vt")
                for v in f:
                    uv = proxy.texVerts[v]
                    fp.write(" %.6g %.6g" %(uv[0], uv[1]))
                fp.write(" ;\n")
        elif words[0] == 'vertgroup':
            mhx_main.copyVertGroups("shared/mhx/templates/vertexgroups-24.mhx", fp, proxy)    
        elif words[0] == 'shapekey':
            fp.write("  ShapeKey Basis Sym\n  end ShapeKey\n")
            if mhx_main.BODY_LANGUAGE:
                copyShapeKeys("shared/mhx/templates/shapekeys-bodylanguage25.mhx", fp, proxy, False)    
            else:
                copyShapeKeys("shared/mhx/templates/shapekeys-facial25.mhx", fp, proxy, False)    
            copyShapeKeys("shared/mhx/templates/shapekeys-extra24.mhx", fp, proxy, False)    
            copyShapeKeys("shared/mhx/templates/shapekeys-body25.mhx", fp, proxy, False)    
            writeIpo(fp)
        else:
            fp.write(line)
    tmpl.close()
    return
Пример #3
0
def exportRawData(obj, fp):    
    # Ugly klugdy fix of extra vert
    #x1 = aljabr.vadd(obj.verts[11137].co, obj.verts[11140].co)
    #x2 = aljabr.vadd(obj.verts[11162].co, obj.verts[11178].co)
    #x = aljabr.vadd(x1,x2)
    #obj.verts[14637].co = aljabr.vmul(x, 0.25)
    # end ugly kludgy
    for v in obj.verts:
        fp.write("v %.6g %.6g %.6g ;\n" %(v.co[0], v.co[1], v.co[2]))
        
    for uv in obj.uvValues:
        fp.write("vt %.6g %.6g ;\n" %(uv[0], uv[1]))
        
    faces = mhx_main.loadFacesIndices(obj)
    for f in faces:
        fp.write("f")
        #print(f)
        for v in f:
            fp.write(" %i/%i " %(v[0], v[1]))
        fp.write(";\n")