Tutorial 1:
Creating an Environment in 3ds Max
|
|
1.
Start 3ds Max.
2.
Create an object that will become your
environment.
To keep things very simple, you will draw one large box, the inside
of which will constitute the environment. For the most part, this
is how all environments start out—with simple shapes that are
connected together and cut up to create larger and more complex
shapes.
On the right-hand side of the toolbar, click the
Create tab, and then click the Geometry icon (the third icon
below the Create tab).
3.
Click the Box
button in the
Object Type rollout, and
then switch to Perspective view by clicking it on the viewport. (if
you don’t see it on the viewport, press the P key).
4.
Draw
a box somewhere in the workspace. It can be any dimensions you
want—you will resize it later.
5.
Move
the box so it is centered on all axes.
On the toolbar that spans the top section of the Max pane, click
the Move tool.
With
the Move tool selected, you should see the
Move Gizmo appear in the center of your box. Ignore it for
now, and look at the lower-center portion of the Max pane.
In the X, Y, and Z boxes, change the number in
each to 0. This will
center your box on each of the axes.
6.
Remember that 100 Max units = 1
world unit in
the Halo 2 game engine.
For this environment, you will make the box bigger than just 1
world unit so the player has some room to run around (Master Chief
is just a bit short of 1 world unit tall).
Click the Modify tab on the right-hand side
of the toolbar, change the Length and Width values in the Parameters rollout to 2,000, and then change the
Height value to
1,000.
Your map is now 20 world units long and wide (square) by 10 world
units tall. To center your map on the screen, you can drag
the Zoom Extents button in the lower-right
corner.
7.
Now
that you have your basic environment geometry, you need to create
a frame node. This is an object that
controls where the origin of your game world is and which objects
within the max file get exported. You’ll be linking objects to this
frame node, and anything unlinked is not exported later
on.
Click the Sphere
button, and
then click and drag to create a sphere in the main work area. It
doesn’t matter where it is at this point—you will move it
later.
8.
Select the sphere, expand the
Name and Color rollout on the right-hand side of the toolbox
(if it is expanded by default, you may skip this step), and then
click the text box and type b_levelroot as your sphere
object’s name.
You must follow this naming convention because the Halo 2 game engine uses this name
when the file is exported. If you don't name the frame node
correctly, the environment will not be oriented correctly in the
game. There are several different reserved names, but b_levelroot
is a typical one. Object and material names are important in
Halo 2 editing, so get
used to paying attention to this and understanding what the
different keys are.
9.
Just
like you did with your box, move the frame node somewhere
appropriate. Most levels put this at 0,0,0, but you can also place
it somewhere off to the side, out of the way. It's important not to
move it later, or you might discover all your player and weapon
spawns move along with it! With the frame node object selected,
click the Move button.
Click the Move button
with the frame node object selected, and then change the coordinates for
X, Y, and Z (found at the lower-center of
the Max pane) to
0,0,0.
10.
With both of your objects positioned correctly,
you need to link them together.
Click your box to select it (if you can't see it, use
the Select by Name button located to the left
of the Move button),
click the Select and
Link button located in the upper-left corner of the Max pane, and then click the
Select by Name
button.
The Select Parent dialog
box appears (if not, go back and repeat the selection process
above). In the Select
Parent dialog box, click the name of your frame node, and then
click the Link
button.
Your frame node and your box are now linked together as one
object.
11.
Right-click the object, and then
select Convert to -> Convert to Editable
Poly.
This will convert the box into a group of editable faces, vertices,
polygons, edges, and elements. You need it in this state so you can
assign different material types to different parts of the
object.
12.
Once you've converted to an editable mesh, the
information under the Modify tab on the toolbar changes.
You can now select and work on a specific part of your box.
To try this, find the Selection rollout. If it is
closed. click the Polygon button.
13.
Until now, we've done all the work to our
environment on its outside. When we launch the map in
the game engine, we want to be inside the box
(environment).
In the Max pane, if you zoom in on your object until you're inside
the box, you'll notice all the "walls" disappear. This is because
all parts of an image being rendered have pieces of data attached
to them called normals. Normals tell 3ds Max (and the game
engine) which direction a piece of data is "facing." If you look at
that data from the opposite side of the
normals, the
data won't be rendered (visible) on the screen. In the Max pane,
normals (when visible) are represented by small blue lines that
point in the direction from which an object will be visible. So,
for our box environment to work correctly, we need to turn the
normals outside-in, or invert them.
In the Max pane,
click
and drag a selection box around your entire object. All polygons
should turn red after you select them.
Note: Be sure the top
and bottom are also selected.
Tip:
To rotate your
camera around an object, hold down the ALT key + the middle mouse
button, and then move the mouse to rotate your view. If you want to
move the camera for a better view of your object, hold down the
middle mouse button and drag. To zoom in or out, scroll the middle
mouse button.
14.
In the Edit Polygons
rollout, click
the Flipbutton.
You can see through the outside walls closest to you because the
normals are facing inward. If you zoom in on the object until you
are inside of it, you'll be able to see all of the
walls.
15.
To create a material for your level to use,
begin by pressing the M
key to
display the Material Editor.
You'll see a pane of spheres, the sphere in the upper-left corner
will be selected. A Halo
2 level typically uses a few
multi sub-object materials to organize its textures, so create
one now following the next step.
16.
On the right-hand side, just below the grid of
spheres, click the Standard button (a list of
material types will appear), click Multi/Sub-Object, and then click
Okay.
17.
To the message asking what you want to do with
the old material, because there is nothing special in this slot,
click Discard, and then
click Okay.
18.
You will now have a material with a list of
other materials displayed in the lower half of the window. These
are all submaterials, and they are what you will apply to the
level. The ID number column to the left of the material names
indicates the number you will be setting on your polygon surfaces
to tell them what material to use.
First, though, name your multi/sub-object material. Click the
drop-down list just below the grid of spheres (it will show a name
such as 01-Default), and
then type a new name. For this example, type My
Material.
19.
To specify a few materials for your level to
use, begin by clicking the gray bar containing the submaterial's
name next to ID
1.
The
properties of that particular submaterial will appear. From here,
you can change the submaterial's name, set a color for it, and
more. For example, make this material the sky, so click the
material's name field just below the grid of spheres (to the left
of the Standard button),
and then change the text to read
+sky.
That's now this submaterial's new name.
20.
To distinguish this from our other materials,
set a color, as well, by clicking. the gray square next
to Diffuse on the left-hand side of the window, clicking a
bluish color, and the clicking Okay.
You will see a blue sphere displayed on your grid, and your
material should will be called +sky.
21.
Click the down arrow next to the submaterial's
name to display a small list.
This list will now display +sky just below My Material, because +sky is a
submaterial of My Material. To return to the list of submaterials,
click My Material on the
list.
Using this drop down list and clicking the material's name in the
submaterial list is how you navigate back and forth.
22.
To now create a floor texture, click the
submaterial's name next to ID 2.
Just like before, edit the material's name, but
this time use an existing Halo 2 texture.
Type f_im flat_light_scratchy as the material's name.
When you export your level, the exporter looks at these material
names and matches them to .shader files, and this name is telling
it to use flat_light_scratchy, located in the f_im collection. This
is a light-gray metal texture, so set Diffuse to a light-gray shade for
now.
Navigate back to My Material using the drop-down
list, and you're now finished creating your level's material. You
can continue to add new materials to the list exactly like you did
here, and you can add additional slots by clicking
the Add button if you run out.
23.
Now, you need to actually assign your material
to your level geometry. In your Perspective viewport, select
your box. To disable your sub-object selection, click
Editable Poly in the list, or deselect the
Polygon button
under the Selection
rollout.
24.
With your object selected, press
the Assign Material to Selection button
in the
Materials pane.
Your object will change color (probably to blue, the color of your
+sky material. If it didn't, ensure you don't have any sub-object
selection enabled—none of the buttons under Selection
rollout should
be highlighted.
25.
Now, you need to make sure the different faces
on your object have appropriate materials.
With your box selected, click the Polygon
button again
under the Selection
rollout, click the Modify tab, and then click the
Polygon Properties
rollout to expand it if it isn’t already expanded (you may need to
collapse one of the other rollouts or scroll down).
26.
The Polygon Properties
rollout has a
section called Material. You need to set the
material ID numbers for some of the faces of your box so that you
can assign different material types to them (otherwise you’d only
be able to assign one material to the whole box). In particular,
you need to have one material type for the floor of your
environment and a different material for the sky box (which is made
up of all of the sides of the box). So, you will use the two
materials you just specified: +sky and f_im
flat_light_scratchy.
Click and drag in the workspace to make a selection box around the
ceiling and three walls of your box (but not the floor). They will
turn red when they are selected.
27.
Click the Set
ID box, and then type a 1.
This assigns all of the polygons you have selected a Material ID of
1. Remember, this was the ID number of your sky submaterial. When
deselected, these faces should be the blue color you
selected.
28.
Next, click the bottom of your box to select
the floor.
It will turn red, and the other polygons of your object will go
back to their appropriate material color.
29.
Click the Set
ID box, and then type a 2.
This assigns your floor polygon a Material ID of 2. Now you have a
box with the sides and ceiling set to an ID of 1 and the floor set
to an ID of 2. If you recall, an ID of 2 is what you set your floor
texture to: f_im flat_light_scratchy.
30.
To map the floor, select UVW Map in the Modifier list, change the
U Tile and V Tile values to 5 in the UVW Map rollout, right-click
UVW Mapping where it’s
displayed above Editable
Poly, select Collapse
To, and then click Okay.
31.
At this point, your level is ready for export.
You've created level geometry and linked it to a b_levelroot
object. You've created a multi/sub-object material, assigned names
to its submaterials, and then assigned that material to your level
object and set IDs on its surfaces. Eventually, you'll want to
actually map materials properly onto surfaces (learn to use the
UVW Map and UVW Unwrap
modifiers).
32.
It's finally time to save your environment.
Click
Save
on
the File menu, type mylevel in the File Name
box, and then click Save to save your environment in the
data/scenarios/multi/mylevel/structure
folder.
Important: The location you choose to
save your file is critical because the Tags directory mirrors the
directory structure of the Data directory. So, when you import your
files into the game, Halo 2 Tool and Halo 2 Guerilla look in very
specific locations for the files. Typically, you'll want to save
your level in the data/scenarios/multi folder. Browse there and
create a new folder called mylevel, open that new folder, and then
create another new folder called structure.