We’re using the Collada file format to get skeletal data and animations into the game, on the theory that it’d be simpler to use this exciting new open standard file format than it would be to write and support yet another damn Maya exporter. This theory might have been wrong, but at this point it’s working and there’s no going back. Read on for boring complaining:
It turns out that Collada isn’t so much a file format as it is a crude burlap sack containing shredded pieces of every single file format known to man. Collada was designed to be able to describe any game asset ever created, from models to animations to spline surfaces to material data to effects to physics and constraints to scene graphs. Not only that, Collada was designed so that each of these resources could be described in as many different ways as there are programs that use them. Rather than deciding “OK! This is how we’re going to describe geometry”, Collada takes the route of letting each program describe geometry in whatever way suits it best. You can have two files describing the same content but using radically different techniques, based on the whim of the exporting program.
This makes writing an importer very difficult. Since the format’s scope is so broad, I first approached it by getting one simple sample file and writing an importer that could handle just the things in it I was interested in, and the rest of the spec be damned! I soon learned that Collada would not allow me to get away with this. Each small revision to the test file had the potential to throw wildly different data out there, and I’d have to rewrite each time to handle the new data organization. This made me grumpy, and I entertained sulky thoughts that maybe the artist was doing this on purpose to teach me a grim lesson about adhering to standards, no matter how silly they seem to me.
We’re over the hump now fortunately. There really was no silver bullet, it was just a combination of getting enough feature support in the importer, and refining the techniques used in Maya to produce consistent output. The whole process might have been easier if it hadn’t been my very first experience with animations. I’ve never been the animation guy on a project before, so it was a steep learning curve. I had to learn to come up with an intelligent-sounding answer to questions like “Do you think I should try zeroing-out the normalizations on the mesh constraints?” Oh, I’ve grown so much as a person these last few weeks.
I still hate Collada though.


# ——————————————
# File Created 07/03/2007
# ——————————————
T I MISS YOU
Q WHY WON’T YOU USE ME ANY MORE?
S I WAS SO SIMPLE
S WE WORKED SO WELL TOGETHER
S COME BACK, COLLADA IS TOO COMPLICATED FOR YOU, HE’LL HURT YOU
# Sigh
O New_Object
V 0.000 0.0000 0.0000
N 0.000 1.0000 0.0000
…
Having worked with Collada at my last job. (zipper) I can totally understand the pain.
good luck.