loonygames
a blue's news publication

<< 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

 



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.


click to enlarge!

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.


click to enlarge!

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:


click to enlarge!

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 to enlarge!

Click on the ‘Images’ line…


click to enlarge!

 …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:


click to enlarge!

Next click on the ‘Bitmaps’ tab in the Configure Paths panel…


click to enlarge!

…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.


click to enlarge!

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.


click to enlarge!

 


Now, click on the small map button beside the diffuse value…


click to enlarge!

…make sure Browse From: is New and double-click Bitmap. 


click to enlarge!

Click on your blank Bitmap bar under Bitmap Parameters…


click to enlarge!

…navigate to your …\3dstuts\maps directory and double-click on cyberguy03.jpg


click to enlarge!

Finally make your material Sample Type a cube and turn Show Map in Viewport on.


click to enlarge!

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. 


click to enlarge!

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…


click to enlarge!

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.


click to enlarge!

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.


click to enlarge!

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…


click to enlarge!


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.


click to enlarge!

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.


click to enlarge!

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.


click to enlarge!

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.


click to enlarge!

If you don’t know how to bind a key to an action, check this.  Go to File/Preferences…


click to enlarge!

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. 


click to enlarge!

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.


click to enlarge!

Start with the shoulder pad and trace the triangle.  Click Yes when you’re prompted to "Close Spline?"


click to enlarge!

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:


click to enlarge!

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. 


click to enlarge!


Press Attach and now all the shapes are merged into one.


click to enlarge!

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.


click to enlarge!

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. 


click to enlarge!

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. 


click to enlarge!

Make sure the Mirror dialog box has the X axis and No Clone areas checked and hit OK.


click to enlarge!

Next turn the viewport back to Smooth + Highlights and slide the mirrored shape over to the right position.


click to enlarge!

Attach the mirrored shape to the first shape and close the open lines by using Modify/Sub-Object/Vertex/Connect…


click to enlarge!

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.


click to enlarge!

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.


click to enlarge!

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.


click to enlarge!

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’.


click to enlarge!

Turn the Sub-Object button off, go to the Display panel, uncheck the Edges Only box and hit Hide Selected to isolate the arm. 


click to enlarge!

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.


click to enlarge!

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…


click to enlarge!


The yin to Divide’s yang is Turn.  Activate edge Turn and turn the edges you just created like so…


click to enlarge!

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…


click to enlarge!

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.


click to enlarge!

We want to do a Non-Uniform Scale so change to that type…


click to enlarge!

Make sure the Y axis is active and scale the two vertices by 150%.


click to enlarge!

Next we’ll work on the upper arm.  First we need to do some edge dividing…


click to enlarge!

…then some vertex welding…


click to enlarge!

…and turn an edge. 


click to enlarge!

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%.


click to enlarge!

Now move down to the wrist and weld the vertices at the bottom of the forearm…


click to enlarge!

…and the top of the hand …


click to enlarge!

Turn the edges of the forearm and hand since they’re pretty deformed from the merges…


click to enlarge!

…and scale the wrist are in along the Y axis to make the area look…more wrist-like.


click to enlarge!

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??