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
示例#2
0
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")