def setupProxies(typename, name, obj, stuffs, amt, rawTargets, proxyList, deleteGroups, deleteVerts): foundProxy = False for pfile in proxyList: if pfile.useDae and pfile.type == typename and pfile.file: proxy = mh2proxy.readProxyFile(obj, pfile, True) if proxy and proxy.name and proxy.texVerts: foundProxy = True deleteGroups += proxy.deleteGroups deleteVerts = mh2proxy.multiplyDeleteVerts(proxy, deleteVerts) if name: stuff = CStuff(name, proxy) else: stuff = CStuff(proxy.name, proxy) if amt: stuff.setBones(amt) if stuff: if pfile.type == 'Proxy': the.Stuff = stuff if the.Stuff: stuffname = the.Stuff.name else: stuffname = None mesh = mh2proxy.getMeshInfo(obj, proxy, stuff.rawWeights, rawTargets, stuffname) stuff.setMesh(mesh) stuffs.append(stuff) return foundProxy
def writeFaceNumbers(fp, human, proxyData): fp.write("#else\n") if human.uvsetFile: uvset = proxyData["__uvset__"] for ftn in uvset.faceNumbers: fp.write(ftn) else: obj = human.meshData fmats = {} for f in obj.faces: fmats[f.idx] = MaterialNumbers[f.mtl[0:3]] deleteGroups = [] deleteVerts = None for proxy in proxyData.values(): deleteGroups += proxy.deleteGroups deleteVerts = mh2proxy.multiplyDeleteVerts(proxy, deleteVerts) for fg in obj.faceGroups: if mh2proxy.deleteGroup(fg.name, deleteGroups): for f in fg.faces: fmats[f.idx] = 6 elif "joint" in fg.name: for f in fg.faces: fmats[f.idx] = 4 elif fg.name == "helper-tights": for f in fg.faces: fmats[f.idx] = 5 elif fg.name == "helper-skirt": for f in fg.faces: fmats[f.idx] = 7 elif ("tongue" in fg.name): for f in fg.faces: fmats[f.idx] = 1 elif ("eyebrown" in fg.name) or ("lash" in fg.name): for f in fg.faces: fmats[f.idx] = 3 if deleteVerts: for f in obj.faces: v = f.verts[0] if deleteVerts[v.idx]: fmats[f.idx] = 6 mn = -1 fn = 0 f0 = 0 for f in obj.faces: if fmats[fn] != mn: if fn != f0: fp.write(" ftn %d %d 1 ;\n" % (fn-f0, mn)) mn = fmats[fn] f0 = fn fn += 1 if fn != f0: fp.write(" ftn %d %d 1 ;\n" % (fn-f0, mn)) fp.write("#endif\n")