a good file format for skinned meshes?

Started by
6 comments, last by frecco2k 16 years, 11 months ago
Until now I've used milkshape 3D's ms3d format for loading skinned meshes because it i simple enough to understand. But the fact that ms3D is a crappy editor and my 3d artists are using lightwave to model and 3d studio to animate is forcing me to choose another format. I've tried to seek information about how animation information is stored int 3ds files but it just seems to be badly documented and I don't have time to start cracking the format down myself. So any suggestion for file formats that store animation information, are supported by most editors (or export plugins do exist) and are relatively easy to read in?
Advertisement
Direct3D .x files would seem to fit your needs.

Here's an article on loading .x files without DirectX:
http://www.gamedev.net/reference/programming/features/xfilepc/

Check out Super Play, the SNES inspired Game Engine: http://www.superplay.info

I've started playing around with the Collada format, it is XML based so is really easy to read in, although you may wan't to write a translation tool to your own binary format to reduce the file size.

The other option is that autodesk do a free FBX format SDK, I know that 3DMax (and Maya) does FBX, but i don't know about lightwave. I've downloaded it but haven't had time to play yet, but it is interesting that XNA supports FBX "out of the box" as well as the older x format.
Not that it directly addresses the question, but it's not a bad idea to try writing your own file format/exporter. Again, that would mean that you have a 3D modeling package you can write plugins for to export from. 3DS Max isn't too bad and I'm sure there are a lot of good tutorials out there. Good luck.
Could go with md5mesh and md5anim. They are very straight forward formats, although they lack morph targets if you want those. On the plus side its very easy to implement skinning with - if you want to do hardware skinning you need to build a bindpose skeleton and use that rather than the weights given in the files.

FBX, we were going to use that where I work but there are bugs in the SDK, and since its a closed source SDK so you can't just fix bugs with it. Lost about a month of development time to FBX. We moved over to collada in the end, and use fcollada to read in the files. So far its been going really well.

You could also look at 3DS...never used it before myself, but a lot of people seem to use it.
Adventures of a Pro & Hobby Games Programmer - http://neilo-gd.blogspot.com/Twitter - http://twitter.com/neilogd
3ds doesn't support skinning. It only has keyframe support.
I am studying this Collada thing. Glad to see that the previous person think it's good. Downside is that it is XML text file.
Sig: http://glhlib.sourceforge.net
an open source GLU replacement library. Much more modern than GLU.
float matrix[16], inverse_matrix[16];
glhLoadIdentityf2(matrix);
glhTranslatef2(matrix, 0.0, 0.0, 5.0);
glhRotateAboutXf2(matrix, angleInRadians);
glhScalef2(matrix, 1.0, 1.0, -1.0);
glhQuickInvertMatrixf2(matrix, inverse_matrix);
glUniformMatrix4fv(uniformLocation1, 1, FALSE, matrix);
glUniformMatrix4fv(uniformLocation2, 1, FALSE, inverse_matrix);
Quote:Original post by V-man
3ds doesn't support skinning. It only has keyframe support.
I am studying this Collada thing. Glad to see that the previous person think it's good. Downside is that it is XML text file.


Collada is generally intended to be used as an intermediate format. As a standard, it makes it easy to manipulate files between different processing tools and then immediately load them during testing. When the product is ready to ship, the collada files can then be converted to a custom binary format to decrease the size and optimize loading. Or, you could just do as GoogleEarth does and slap them all in a zip file.
try using this exporter, its a ms3d exporter for 3ds max called "max2ms3d", it even comes with source so you can modify it to fit your needs and recompile it for newer versions of 3ds max

Hope it helps.
//fredrik
----------------------------"I refuse to answer that question on the grounds that I don't know the answer"-- Douglas Adams (1952 - 2001)

This topic is closed to new replies.

Advertisement