oh jetzt wird wirklich kompliziert...
ich bräuchte da echt hilfe von einem der sich besser auskennt.
in der script beschreibung:
the mdl7 format currently doesn't support weighted skinning
so every vertex should only have 1 bone influence. if there
is more than one influence the exporter will take the
strongest one or a random one if all influences have the
same weight.
im code wird nicht das weight eines vertexes geschriben sondern nur der boneindex. also die nummer des bones die das grösste gewicht auf Vertex hat
group.addvertex(v.co[0], v.co[1], v.co[2],
-v.no[0], -v.no[1], -v.no[2], # negative -> because of reverse winding
boneindex)
in c_groups habe ich für addvertex
def addvertex(self, x, y, z, nx, ny, nz, boneindex=65535):
"""add a vertex to the group"""
self.vertices.append(c_mainvertex(x, y, z, nx, ny, nz, boneindex))
und dann wird in das struct.pack geschriben.
file.write(struct.pack("<BBBBl16slllll",
1, 0, 0, 0, # type 1 = triangle mesh
self.getsize(),
self.name,
len(self.skins),
len(self.uvs),
len(self.triangles),
len(self.vertices),
len(self.frames)))
.....
if extension == "mdl":
file.write(struct.pack("<fffHfff",
self.x, self.y, self.z,
self.boneindex,
self.nx, self.ny, self.nz))
in A8 werden ja bis zu 4 bones pro Weights unterstützt.
wie kann ich da die vertex weight mit hinein schreiben?
kann mir da einer helfen?
mfg tom