Right, we’ve got one frame in there. Kinda. It was a randomly screencapped one. Making 10000+ of the suckers by hand is out of the question. Enter 3DS Max.
Why Max, you ask? To be honest I’d love to go the Blender route, alas, I’ve been fed Max knowledge at the faculty for a semester and then pretty much forced myself to use it. In any case, with no time to lose, Max it is.
Since me and q2_grunt seemed to have a good thing going, I tracked down an MD2-Max importer script on the interwebs.
I imported him into Max and set him up with a sweet bluescreen. This is to save up on any additional processing, since it’s the exact colour of blue that Fallout uses as transparency. #0000FF aka R0 G0 B255 aka completely fucking blue. This same colour was used as ‘Environment->Background’ under common parameters for rendering.
Also worth mentioning, the model import is done via script menu, not via the ‘File->Import’ menu. Don’t go apeshit like me, read the readme that comes with the script.
Now then, the setup:
Very rudimentary, but whatever. Now, I tracked down his frames for idling on a spot, they go from 1:0 to 13:187 or thereabout. I don’t quite understand the system, but the digits following the colon (:) go all the way up to 479. So what you’ve got on your hands is about (12*479+187=) 5935 frames of standing still animation. ¯\(º_o)/¯ I’m going to go out on a limb here and assume those are a sort of subframes that just make sure everything goes smooth.
Now, this is the case with this one model. What you’ll be using, I assume, falls into two categories. Once in 3DS Max, you’ll have a) a shitload of frames and subframes like this q2_grunt I’m using, or b) an externally generated model which you’ll reduce in frames upon your external generation. Or not, in which case refer to a).
The point here is that Fallout animations don’t use a huge number of frames and manage to get away with it. For reference take a look at this article by lisac2k. You’ll see the number of frames per action is barely in double digits. This of course varies from action to action, but we can cover that later. I’m assuming that if you plan on simply replacing a critter, it’d be best to match the number of frames it uses for any given action. If you can get your hands dirty with coding, you’ll prolly be able to bring to life a whole new critter along with any number of frames you’d care to shake a stick at.
(If you really wanna know the frame amount right now, though, grab some DAT file extractors off of NMA downloads and take a peek into the DAT files. I’m not gonna be going into that, just as I’m not gonna go into 3DS Max basics.)
What I did with my q2_grunt, going with the aforementioned option a) approach, was to grab the whole timeline where he’s standing still, ergo 1:0 to 13:187 and rendered every main frame. I’m not even sure it’s possible to render the subframes. Whatever the case is here, we don’t really need to go into it. It’s all one big dirty hack to get our hands on some sprites and that’s where we’re headed. Choo choo. Here are the settings from Render setup:
…and here’s what Max spewed out after the first round:
I’m using scanline rendering without anti-aliasing, to get that nice jagged edge which works well with Fallout sprites and avoid any silly retouching later on. Also note I’ve set up the size to something about Fallout sprite size, back in ‘Render settings’.
Something doesn’t look quite right. Let’s place him into a Fallout scene and see what happens.
What we’ve done wrong is set up the camera as ‘Perspective’, when in fact Fallout uses an orthographic projection. This is exactly what we need right now, so switch the camera mode or follow this tutorial if you don’t know how.
Once in orthographic, find a Fallout screencap with clearly defined lines of projection. Say, this one. Now set it up as your viewport background, by pressing ALT+B and screwing around with the settings a bit. Remember to enforce the aspect from the bitmap. Now you’re ready to properly align the whole scene to your camera. What you want to end up with, is have your box that the model stands on, align with the lines of projection in the Fallout screencap, like so:
Now would be a good time to look into the shadows and set them up all proper like. I’ve just fiddled around a bit till they seemed to fall right. Here’s my final setup:
Following that, truck your camera far enough forward to get the model properly sized in the render. Here’s the rendered result of all this adjustment:
And when we place him into the scene, it all comes together:
Congratulations, you are now the proud owner of one sprite set. To get all 6 directions rendered, either place 6 cameras 60° apart around the model or rotate the model 60° for each render set.
You might have noticed a problem with shadows here. They tend to turn out a bit too blue, if you don’t adjust the exposure settings. I’ve tried setting the shadow density to maximum levels, but that didn’t do squat. You can, of course, manually paint them black later, but that seems like a bit of a chore. Batch processing to replace the colours could work as well.
In any case, this is it for now, and next time we’ll be looking into batch processing to index the palette over these renders and fix shadows, followed by a conversion to Fallout’s FRM conversion and all that jazz.
- Single 3D frame to sprite
- Indexing colour on full bitmap to Fallout palette
- Rendering from an animated 3D model in Max to a suitable batch of images, readily cropped
- Find correct camera and shadow angle
- Batch process palette indexing and colour replacement
- Batch FRM conversion, renaming and import
- Actually get a proper model or something
- Actually rig, animate and skin the fucker