|
The
Making of S.C.A.R.A.ß
|
|
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.
|
|
CONCEPT
|
|
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.
|
MODELING
|
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 Scaraß without
it's casing on. Now you can clearly see all
the detail.
|
|
|
RIGGING
|
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 Scaraß, 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 Scaraß overlaying
it. After I had finished my rigging I did a
quick animation test, it requires the latest
DivX codec
!!Check it out!!
|
|
|
TEXTURING
|
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
Scaraß'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 Scaraß
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.
|
|
|
RENDERING
|
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 Scaraß robot.
|
|
|
|
If
you have any further questions or queries
please contact me @ rory@wickedpixels.com
|