easiest animation file format + flexible

Started by
3 comments, last by BeerNutts 11 years, 8 months ago
Ok.

I have been doing some research for the upcoming semester of uni. And I know that we will need animation, so I'm currently trying to way up easy implimentation over flexibility.

My current three choices are:

Collada:
I know very little about this format, other than allot of people love it

FBX:
I have done a little bit of experimenting with this. I love how easy it is to get it setup and running, although I am concerned that the closed end of the library might limit my ability to adapt the file format to work with physics interactions inside of my game. I understand that I could write my own phaser rather than use Autodesks, but that kinda defeats the purpose of using FBX, which is easiness.
my goal is to make the system highly facaded interface for any system to hook into, so thats another con of FBX

MD5:
I have done a tiny bit of a look into this, this looks like the same deal in collada, but maybe a little bit more simple, but I am probably wrong.

My main concern is that this unit is known for it's intense work load, so if I choose a format which has too many features and thus take too long to impliment, sure, ill have a fancy animation setup, but I won't have a game. But if I choose something too easy, requirements of the engine which I didn't for see might cause jelly code to occur as I patch and stretch the abilities of the format.

The main things that I believe are essential are:
easy access to the mesh so I can grab individual triangles and do collision detection
control over the rendering, I would like to use a oct tree to free up GPU
animation
ease of creation of file, as in, an exporter from popular 3D modeling software.

What would be good:
the ability to attach things to bones, i.e. to attach a gun to a hand.
animation which was not model specific, i.e. a walk sequence which can be used by all NPC's with the same bone system
animation blending, both blending animation presets + IK caused from physics interactions (second one more of a wish than a requirement)

==============================================================================================================================
===========================================read this if you don't have all day============================================================
==============================================================================================================================
So in summary, I need an animation file format which will add some sparkle and added feature to the game, but not one that will take too long to setup, maybe a tutorial as such as this which would speed up development. I am using Windows and GLUT (possibly will impliment DirectX through use of a facade, i.e. all md5/collada/fbx will call a draw triangle / what ever access they need to the rendering interface.
==============================================================================================================================
==============================================================================================================================
==============================================================================================================================

Thanks for reading, thanks for the help.

#EDIT#
i realize that some of my wants are probably non related to the format, i.e. IK, that's probably done on my end
Advertisement

easy access to the mesh so I can grab individual triangles and do collision detection
control over the rendering, I would like to use a oct tree to free up GPU
animation ease of creation of file, as in, an exporter from popular 3D modeling software.

First lesson for your uni: an interchange file format (collada & FBX) has really nothing to do with easy and efficient access of data in a program. Its sole purpose is to exchange data between different tools.

Therefore you always need two steps: get enough data out of your modelling tool into a file (flexible) and import the data into your own program. While importing the data, you need to map and transform the needed data to fit your internal data structure. The task of your internal data structures is to easily access and manipulate these data.

There is an other class of file formats, which already avoids the transformation/mapping step. These files are more or less some kind of 1:1 mapping of the data structure in your game and therefore often game specific (MD5 is such a file format). The benefit of such a format is, that you can optimize the file size and the loading performance, but the disadvantage is, that it is more or less only really suitable for one game (-engine).

My suguestion is to avoid MD5, because it is an engine specific, not really flexible data format. Keep to collada and FBX, but both are not really easy. Try to use as much existing APIs as possible, don't write your own exporter. Best to check which modelling tools you need to support and decide then which format to prefer. Not all formats are equally supported by all modelling tools.
In the past team members have done the model format systems, but I decided that Ide do some research cus it's probably good to know.
Maybe you could take a look at MS3D ..http://chumbalum.swissquake.ch/files/ms3dsdk184.zip
There's a c file under ms3dsdk184.zip\ms3dsdk\specs ..
It expresses how to load datas from the ms3d model files..
I've looked at Spriter and it seems slick. The Beta version is available for free, and it outputs everything in xml. There are plenty of libraries that reads it for your choice of language if you just google a bit as well.

Good Luck

My Gamedev Journal: 2D Game Making, the Easy Way

---(Old Blog, still has good info): 2dGameMaking
-----
"No one ever posts on that message board; it's too crowded." - Yoga Berra (sorta)

This topic is closed to new replies.

Advertisement