<< Back to Normal View
URL: http://www.loonygames.com/content/2.13/totb/
Vol.
2, Issue 13
February 22, 2000
Thinking
Outside the Box:
3DS Tutorial #1: CyberGuy
by
Paul Steed
include("/home/loonygames/loony.timedoctor.org/includes/totb.htm");
?>
ow.
When I wrote the last edition of
TOTB about reviewing the reviewers I expected everyone to
either ask me to stop whining or simply ignore my rant as some
sort of chest-beating therapy. Wow. Shockingly I’ve received
about 200+ e-mails to date voicing their agreement with my assessment
that reviewers are somewhat spoiled/jaded/myopic/not-very-damn-objective.
Not surprisingly I did receive about a dozen mild to vehement
flames…10 of which were from reviewers themselves. Also (not
surprisingly) most of these unhappy people missed the entire point
of the rant.
Before
you roll your eyes thinking I’m going to start into that dead…equine
again don’t worry - just wanted to say (sniff) thanks for the
support. I did get some very well-thought, passionate and LONG
e-mails, though. The nerve I struck still causes me to pause
and think on the whole Internet thing. It especially gave me
insight to an observation I’ve had since Q2 that has always bothered
me.
I used
to complain to Blue pretty regularly (e-mail, phone, conventions,
etc) that he needed to take more of a stand on issues instead
of doing the fence-walking thing. I felt he was too damn impartial
yet when compelled to be partial he veiled it in thinly
disguised sarcasm or off-hand comments. “BE MORE OPEN!” I decried
from my pulpit. But since last week and after 3.5 years of exposure
to the ‘net I have finally come to the realization that people
like Blue came to long ago: YOU CAN’T HAVE AN OPINION.
That’s
right. These high-profile web pimps like Blue, Scary and Redwood
CAN’T have an opinion. No one on the Internet in fact can have
an opinion. How dare they? If they even remotely say something
you don’t want to hear, hoooo-boy. By God, YOU are going to let
them know about it! Sure they can dick around and kid around
and jovially cater to you from time to time. That’s okay…but
let’s face it. Making a stand on an issue alienates them from
you. I’m definitely not saying they don’t HAVE and opinion.
I happen to know they damn well do. I’m just saying they can’t
let YOU know they have one. They have to be this open-minded,
non-committal entity that referees public issues instead
of participating in them. Otherwise you crucify them. Yeah,
you. That 1 or 2 percent that hates his/her life and derives
undiluted glee from pressing the buttons of someone/anyone to
watch them react and acknowledge your existence. It puts a smile
on your face and warms your cold heart ever so slightly…ever so
briefly.
Taking
the referee analogy further…I’m the middle linebacker who occasionally
will take out a ref going after the guy with the ball. Hell,
I’ll take out anyone in pursuit of the goal…camera man, side line
spectator, cheerleaders…doesn’t matter. In fact it’s an accepted
part of the game. Sometimes the ref will get even…sometimes not.
But I’m ON the field making the plays, taking the hits and digging
all the perks of playing ball. Of course as much as I wish I
were I’m not indestructible. Even though I wear the pads of ‘opinionated-artist-at-a-well-known-game-company’
I’ll get banged up just like any other player. But I can honestly
say all this experience and play time is great! I feel it’s helped
me out of my introverted shell and the internet has honestly turned
me into a better person. No one calls me ‘shy guy’ anymore.
And with the help of Charles Atlas no one kicks sand in my face,
either! You have helped me. So let me help you
by following the advice of one of your more demanding brethren:
“That
was nice…how about some helpful stuff now ya whiny bitch.”
Cyberdude
Part 1
Recently
on a trip to Australia with Tim Willits promoting Q3A, a rabid
fan at a pool hall in Sydney accosted me. This fan, hopelessly
dedicated to the dream of keeping all shooters exactly like Quake,
raised an interesting question concerning identifying with your
virtual counterpart when playing on-line. His hypothesis was
that since people are acutely aware that they are ‘playing’ on-line
and their ‘character’ is a blatant computer generated piece of
art, why not make the digital aspect of said ‘computer character’
even more apparent? Basically he wanted me to admit that devolving
today’s graphics to the level they were in the Tron days or pre-Quake
days was a great idea in order to better identify with
your character. Well…it’s not and I won’t.
With the
level of artistry, complexity and richness evident in Q3A’s
wall textures, levels, and characters, don’t hold your breath
hoping to get the graphics anything but better from now on. The
art in Quake III Arena is easily the best in its genre and is
only slightly surpassed by games that feature pre-rendered art
or ultra-slow game technology. However, if you truly want to
more accurately identify with your character when playing Q3A
or most fps games, identify with a box…as in bounding
box. The outer appearance of your character has no reflection
on anything other than…how it looks. In Q3A, all bounding
boxes are the same. All jumping, running, shooting and damage-taking
capabilities are the same. The characters’ looks in are solely
for the sake of diversity and aesthetic appeal only.
Still,
the discussion did get me thinking about a great first (and simple)
tutorial for this column and I thank the gentleman for planting
the idea. Keep in mind this will be a massive affair as I go
from point A to point Z and try to make this as comprehensive
as possible. Thusly, each week I’ll post more of it until it’s
done…
Here’s
what you’ll need to do this…
Tools
Used:
3DS Max
2.5 (2.0 and 3.0 should work as well)
Character Studio
2.0
PhotoShop 5.0
(or 4.0)
The theme of
the character is an unabashed ‘virtual’ character. But we still
need to make him humanoid.
Now this
illustration is basically a schematic for a beefy, heroic-kinda
guy with a skeleton underneath. Using this ‘schematic’ for reference,
let’s define some areas of mass or chunks of weight that
will ultimately represent the body of Cyberguy.
I divided
the upper and lower areas up for clarity’s sake. The reason I
have some areas blocked out from the front and some from the side
will be apparent as we get further into the tutorial. Now based
off the above diagram, look at the next image:
I need
you to download this jpg so we can be relatively on the same page
when we build Cyberguy. I’ll wait…hmmm…okay now that you’ve downloaded
him let’s get to work.
Organization
Before
we load up Max however, let’s go over some basic file management
ideas. This tutorial is what you’d call a project. Thinking
of your modeling and animation endeavors as projects helps put
you onto the path of organization. Being organized, developing
a system and sticking with it from project to project prevents
you from losing track of files when you need them. So go to whatever
drive you want the project stored and make a directory called
3DSTUTS. Go into that directory and create the following
directories: MESHES, MAPS and IMAGES. Now fire up Max.
Go up
to FILE/CONFIGURE PATHS and click on it…
Click
on the ‘Images’ line…
…click
on ‘Modify’ and browse until you find the 3dstuts\images directory
then click on the ‘Use Path’ button. Do this for the ‘Scenes’
line as well, mapping that to the 3dstuts\meshes directory. Thusly,
your Configure Paths panel under ‘General’ should now look like
this:
Next click
on the ‘Bitmaps’ tab in the Configure Paths panel…
…and ‘Add’
3dstuts\maps to your bitmap paths. If you have other entries
under bitmaps don’t worry about it. Just be aware were you to
render something in Max or try to see you textured model in-view,
too many paths under Bitmaps increases your render time.
Cool!
So now we have our project set up correctly and know that each
time we start Max and load a mesh, save a mesh, render an image
or make a material using a bitmap we know what directories will
be used. Of course if you’ve developed your own system for naming
conventions and project management use what works for you. The
key is to always be consistent.
Let's
Get Started
Make sure
you’ve downloaded cyberguy03.jpg and move him to your 3dstuts\maps
directory. Now keep in mind I’m not too concerned with how you
work in Max and will always instruct you to do things the way
I do them. However, feel free to deviate from the ways I tell
you if you’re more experienced or it makes more sense to you.
There’s always more than one way to skin a cat ;]
So, now
that you’re in Max click in Front viewport and hit ‘w’ to re-size
the window to fill your view. I almost exclusively work in one
window bouncing back and forth between the [P]erspective view
and all the orthographic viewports: [T]op, [B]ottom, [F]ront,
bac[K], [L]eft and [R]ight. This is just the way I prefer to
work using ‘z’ for zooming in and out and (ctrl) ‘r’ for rotating
the view.
Go to
the Create command panel, click the Shapes tab and click on Rectangle.
Click drag a rectangle approximately 100 x 100 units. Don’t worry
if it’s not exact. After the rectangle is made then go over to
the Length and Width values and simply enter 100 x 100. Name
it cyberguybuild.
Making
the 'Guide' Material
Move the
rectangle so it’s centered with the bottom edge aligned with the
construction plane. Next bring up your materials editor so we
can create the material that will be mapped onto the rectangle
serving as a guide to build cyberguy. Pick a material slot and
rename it to ‘cyberguybuild’. Knock Shininess and Shininess Strength
down to 0 and increase Self-illumination to 100.
Now, click
on the small map button beside the diffuse value…
…make
sure Browse From: is New and double-click Bitmap.
Click
on your blank Bitmap bar under Bitmap Parameters…
…navigate
to your …\3dstuts\maps directory and double-click on cyberguy03.jpg
Finally
make your material Sample Type a cube and turn Show Map in Viewport
on.
Assigning
the Material
If it’s
not selected, select the rectangle and assign the material we
just made. Once assigned, notice how in the material box has
white ‘corners’ in addition to a white outline. This means the
object selected is ‘wearing’ the material selected.
This serves
as a great way to verify the materials are assigned to the right
objects. Now close the Material Editor and change your viewport
to Smooth + Highlights…
As you
can see, something ain’t quite right. The rectangle should be
sporting the cyberguybuild material with a visible image of cyberguy03.jpg.
Know what the problem is? The most obvious of course is the fact
that the rectangle is just a shape and not a mesh.
We also have a problem because we haven’t assigned any mapping
coordinates to properly see the bitmap material. One way to fix
all this is to go to the Modify command panel, click on the Edit
Stack icon and turn the shape into an Editable Mesh.
Then we
assign a UVW Map modifier to the mesh and viola. It’s visible.
Another way is to assign an Edit Mesh modifier before you assign
the UVW Map modifier and achieve the same results. However, there’s
an even better way. Simply assign a UVW Map modifier to the
shape.
This makes
it a one-step process instead of two because a UVW Map can only
be applied to a mesh. Max knows this and takes care of the transformation
for you. The Mapping type is already on Planar so the image is
aligned right. Remove the UVW Map modifier and the shape reverts
to its original state. Slick, huh?
Something
to remember when mapping guides onto planes is the power of two
rule. Cyberguy03.jpg is 256 x 256 making it square and video
card friendly. This ensures that it is going to be clear when
seen in the viewport. 512 x 512 can work but it’s often blurrier
and less distinct than at 256 x 256.
Creating
the Shapes
Cool.
Now we’re cooking with gas! Now it’s time to start the actual
building process. Select the rectangle if isn’t already and hit
P. Click on zoom extents…
And ctrl-R
to rotate around, checking your mapped rectangle. Cool. Now
we have to slide it back along the Y axis so it’s off the construction
plane when we make our lines. I’ve bound the G key to toggle
the construction grid on and off. For me the grid gets distracting
so I keep it off most of the time. In this case, though we need
to see the construction plane. So hit the F6 key which restricts
movement for the object along the Y axis. Right click over the
object and select Move.
Now put
the move icon over the object, hold down the left mouse button
and drag your mouse to the right, sliding the rectangle back along
the Y. Move it about 10 units back.
An alternate,
more accurate way to do this is to right-click over the Select
and Move icon at the top of the menu. This brings up the Move
Transform Type-In menu where precise values can be entered. This
menu is also available for the Select and Rotate and Select and
Scale icons. Go ahead and bring it up for the move tool and type
in 0, 10 and 50. This centers it in the X, pushes it back 10
along the Y and centers it on the Z.
Hit F,
zoom extents and hide your grid. If you don’t want to bind the
Show Grid option to the G key like I did then go to the menu and
turn it off manually.
If you
don’t know how to bind a key to an action, check this. Go to
File/Preferences…
Click
on Keyboard. Under the Command list scroll down to Display Grids
(toggle). Click over to where it says Shortcut and enter the
letter G in the blank space or hit Press Key and hit the G key.
Hit OK
and you’ve bound the G key to the grid show/no show. Back to
cyberguy…
Go to
the Shapes tab, hit Line and knock your steps down to 0.
Start
with the shoulder pad and trace the triangle. Click Yes when
you’re prompted to "Close Spline?"
Go ahead
and trace the rest of the black lines. Pay careful attention
around the hand so none of the lines overlap. Right click to
break off contact when making the open shapes of the abdomen area.
Also put your cursor at the upper left corner of the square around
his head, hold down ctrl and click drag a rectangle to make that
shape a perfect square. You should end up with something like
this:
To make
things easier, let’s consolodate all the lines into one shape.
Select the shoulder shape. Go to the Modify panel, hit Attach
Multiple and hit All in the Attach Multiple dialog box.
Press
Attach and now all the shapes are merged into one.
Now for
some trickery. Change your viewport to wireframe mode, go to
the Modify panel, click on Sub-Object/Spline. Select all the
splines in the front view.
Shift
drag the splines over to the right and click on Detach. Click
OK at the prompt. Don’t worry about the name unless you want
to name it something.
As you’ve
noticed by now I don’t normally name everything I make since I
do a lot of attaching, merging and consolidating of shapes and
objects. If things get tricky and hard to follow then I resort
to naming conventions for the shapes and objects. Otherwise I
save the naming for the end as a finishing move for the mesh parts.
Select
the new object and go up to Tools/Mirror.
Make sure
the Mirror dialog box has the X axis and No Clone areas checked
and hit OK.
Next turn
the viewport back to Smooth + Highlights and slide the mirrored
shape over to the right position.
Attach
the mirrored shape to the first shape and close the open lines
by using Modify/Sub-Object/Vertex/Connect…
Once you
connect the hips shape go ahead and detach that spline and rename
it to hips. While we’re at it let’s go ahead and detach the head
and side splines naming them ‘head’, ‘chest’, ‘calf’, and ‘foot
respectively. We’ll do the other body parts as well, but for
now we’ll just do these.
Now we
can start clearing up the workspace a little bit as we turn the
shapes into meshes. Select the shape we’ve been working on, go
over to the Display tab and click on Hide Unselected.
Hit P
and Zoom Extents, centering the scene in the perspective window.
Rotate the view so you’re looking obliquely at the shape and lose
the grid if it pops up. Go to the Modify tab and click on the
Extrude modifier. Enter a value of 6 for the extrusion and keep
the segments to 1.
Next add
an Edit Mesh modifier, go to Sub-Object/Face and with the Element
icon selected, drag select the left arm structure. Go down near
the bottom of the menu and click on Detach. Call the new object
‘arm’.
Turn the
Sub-Object button off, go to the Display panel, uncheck the Edges
Only box and hit Hide Selected to isolate the arm.
Hide Unselected
and Hide Selected are both useful and I can’t really say I use
one more than the other. Although since I have alt-H bound to
Hide Selected I probably use it slightly more than the other.
Before
we start working on the arm, let’s make it easier to see the changes
we make. Go to your viewport name (Perspective) and right-click
to change the view to Other: Facets. Check the Edged Faces as
well.
Once I
begin my mesh with either a primitive or extrusion, my next most
crucial technique is Edge manipulation. I use edge divide and
edge turn literally hundreds of times during the course of creating
and optimizing a model. The ease with which Max allows you to
manipulate edges is a major reason why I use it as my modeling
tool.
So, let’s
begin the arm by starting with the shoulder. With the arm selected
go to the modify panel and go to Sub-Object/Edge and activate
Divide near the bottom. Once you do divide these edges here,
here and here…
The yin
to Divide’s yang is Turn. Activate edge Turn and turn the edges
you just created like so…
Now we
can do a little vertex manipulation. First we’ll use Vertex/Weld/Selected.
Change your Weld Thresh to 10. Select these two vertices and
hit selected…
You may
wonder why I divided the edge and welded the vertices instead
of simply lowering them. It’s pure convenience. Plenty of times
I find myself dividing-turning-dividing-turning until I get the
proper edge length I need to form a shape. By dividing the edge
and welding the vertices I keep the vertices along the plane of
the edge of the mesh. It’s basically a cheap way of moving vertices
and has nothing to do with edges, really. It’s just a type of
modeling I’ve grown to like and sometimes I do push the vertices
in a case like this to break out of the routine of dividing-turning-welding.
Now lets
tweak the shape of the shoulder by scaling the vertices along
the bottom edge. Select the two vertices along the bottom edge
of the shoulder. Right-click over the object and choose Scale
from the transforms.
We want
to do a Non-Uniform Scale so change to that type…
Make sure
the Y axis is active and scale the two vertices by 150%.
Next we’ll
work on the upper arm. First we need to do some edge dividing…
…then
some vertex welding…
…and turn
an edge.
See the
pattern here? Divide…weld…turn. Live it, learn it, love it.
Let’s finish up by scaling the vertices of the inner top part
of the upper arm by 130%.
Now move
down to the wrist and weld the vertices at the bottom of the forearm…
…and the
top of the hand …
Turn the
edges of the forearm and hand since they’re pretty deformed from
the merges…
…and scale
the wrist are in along the Y axis to make the area look…more wrist-like.
So that
almost finishes up the arm but now is the time to discuss a little
modeling/design philosophy. In low-poly modeling the limitations
of making cool models in the least amount of faces possible embeds
an approach of minimalism deep inside your brain. One manifestation
for me is the use of progressively smaller cross sections for
limbs.
-
Paul Steed is a 3D artist for id Software.
<<Back to Normal View
loonygames
- the best damn gaming magazine online
|
Credits: Print CGI is
© 2000 Square Eight. Used with permission.
Article is © 2000 its original author. All other content is © 2000
loonyboi productions. Unauthorized reproduction is prohibited. You got that??