Jump to content

Elite Force MDR Format


  • You cannot reply to this topic

64 replies to this topic

#21 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 21 March 2009 - 01:41 PM

Ah yeah that's true I guess. I suppose you'd only truly need to understand it if it broke. But yeah, the code in MD3View was basically a cut n paste job from the original engine, so there wasn't much chance of that. :)

Haha yeah! I think a great deal of credit goes to James Monroe hehe. He helped us in pretty much everything short of actually getting the original engine source released.
The MDR code I'm using as my base here was thanks to him as well hehe. I gotta make sure to not forget him in the credits. XD

I haven't heard from him in a while though.... I wonder if he's still working @ Ravensoft....? :skeptical:

Still grinding my teeth on this problem though. I think I'm nearing a possible work-around though. ^_^

Hopefully after this, I might also look at seeing if it's possible to reverse-engineer the ASK and XSI formats that the original EF models used as well.... time and effort permitting. XD

#22 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 22 March 2009 - 03:29 PM

I found the problem.

Don't ask me why or how.... but it was because there was another function in the same for loop called 'progressStart' that was supposed to draw a progress bar at the bottom of the window showing the progress of the script.

When I commented it out.... it worked. ;_;

I spent the whole weekend working that out.... that could have been time better spent. T_T

Ah well... at least we're one step closer...... :$

#23 SciSeven

SciSeven

    Member

  • RPG-X Tester
  • 279 posts

Posted 22 March 2009 - 08:11 PM

Hum.. I'm not sure if this is the right place to ask this question (please move it to the right place if not, thanks @admins ^^).

Now that you're already working on those models, I wonder if it's possible for you to create certain sets of them, for example a set of legs, a set of torsos, a set of heads and a set of hair?

Then people could create their very own character in EF, like using Janeway's head and combine it with Paris's hair etc XD.
sig_lillyryan1.jpg

#24 Thilo

Thilo

    Member

  • Members
  • 145 posts

Posted 23 March 2009 - 08:35 AM

Don't ask me why or how.... but it was because there was another function in the same for loop called 'progressStart' that was supposed to draw a progress bar at the bottom of the window showing the progress of the script.

When I commented it out.... it worked. ;_;


The solution to a hard-to-find problem is sometimes as simple as that, isn't it?

I spent the whole weekend working that out.... that could have been time better spent. T_T


No, that's good, you learned alot about hunting down bugs and will be able to more efficiently do so in the future.

#25 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 24 March 2009 - 06:09 AM

Hum.. I'm not sure if this is the right place to ask this question (please move it to the right place if not, thanks @admins ^^).

Now that you're already working on those models, I wonder if it's possible for you to create certain sets of them, for example a set of legs, a set of torsos, a set of heads and a set of hair?

Then people could create their very own character in EF, like using Janeway's head and combine it with Paris's hair etc XD.


Ummmmmmmmmmm...... not sure eitehr haha. Either way, I don't think we have anywhere else to put it. :$XD

Either way, yeah, once this is done, we could easily create new sets of character bodies (as well as animated map objects too ^_^)

As for heads and various types of hair........ not a clue. :$
The head models are saved as MD3 files, which we can already open and edit and re-save really easily.... but to have interlocking components like different hair.... I'm not sure.
The best you can do with Quake 3 tech is make the hair a separate model, and bind it to the head with tags. But given the game's lighting model, the shape of the hair and the shape of the target head, it's probably a real hit and miss situation there...

There's also the JKA idea where the head model already has like 5 different sets of hair already modeled onto it, but only one set is selectively rendered ingame. This isn't really possible in EF tho since there's no real way to disable surfaces from rendering. :(

Ah well, you can always try and see. ;)

The solution to a hard-to-find problem is sometimes as simple as that, isn't it?


Haha yeah.... programming is like that isn't it. XD
But on that same note, it's errors like that that will probably drive me to an early grave. :$

No, that's good, you learned alot about hunting down bugs and will be able to more efficiently do so in the future.


Haha well, I dunno.... that's the thing that's tearing me up here. I didn't find it by tracing the logic, I found it pretty much by accident when I commented out some code to test another block. :$

I guess that's true though.... I learnt a pretty good lesson on tracing logic flow nonetheless.
And I think from now on, I'm going to try debugging troublesome code by commenting it all out and then uncommenting it out line by line. :)

Hehe, on the bright side, I'm not going to be forgetting MAXscript's syntax in a hurry though hahaha.

#26 Scooter

Scooter

    The Canon Man

  • UberGames Admin
  • 2,545 posts

Posted 25 March 2009 - 05:50 AM

It would be nice to have the eyes and teeth separate at least, like JKA. Get some more realistic mouth animation working.

And I'm still hoping for combadge bolt-ons at some point. :)

#27 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 25 March 2009 - 07:00 AM

Oh yeah... I haven't forgotten about those. :)

It wouldn't be so much as separate teeth, more the mouth can be modeled into multiple phonetic poses (aahhh, eeeeee, oooooo, ehhhhhh, wooooo if you want to get technical) and then animated procedurally via the code.

Eyeballs would have to be separate models bolted into the head I think though. In HL2, they've set it up so the texture of the eyes just slide around on top of the eye geometry, but that's not possible from Q3's QVM code. ;_;
The annoying thing with JKA was the eyes didn't seem to move at all (And yet they did in SoF2..? ) which made the characters look weirder than they had to.

Either way, all of that is technically possible now.... the only problem is we'd need someone who is a totally l33t modeler (and animator lol). ;_;
I'm game to give it a try once this exporter is finished, but I have no faith in my ability to model humanoids.... :$

Uh.... bolt-on combadges? Like, combadges that are actual geometry instead?

#28 Scooter

Scooter

    The Canon Man

  • UberGames Admin
  • 2,545 posts

Posted 28 March 2009 - 07:02 PM

Yeah, a modelled combadge that bolts on to the torso, so that they aren't completely flat and can be unbolted if needed. Being able to swap the combadges would be spiffy too.

#29 MDave

MDave

    Member

  • Members
  • Pip
  • 9 posts

Posted 01 April 2009 - 02:11 AM

I've registered to say keep up the good work! This is JUST what I need to export MDR's from max, since the MD3's I'm having to use for my ioquake3 based total conversion is too bloated in filesize for our needs. One of our characters folder is about 25MB!

Keep us up to date! :)

PS: Which max versions are supported by the way? :) Having to use Max 8 because of the MD3 plugin.

#30 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 01 April 2009 - 04:01 PM

Hey man, welcome to the forums! :D

Ah, thank you very much! I'll try my best to get this finished soon. Stuff's been really hectic lately though... :P
Oh cool! What kind of project are you working on?

Ahhh yeah, haha that there is why bone animation is better than vertex. XD Damn that's a big model haha.

Haha sure thing!

I'm using MAX 7 here, so I'd say MAX 8 should be compatible. :)
Not sure about lower versions though... XD

#31 MDave

MDave

    Member

  • Members
  • Pip
  • 9 posts

Posted 01 April 2009 - 09:00 PM

Thanks for the welcome! :)

The project I'm working on is a good old DragonBall Z total conversion, ZEQ2lite, a version of ZEQ2 based on ioquake3.

It used to be quite active a couple of years ago, but we started reaching the limits of what we wanted the quake 3 engine to do so we moved on to another engine (actually making our own). Only recently I've started it up again because of how much work was done for it, and it be a waste not to polish it up for a release some day.

2 year old screenshot:
http://zeq2.com/site...m&g2_itemId=562

Being able to use an MDR exporter for Max would be extremely cool :D I just have too much done in Max to do the switch to a specific version of XSI and redoing the rig and animation work (of which there is a ton of).

Hope things go well for you! :)

#32 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 02 April 2009 - 11:17 AM

Woahhhh..... :eek:

Man, that looks totally awesome haha!

Wait, so is that in the Quake 3 engine then? What couldn't the Quake 3 engine do that made you switch to your own?

Haha damn... I gotta hurry up and get this thing finished then. I'd be really honoured to have some of my work contribute to a project as cool as that. ^_^

Thanks! You too!

#33 MDave

MDave

    Member

  • Members
  • Pip
  • 9 posts

Posted 05 April 2009 - 12:58 AM

Yeah, that screenshot is from the quake 3 version :P

Basically, we wanted even bigger maps then what quake 3 could allow, because of our extremely large scale action and high speed combat. But we started getting collision errors with our maps as we added more and more detail, and bigger and bigger maps. Hence the switch to our own engine. Of course, with the full source available, its now possible to extend these limitations but have yet to get around to it :P. I think it requires editing the radiant and q3map2 tools, as well as the engine? That would effectively make zeq2lite's maps incompatible with normal quake 3 maps, I think?

I'm going way off topic now :P

Just realised I reg'd and posted here on 1st of april, no this is not an april fools :P

#34 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 06 April 2009 - 04:16 PM

Jeez really? They would have to be some huge maps then, given Q3 1.32 had a pretty huge capacity for terrain and outdoor rendering haha...O_O

Ah well yeah exactly hehe. But if you've got your own engine, you could always make your own model formats as well. ;)

ROFL! The irony. Happy April Fools' day XD

#35 MDave

MDave

    Member

  • Members
  • Pip
  • 9 posts

Posted 23 April 2009 - 04:06 PM

Hate to sound like someone who keeps banging on your door, but any progress lately? :)

#36 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 05 May 2009 - 11:55 AM

Haha whoops, I totally missed this.

Only a little more, sorry man. Been roped up with a pile of other stuff for UberGames and/or external projects.

At the moment, I think I've pretty much got the MAXscript fully working. :)

And so I'm also trying to get LoDs loading correctly into the MDR file, but at the moment, MD3View is reporting it as corrupted... so something is still broken in the MDR compiler. :$

I'll see if I can finish it off hehe.

#37 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 07 May 2009 - 04:09 PM

HOLY FRICKEN CRAP YES!!!!!!! XD

Arggggh, I really hate when the solution to a problem is just sitting there.
I finally found out why the file was coming out as corrupt.... I wasn't adding the final chunk of mesh data properly.

*Epic techno rant* :P

The final chunk is a stream of integers indicating which bones this portion of the mesh is actually using (render efficiency ingame)....
When I was writing the size of the mesh to the program header, I wasn't taking these integers into account properly, just adding them to the end of the stream. Integers are in fact not 1 byte long, rather they are 4 bytes long, and this is where the inconsistency that was crashing MD3View was coming in. By mutiplying the number of ints by 4 and then adding it on.... the problem was solved.... :$

*/Epic techno rant*

So there we go, we have Level of Detail (LoD) support now. w00t!

The end is definitely near now. I'm guessing all I gotta do now is double check each LoD can support multiple sub-meshes, as well as accept texture co-ordinates/necessary surfacing data.

and then the ultimate challenge. To see if these new meshes work with EF itself. ;)

-TiM

Attached Thumbnails

  • mdr_lod_win.jpg


#38 MDave

MDave

    Member

  • Members
  • Pip
  • 9 posts

Posted 07 May 2009 - 04:53 PM

Awesome stuff man! Great work :) I'm no good when it comes to maths like that hah.

How does the lod work, by the way? I presume your using the same kind that gongo did for the md4, it kind of makes its own? :) Pretty damn awesome if that's the case!

#39 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 08 May 2009 - 06:16 PM

Hehe thanks man. Bah... me neither. It's simple addition and subtraction and yet it took several hours to trace the code back. :P

Ohh, the collapse map? Gongo made that? Haha woah okay... I was assuming that was some Carmack wizadry already in the format (I guess that's to Gongo's credit hehehe).
That algorithm was awesome though haha. It was systematically setting up a pattern of adjacent vertices that would start merging together (ie collapsing polys) the furthur the model was away from the camera.

Sadly no, I had to pull all of the collapse map code out. The MDR format uses the good old standard method for LoDs and keeping the collapse maps would have broken compatibility.

In the modeling program, you create 2 lower poly versions of the same mesh and add '_1' and '_2' to the ends of their names respectively. Then ingame, the mesh will switch between these surfaces depending on the distance of the mesh to the camera.

I'll stick a screeny of how it should look in MAX next chance I get.

It's basically the same method as the MD3 files (as well as original MD4s...), but since it's contained in the one file, all using the same animation data, it's tonnes more efficient.

-TiM

#40 TiM

TiM

    Administrator

  • UberGames Admin
  • 3,425 posts

Posted 09 May 2009 - 05:22 AM

w00t! Little to no effort required here thankfully... textures are already working! :D
Interesting quirk I found out with MD3View here... the program gets narky and refuses to load if you give any of your surfaces names with capital letters (ie Box01)... checking all of EFs models, I guess it was never picked up (ie 'l_legs', etc).

Anywayz, made a quick mesh here and got Texporter to generate a quick texture for it. I was originally going to try and bake a radiosity pass into it, but sadly the damn thing kept crashing on me. (I dun suppose anyone knows of a quick way to bake ambient occlusion into a UV map..? ) ;_;

Anyway... there's still a few bits and pieces I want to clean up before I full write this off as finished. The SKL exporter is still doing some weird stuff dropping the surface names and the likes, not to mention I want to try and set this thing up so it's possible to specify default textures if a .skin file doesn't exist.

Either way... I'm really happy I've actually made it this far in any case... :$

-TiM

Attached Thumbnails

  • mdr_tex_win.jpg




0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users