Model formats

Started by
3 comments, last by James Trotter 18 years ago
Hey all, Just a quick post regarding model format. As a game developer, what format do you find works best for you? I ask this not as a newbie, but as a reasonably experienced developer that is having trouble finding something that fulfils all requirements. I realise it is like asking how long is a piece of string, but I certainly think that most of what is out there seems to be flawed in one way or another (in my experience at least). I'll explain by going through various formats and discussing why they don't do it for me! Please not e however, that I have looked at many formats and this list is by no means comprehensive! 3DS format - I currently have a 3ds model loader, it does however occasionally have problems with displaying cloned objects, they sometimes seem to get incorrect transformations applied. I'm sure this is likely due to me not 100% understanding the format, and I've possibly not loaded extra transformation information or some other data relating to cloned objects. This is not a major issue. The main problem with the 3ds format is its lack of skeletal animation. .x files - My main problem with the .x file format is in finding exporters that work correctly. That aside, I also note that it seems to be a format that is really only used in amateur projects, I'm not sure that it would realistically help me learn the ropes of how the commercial teams do things. Perhaps I'm being too harsh on the format here in this respect. I could potentially learn how to write my own exporter for the format, but to be honest this is something I don't feel I have the time for. MD3 format - This format would be okay for simple animated models, but the main problem again is with the export process, in my previous experience at attempting to make an MD3 file, the process for exporting from any modeller seems vastly over-complicated and not worth the time and effort for a format that doesn't really meet my needs anyway. Now, I could go and write an exporter to export to a custom designed file format as is the usual suggestion to the "which format to use?" threads but as mentioned previously this is very distracting from my primary goal of producing a portfolio game... if needs be, then I will look into this, but if there is an alternative, I would prefer it! Ideally, I'd like to be able to export simple skeletal animated models for use as both scenery and character models. I would like if possible to be able to extend the format so I am able to add things such as particle systems, bump-mapping, etc to improve the look of the game once I have completed the main grunt work. So it would probably help me to know what you guys find fills all your needs in your own projects... did you go with a custom format/exporter, did you go with an existing format? What modeller do you use and does it fulfil your needs for animating/modelling and adding special features (particles systems, etc). I'm actually almost at the point where I'm considering writing my own skeletal animation utility, loading in 3ds models and animating them in thatand including that utility in my portfolio.... but if I can avoid it then I probably will! It would also be interesting to hear of any other problems people have come across and how they got past them (e.g. perhaps you need to switch between 2 pieces of modelling software because the pieces of software are missing certain features you need, perhaps you have been having hell getting exporters to work like myself.... stuff like that). Hope that all makes sense, and I look forward to any responses. Cheers, Steve
Cheers,SteveLiquidigital Online
Advertisement
I personally went with the custom format route. Since you have to write an importer either way, it's not that mcuh extra work to write an exporter while you're at it. Plus it's as extensible as you need it to be. My current plan is to write a util that convers from COLLADA (https://collada.org/public_forum/welcome.php) to my format. I haven't finished fully investigating it yet, but I choose that option because COLLADA seems to be an open standard, and it has exporters for several different modelers. What that means for me is that my modelers can work in whatever makes them comfortable while I can fend off having to deal with a modeler's API (which I'm not in a terrible hurry to do anytime soon). Sorry I didn't have more positive info on any existing formats, that's just been my experience.
Write more poetry.http://www.Me-Zine.org
Quote:Original post by INVERSED
I personally went with the custom format route. Since you have to write an importer either way, it's not that mcuh extra work to write an exporter while you're at it. Plus it's as extensible as you need it to be.



Ditto...and agreed. I think you'll find this to be the case with most game developers. There are just too many things that you can't think of now, that you may need or want down the road to be included in your data. By rolling your own format and exporter it becomes a lot easier to make changes to your needs/wants/liking when the time comes.
Okay, sounds like the consensus is that rolling your own is certainly the way to go. I think I agree with this. So, assuming that I'm not rich enough to afford 3d Studio Max / Maya, is there any reliable and extensible modeller that is easy to learn to create exporters for?

I've tried Milkshape, and even purchased a licence for it, however I find it to be slightly too simplistic and unreliable for anything beyond modding and amateur projects.

I've tried various versions of Blender, but found existing exporters to be very unreliable... is it easy to write a working custom exporter for Blender?

I'm thinking that blender will probably be my new direction of choice given the responses and my past experience. Does anyone have any experience of writing export scripts for Blender? I'd be interested to hear of any experiences to see if it's worth going down that route.

In the meantime, I'll also look at COLLADA and see if the format is of any use to me, but any other alternatives are of course welcomed.

I suppose writing an exporter will be better than essentially reinventing the wheel in so far as creating a custom skeletal animation editor goes, but still give me control over fine details and extensibility. Looking at my original question now, the answer seems somewhat obvious as this is really the option that is the best compromise all-round, but I think it's nice to get a secnod opinion.

Thanks for the responses so far :)

Cheers,

Steve

Cheers,SteveLiquidigital Online
Quote:Original post by Mephs
I've tried various versions of Blender, but found existing exporters to be very unreliable... is it easy to write a working custom exporter for Blender?


Yes, it's quite easy. Especially considering the fact that you have the source code for several exporter scripts available for reference in case you're wondering how to do it. Though the blender python API has been improving the last couple of releases, there are still a few inconsistencies, (small things like function names, for example). I also think there are some things which they could have made simpler for the scripter, especially concerning the armature module, which could use some cleaning up.

Quote:
I'm thinking that blender will probably be my new direction of choice given the responses and my past experience. Does anyone have any experience of writing export scripts for Blender? I'd be interested to hear of any experiences to see if it's worth going down that route.


I'm using blender to write an export script right now. But the format I'm exporting to is a little unconventional so I've hit a few small bumps here and there. Parts of the script can get untidy...

Anyway, good luck!

Edit: Hang on... If you're going with blender, you definitely want to download the blender python API reference: http://www.blender.org/modules/documentation/blender_python_API_2.41.tar.gz

This topic is closed to new replies.

Advertisement