I am highly influenced by the style and techniques of Dave Wilson's
work. He was my former department head and therefore I was exposed to his techniques from birth to final image. For a while I had wanted to make a robot in this style, so that I could, learn how to do every aspect of it 1st hand. I use 3D Studio MAX, so when the tutorial comes to the technical stages it may sway to more MAX specific lingo. So on to conceptualizing.
I'm not the greatest designer, so to conceptualize this guy I had to look elsewhere for ideas. I found design inspiration in one of Hennie Blaauw's
many sketchpads. Hennie, being a great illustrator, often doodles on his sketchpad and one day drew a bunch of variations of robots. One little dude jumped out at me and I decided he is the dude to create. Here is his original sketch.
What I immediately loved about him was his leg design. I've always been a huge fan of the warrior bugs in Starship Troopers, and really wanted to make a creature with the same leg structure. Also this design combined an ergonimic casing with anglular mechanics for the insides. The retro 50's style boosters also struck a chord.
Looking for a place to start, I decided to build the outer casings first. I modelled all the ergonimic pieces with a low poly count, so that I could subdivided the surface with meshsmooth. I started by building a sphere primitive, then collapsing it into an editable mesh. I proceded to edge extrude the back until I was happy with the length. Then and scaled in the edge to create a thick appearance to the shell, then edge extruded back towards the front, so that the inner mechanics had somewhere to fit. I then proceeded to add surface details like seems, to match the concept. The rear end was built in very much the same way except I extruded four support poles out it's rear to the jet engines to rest on. The jet engines were just slightly modified tubes with and extrusion here and there. Below is an image of the low poly and subdivided casings.
After the casings were modeled I moved onto the legs. Now I created the legs in a very backward manner. I'm not too experienced with MAX's bones and IK so I created the bones before the legs. Firstly created the basic bone lengths and angles then applied a IK Solver called "HI Solver" from the top bone to the bottom bone. Now that the bones had some IK, I pulled the foot straight below the base and stretched the joints out so it created a straight pole-like template to model from. Now I could model all the joints of the leg segments accurately over the pivot points eg. I could create a sphere and align it directly on the bone's pivot point. I generally used tube, cylinder and sphere primitives to create my ball jointed legs. After I had finished the modeling I subdivided them and re-aligned them to their designated bones. Here is an image of them from bones to subdivision.
Now that all the ergonomic modeling had been completed it was time to move onto the inner mechanics. Firstly I created a base for the legs to fit into. Since the legs had ball joints I just clipped the ball parts into the base and added modified torus primitives to rim the ball and to hide the clipping. Then I made the basic large "space fillers", I created two basic boxes, and added some extrusions for detail, to plug up the holes inside the casings. Then I built four cylinders to connect the two "engines" or boxes. Now I added some detail to the large, very basic, shapes. A great way to create detail is to draw splines, extrude and bevel them, this is what I did everywhere here. I created supports for the pipes, slats for the engines and clamps for the ball joint base. The clamps were matched to the ergonomics of the outer casings, so that it appeared to be supported. Below is a comparison between the basic elements with and without the details.
Now that the basic "fillers" had been built it was time to built arbitrary gadgets and gizmos on the base shapes. I added propellers to the jet engines and exhaust slats in the back. I built two halogen landing lights in the front. Added tubular metal shapes and canisters on the base and an LED thing on top. After all the hard edged mechanical shapes were modeled, I weaved wires everywhere to add a little curvy, organic contrast to the metal. I won't go into the detail on how I modeled each gadget, but I'll display close-ups below.
Here is an image of the final model.
And here is a plastic render of the Scarab without it's casing on. Now you can clearly see all the detail.
Rigging this guy was actually quite quick and simple. I already had the bones built and IKed for each leg from my modeling stage. My personal preference when animating, is not to use anything except dummies (nodes, helpers whatever). So I built four dummies for each foot, aligned them on top of the IK handle and linked the handle to the dummy. Then I cloned the dummies up above the feet, unlinked them and linked to the foot dummies. Now whenever the foot dummy pulled the leg around this dummy would always follow directly above it. I used these as my knee pivot. In MAX, in the motion tab of the IK handle there is an option labeled IK solver plane > swivel angle. In this option is a button "pick target". I selected all the knee dummies I had cloned for the swivel angle. Now no matter where the foot was positioned, the knee always aligned it's angle straight up. As seen below.
Now that the hard part was out of the way, I sorted out the rest of the body. To start with I linked all the jet propellers to a central dummy, so that they could spin independently to the body. I had designed the jet engines in a way so that they could pivot on the support poles. I created a dummy by the pole pivot and linked the "propeller spin" dummy and the rest of the jet engine to it. Of course I repeated this for all four engines. As for the rest of the Scarab, I created four large dummies: 1 for position and 3 for the separate axis. The theory behind this is to be able to animate the 3 axis individually.
I linked all the geometry to the roll controller, including the top bone of the legs, and the jet pivot dummies. then I connect the roll to the bank, the bank to the pitch and the pitch to the position controller. Done, below is a diagram of the rigging with Scarab overlaying it. After I had finished my rigging I did a quick animation test, it requires the latest
DivX codec: !!Check it out!!
Before I could start painting textures I had to get the object's mapping co-ordinates as good as possible. What this means is when you apply a large texture the shape you don't get any texture stretching. Normally default texture projections i.e. planer, cylindrical or spherical mapping are fine and do the job well. However Scarab's casings are quite complexly modeled.
I had to create a custom UV mapping for them. In MAX I use the UVW Unwrap modifier to edit my mapping co-ordinates. Firstly I added a default projection mapping to my object (I used cylindrical), then I applied a procedural checkered texture to the object so I could see where the stretching occured. The idea is to make the checkered squares as square as possible. Below are the mapping coordinates and the result they had on the head casing.
Once I mapped all the ergonomic shapes I moved on to the mechanical shapes. I didn't need any custom mapping co-ordinates for these since I intended to apply procedural textures to them. Just a few of the gadgets were given cylindrical co-ordinates. Now on to the texture creating. Since there were a lot of textures in the Scarab I'm just going to go over the texturing of the head. I used Adobe Photoshop to compile this texture. Firstly I got a base texture from a texture library, in this case metal plating. the texture resolution I chose was pretty huge (1500x1024). I tiled the texture over the expansive resolution then started adding it on top of the tiles, flipping and rotating the layer to break up the tiled look. Then I added a blue layer of Photoshop clouds at 80% opacity, now it looks like a blue paint job with an underlying metal surface, as seen below.
Now it's time to weather it a bit. The end result will appear as if the paint has been scraped and scratched of the casing, the way I do this, is by painting any colour on a blank layer, but using the underlying metal and the overlaying UV mapping for reference as to where the scratches would be. I then paint some large patches on another blank layer for the scrapes, as seen below (I painted with white).
When I was happy with the scratches and scrapes positions and look, I duplicated the layers, dropped the scrapes layer opacity to 50%, then merged them together. Now I had a blank layer with semi-transparent scratches and scrapes on it. I then held CTRL and selected the merged layer, Photoshop only selects the areas of the layer with the scratches. Then I selected the blue paint layer and created a new mask with the current selection. now the paint has scratches and scrapes punched out of it and you can more clearly see the underlying metal in those areas. As seen below.
After that I lightly airbrushed some white areas (sunspots) and some dark areas (dirt). Now the RGB texture map is finished. On to the specular and bump maps. I saved the PSD as something else so I can start adjusting what I had already created for greyscale mattes. Firstly the Specular map. Here I brightened the underlying metal layer really high so that it'll be the brightest part. Then I darkened the paint layer to about 25% white and darkened the sun spots and dirt to black. For the bump map I once again copied the RGB file and started adjusting. I increased the contrast of the underlying metal and kept the brightest part at 50% white. I brightened the paint to white so that it's the highest point. Finally I turned off the sun spots and dirt layers. Here they are below.
Finally after all that it's time to render an image. A great way to show off your model is by using radiosity. Of course MAX 4 doesn't have radiosity, so it has to be faked. To do this I created light arrays. Firstly I created a simple ground plane. Then I creating a direct light and giving it a path constrant to a circle spline. Then I cloned the light as an instance 16 times around the spline to make a nice ring array. The reason why they are all instances, is so when I want to tweak a light's settings, I only have to tweak one. Now I have the "mid-level sky lights", I setup the lights with a pale blue colour and to give no specular, cast a shadow map with a size of 512. Also since there are so many lights in this scene the multiplier setting has to be dropped dramatically, to avoid blow outs. I put the lights on intensity 0.066. Once I was happy with these I cloned the path and lights to create the "high-level sky lights". I then adjusted the circle spline's radius to shrink the area of the array. Then I cloned it all once again, but this time I dropped it below the ground and deleted half of them. Also I change the colour to a deep blue, with the multiplier on 0.1. All of these lights exclude the ground plane because they're supposed to be bounce light from the ground. I created a new direct light to be my sunlight. This light was white with raytrace shadows and an intesity of 0.8. This light too didn't effect the ground plane. I copied the light on top of itself, with the same settings, except I turned off shadows and made it only effect the ground plane. Below is my scene's lighting.
To finish off I gave the ground plane a 60% raytrace reflection setting. After I had rendered a frame I added glow to the lens in post. Well there you have it, the making of my Scarab robot.
If you have any further questions or queries please contact me @ [email protected]