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)
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
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")