Post news RSS MD5 support in progress...

Of course it's not proving too easy, but it's on the pipeline.

Posted by on

I've finally decided that enough is enough, and it's time to send these MD3 models to the graveyard they belong to (at least, as far as player models are concerned).

MD5 models seemed the ideal candidate: they are skeletal, they keep animation data separated from mesh data, and they are from the almighty ID software. Which is perfect for generating a hitbox from (at least about the first two points!)
In fact, I've considered making blender scripts for the already implemented MDR format (MD4 raven), but after a few botched scripts, I realized that slogging through the hated Python just to have MDR is just not worth it - since animations and mesh are together.

I stumbled into the XReal engine that, apparently, has managed to implement MD5 models.
Massive copy-pasting ensued.

It took a few days of work, but now they load, they are accessible, and...

Yeah. They are a mess.

It's not over, of course! I didn't really expect things to work off the bat. It may take a month or more, but the mood is "Not a step backwards" now, and eventually we'll have them.

UPDATE: A bit of improvement (it was a triangle indexing problem). The shape now looks acceptable. Now on to bones and/or animations.
Bit better, but not quite.

The issue seems to be with the bone parent system.

UPDATE: The parenting bone has been sorted out, another stupid mistake (duh!) and now they're slowly becoming what they should be like (They probably float due to a different origin used in Doom 3. Yes, the model is from Doom 3).
MD5 - Almost there.

UPDATE (1/7/11): The animations appear to work (kind of), as with shaders.
Only bone modifiers (looking up and down) and hitboxes are missing now, it will take probably less than a week at this pace (i've already laid the "foundations" to accomodate these two things).

UPDATE (2/7/11): The hitboxes have stopped crashing, although they aren't working as they should, yet.

UPDATE (3/7/11): The hitboxes are, hopefully, starting to work. You hit approximately what you see.
Given a bit of time, I'll make an automated script for making hitboxes (right now, I used an editor and simply pulled the sizes out of my ass).

UPDATE (5/7/11): Argh! Having some issues with the Blender exporter.
The implementation is ok, though. Bone modifiers and tags to go. Easy job. I took a break from MD5 implementing however, and I'm now doing weather effects.

UPDATE (7/7/11): Back to the MD5 models. Tampering with the exporter to understand what's wrong.

UPDATE (8/7/11): Maybe I have found the causes of the problem - vertex weights that add up to > 1.0. Looks like blender has a way of dealing with these things, while the exporter does not. Which means, if you are careful and keep track of vertex weights, it should go fine. Also, UV mapping could be another parallel cause - rearranging them seems to fix some problems with the exporter models.

Currently re-doing the main player model - trench coats are on their way in.
UPDATE (8/7/11, #2): Confirmed, it was either messed up bone weights or vertex groups linking to bones that didn't exist anymore. Testing of a model will proceed soon.

UPDATE (16/7): Hectic week, not much time for development. The model is coming though. Using bones as tags has a fair potential besides sticking weapons on them.

UPDATE (17/7): Here they are. Still headless, still has a bit of UV problems, still have messed up animations (too lazy to fix keyframes ATM) but at least they work. Now off to tags and bone modifiers (how many times have I said that?)

MD5 models pretty much working

MD5 models pretty much working

MD5 models pretty much working

(Now, I got killed on purpose. I may have a truly rotten aim, but i'm THAT bad to go 0-6 with "Goon" - just needed to preemptively make that clear).

UPDATE (18/7): Great... looks like the animations aren't exported properly due to the exporter cutting some things short. Gotta make a few, hopefully small, adjustments to the script. Ugh! I HATE python!

UPDATE (19/7): The good news is that the blender exporter edit was fairly easy - usually, hacking into python scripts is an odyssey of pain and frustration. Not this time, luckily. The bad news is that there's still something to do about combining animations (that is, legs and torso).
Also, due to some lighting bug the character's armpits have become white, as if they've been sweating bleach. lol.

UPDATE (23/7): With the latest updates, I was greeted with crashes. I was ALMOST starting to miss them. They probably have something to do with the tags. Working on them.
UPDATE (23/7, 2): Sorted out the crashing. It was due to invalid frames not checked for.
Still you might want to check out the head on the last image. lol.

UPDATE (25/7):
Bone modifiers working
Bone modifiers work. They are used to bend some bones of a model around, which allows for looking up or down without splitting the model in many parts. Now, due to the botched way I implemented tags, each skeleton is built several times - fixing that could make things more efficient. But it can wait, given that there are only a few tags used.
Same could be said about the awkward lighting effect: I'll sort it out eventually, but it's fairly minor.

I kept you waiting enough, and a release is imminent.

UPDATE (29/7): Again, good news and bad news. The good news is that I've found the culprit for the odd lighting effects. The bad news, it's not going to be too easy to fix.

UPDATE (29/7, 2): Again, a good surprise. Fixing it wasn't hard at all - although these MD5 have probably got quite a bit CPU-heavier than MD3.

MD5 lighting fixed

UPDATE (17/8) : Sorry for the long silence, took a couple weeks off. Development has continued meanwhile, and lots of bugs, previously known or not, have been fixed. The focus now is on improving the MD5's performance / efficiency - mixed results so far, although a new release is fairly close.


Why not try the IQM format: ?

Reply Good karma Bad karma+2 votes
Nubstrike Author

That's interesting indeed; in fact, they have all the upsides of the MD5 format.

(Un)fortunately I'm now deep in MD5 development. Again, not a step backwards - just don't like leaving things unfinished.

It is likely however, that I'll have a look at them when I'm done with MD5.

Reply Good karma+1 vote

It's kind of cool seeing this go form complete jumbled mess, to gelatin body to pretty nice.

Reply Good karma Bad karma+1 vote
Nubstrike Author

Yep, it's even cooler to find out the little coding errors that caused the jumbled mess to appear (just a missing "3*" in the right place), it's satisfying.

Reply Good karma+1 vote
Post a comment
Sign in or join with:

Only registered members can share their thoughts. So come on! Join the community today (totally free - or sign in with your social account on the right) and join in the conversation.