If I find the time I'll try out blender...
That may take some time just to figure out how to draw stuff in blender, in addition to python scripting.
You can try
Sanae 3D, which exports in MQO format (open with metasequoia, free software). Also in python, but everything is set up for you so all you need to do is fill in the parser method. The tutorial I included in the first post should give you an idea how to get something working.
It's designed so that you can directly translate the specs almost line-by-line, where simple data types are read from the file and structs are defined by methods.
for example, taking one of the structs you wrote
Code: Select all
struct MESH2E
{
char ChunkID[4];
dword dwVersion;
dword dwCntParts;
dword dwCntVertexLists;
struct VertexList2E sVertexList[dwCntVertexLists];
dword dwUnknown;
dword dwUnknown;
dword dwUnknown;
struct Indices sIndices;
struct Part2E sPart[dwCntParts];
};
would be translated as
Code: Select all
def part2E(self, dwCntParts):
#definition of part2E struct
def vertexList2E(self, dwCntVertexLists):
#definition of vertexList2E struct
def mesh2E(self):
chunkID = self.inFile.read_char(4)
dwVersion = self.inFile.read_long()
dwCntParts = self.inFile.read_long()
dwCntVertexLists = self.inFile.read_long()
self.vertexList2E(dwCntVertexLists)
unk1 = self.inFile.read_long()
unk2 = self.inFile.read_long()
unk3 = self.inFile.read_long()
self.indices()
self.part2E(dwCntParts)
#main parser method
def parse_file(self):
#stuff
self.mesh2E() #parse mesh
#more stuff
If I ever look at blender, I'll want to provide the same interface except add in some calls to blender's drawing methods so instead of exporting it would draw the model for you.