Friday, September 17, 2010

Checking in.

I'm looking to be 100% on all content by the end of the weekend. From there it is just a matter of testing and finalizing. The home stretch is finally here. Screens soon.

I'm still looking for a way to ditch Blender 3D, and really the entire Quake .mdl format. The thing about Quake .mdl models is that they don't use any bone information, they purely save vertex coordinates from frame to frame. This is... Unfortunate. It inherently means wonky animation, and eliminates the possibility for decent hitbox support and sockets on the model (for muzzle flashes, storing weapons, and other cool shit like that).

Worse, getting your .mdl animations into the game is a painstaking process. As I said, the .mdl saves vertex coordinate information, which means to get it in game I have to write a script to tell the game what animation is going on frame by effing frame. For example, when I want to code my death animation I have to look at the model itself and find out what frame the death animation I want starts at, say 46. From there I tell the game that frame 46 is death animation A's frame 1. Then I tell it that frame 47 is death animation A's frame 2. This goes on until the animation is finished. What. A. Nightmare. It gets really confusing when you are 120 frames in and have to remember that you are really on frame 13 of shoot animation c. And of course Blender is kicking you in the ass the whole time.

I miss the good old days of Half-Life's .mdl format modeling. Half-Life .mdls were a compilation of vertex info, texture info, and bone info. This made animating and getting a model in game an absolute dream. Any animations you did were self contained pieces of information, meaning you didn't have to get down and dirty and worry about frame numbers. You just made an animation called "shoot", and told the game to do "shoot" at the appropriate time and voila. And the tool of choice was Milkshape 3D. Ahh, Milkshape, how I loved you and miss you. Unlike Blender, Milkshape is incredibly easy to use, never crashes, and has beautiful pipelines to all of the major low poly model formats that used to be relevant at the time.

I think a good analogy for what Blender is to Milkshape is to think about what GIMP is to Paint.Net. GIMP tries to do all of the things that the big expensive retail product Photoshop does while Paint.Net just tries to keep the usability of Paint while adding some professional type features. GIMP ends up being an unintuitive, barely functional mess while trying to do all those fancy things. Meanwhile, Paint.Net does everything a shitty programmer-artist like me needs, and it does it painlessly and easily. In the same way, Blender 3D tries to do everything that Maya, 3D Studio Max, and Softimage XSI do, but does it all shitty while maintaining an obtuse user interface. Milkshape 3D just tries to be a super usable low poly modeling program for games like Quake and Half-Life, and it absolutely succeeds.

So, since Blender 3D has been making me weep so much in the last couple months, I've recently really been trying to find a solution in a new model format, preferably Half-Life's .mdls. So far the best I've been able to come up with it the Darkplaces engine's .DPM format. It uses .smds to separate vertex and bone information, like Half-Life, but is specific to Darkplaces. The only real problem is that few people use it, and even fewer know exactly how to use it. Still, I'm going to experiment with it in the future and see if it is a possible solution for me.

At any rate, for the time being I am going to grit my teeth and fight through the unbearable darkness that is Blender 3D to push out the last model or two I need. I'm too close to being ready now. Perhaps in the future I'll use the .DPM model format which will enable me to bring back my toon shading, as well as generally make my life much easier on the 3D modeling side of things.

No comments:

Post a Comment