Introduction - Part 1
- Canopy Trees
make some trees eh? There's lots of ways of doing things
in 3dsm. I think we all evolve
into using one method or another. Use whatever
works best for you. If you're new to making trees,
then I hope these tutorials help get you
I'm assuming you have a basic understanding
of 3dsm. You should know how to navigate 3dsm,
how to manipulate objects, how to load
textures into the material editor and how to apply them
I used 3dsm r4 to make mine. It's
probably not too different from other versions.
I'm also assuming you've read through either
the level building pdf for Ghost Recon, or Mike Schell's Ghost
Recon Map Making Tutorial .
We'll be using a texture file from Island
Thunder for the 1st tutorial so it's best if you have that also.
I think the easiest
tree to make for Ghost Recon is the one that uses the
canopy texture so we'll start with doing
one of those.
3dsm and in the front view port draw out a plane and
make the length and width 2m.
Change the number of length and width segments
to 2. Convert it to an editable mesh and
give it a name, like Branch for example.
Save the file with a name like canopy_tree01
or something like that.
Now we need to apply a texture to
this plane. We're going to use c01_canopy_tree.rsb which
can be found in \Program Files\Red Storm
Open the material editor and load
the c01_canopy_tree.rsb file into an empty
slot, and apply it to
your plane object. Make sure you select
the 2 sided option in the material editor. This will allow
the leaves to be seen from either side.
Now apply a UVW modifier. Next apply an
Unwrap UVW modifier.
Click on "edit" in the parameters
roll out of the unwrap uvw modifier. This opens a window
you to adjust what gets textured and what
Make sure that you can see the texture.
In 3dsm 4, you click on the cube next to where it says Update
Map. We need to see the texture in order
to edit our uvw's. Select all the uvw's. Your window
should look similar to this with the uvw's all selected.
Click on the Scale button (3rd button from
the top right) and hold it down so that the drop down menu shows
the other scale options. Choose the horizontal scale button (with
left and right).
Using the horizontal
scale button, we need to resize the uvw's
so that only the branch with leaves is
selected. We don't want the trunk to be applied to our plane.
So scale that white box a bit smaller and
use the move button to move the white box over the branch
with leaves. When you're done it should
look like this.
Once you have that done you can
deselect the uvw's by clicking anywhere in that window
close the window. You're done with texturing your plane.
It should now look like below. Save the file now.
The Tree Trunk
Now we need to make our tree's trunk. I like
using cylinders for my trunks.
Change over to the
perspective view and draw out a cylinder.
Make the height 3m, that will give us a trunk that is
50% longer than our plane. Give it a radius of 0.1m
and change the number of sides to 5 or 6. I'm going to
use 6. If you want to be able
to give the trunk a unique shape , for
example make it fat in one area or make it bend, then
you'll want to have more than 1 height
segment. I'm going to leave mine at 5 because I want to be
able to give this tree some character.
Change the name from cylinder01 to something like trunk.
Convert to editable mesh and save.
Aligning the Branch
Now we need to align
our branch with our trunk.
Select the plane with the branch/leaves
texture, click the align button, and click the trunk.
Align the plane with the center of the
trunk on the xy axis. Align the minimum of the plane's z axis
with the maximum of the trunk's z axis.
Rotate your plane object along the y axis.
The idea is to align the bottom
of the branch texture with the top of the trunk or just
slightly below it.
It should look like below. Save your work now.
Our tree is starting
to take shape. Before we go any further, let's work on
the trunk a bit more.
Working on the Trunk
3dsm there's a whole slew of modifiers to use to alter
the shape of an object.
Let's begin with using the taper modifier to make the
tree look a little thinner near the top.
Select your trunk and apply a taper modifier to it. In the parameters
rollout under taper amount
I used -0.3 which gives a nice tapered look. The top of the trunk's
radius becomes smaller than
the width of the branch on the plane object but that's ok.
apply an edit mesh modifier to be able to select polys.
Click on the poly button
to enter sub-object mode. Now select random polys on the
lower half of your trunk.
Next apply an xform modifier to those polys.
Use the select and non-uniform scale button to scale the polys
larger on the xy axis. The top of the trunk
will grow larger even though no polys were selected. Keep an
eye on that part as you scale your
trunk larger being careful that the radius at the top of your
trunk doesn't exceed the width of your
branch texture. This gives the trunk a nice unique looking
shape. When your done you need to Click
on your xform modifier to deselect it.
Ok, that gave our trunk some random
areas where it looks thick. How about giving the trunk
bend? But let's do it using the edit mesh modifier.
With your trunk selected , apply
an edit mesh modifier. Click on the poly button to once
again go into
sub-object mode. You should see your selected polys from the
last step. Just Click in the window
somewhere to deselect them.
We're going to select some new polys
and give a little tug on them in the xy axis. This will
a little bend. Select some polys around the middle of your trunk.
You want to select all the polys
of 1, 2 or 3 sections around the half way point.
I selected all the polys of the middle 3 sections.
Now use the select and move button
to give those polys a little push on the xy axis.
All we need is a little movement, not a big move or it
will be harder to texture.
When your done, deselect your polys and Click the poly button
to exit out of sub-object mode.
So let's go ahead and texture this
Bring up the material editor and
apply your canopy texture to the trunk.
Apply a UVW Modifier. In the parameters roll out under
mapping, select cylindrical.
Next apply an Unwrap UVW.
Now Click on the edit button in the parameters roll out.
We need to adjust the UVW's for the trunk
just like we did earlier for the plane object with the branch
and leaves texture.
Select all those white boxes and use the horizontal scale button
to resize the big white box so that all
the UVW's are on the trunk. You'll also need to select rows of
uvw's to move them right or left.
It should look something like this
when you're done.
Once you get it , deselect the uvw's
and close the window.
Your trunk should look something like this.
It's getting there but there's still
lots more to do. We need to make more branches.
Select the plane with the branch
Click on the hierarchies tab. Click the affect pivot
only button. Click the select and move button.
Move the xyz gizmo down on the z axis and adjust it on the x
axis so that it's lined up with
the bottom of the v in your branch texture.
When you have it aligned properly, Click the affect pivot button
again to deselect your xyz gizmo.
With your plane object still selected,
Click on the select and rotate button, hold down the shift
and rotate your branch on the z axis 90 degrees to create
of it facing to the side.
The idea here is to make a copy of our plane facing to the side
so that the player will
see the branches and leaves from the front or the side.
you let go, a window
pops up asking you how many copies. Just Click ok with 1 being
If your copy ends up being a little off center, just move it
over a little so that the branches
line up with the branches on the original.
You should end up with something like this. Save.
We're almost done with this model.
We just have to clone those 2 planes to add more branches.
Select the 2 planes, press
and hold shift, drag the planes lower on the z axis
using the select and move button.
Just choose 1 copy in the pop up window that follows.
Use the select and rotate button
to rotate the 2 planes simultaneously on the y axis
either clockwise or counter clockwise. I just rotated mine to
the 11 o'clock position.
The pivot was in the center though. So we need to move the planes
the x axis so that they look like they're starting from the trunk
of the tree and not
protruding both sides. Save.
Now, with those
2 new branches still selected, press and hold shift, rotate
the y axis, this time in the opposite direction, to
create a new pair of branches .
Move them along the x axis to the opposite side of the trunk.
Hopefully your tree is looking something like this.
Just 1 more step for this model
and then we add a collision object, a helper point
and tag it for Ghost Recon.
Select those new groups of planes
on the left and right. There's 4 planes in all.
An easy way to do it is by pressing "h" and selecting planes
03, 04, 05 and 06.
Planes 01 and 02 are the tree top and we don't want those selected.
Hold down shift again and rotate the 2 groups of planes 90 degrees
on the z axis.
You may need to move them over a little on the x and y axis so
they're aligned properly
with the trunk. You might even want to lower them a little on
the z axis so that all
the branches aren't at the same height on the tree. Play around
with them until
you're happy with how it looks. You may want to make more branches
It's up to you. Just be careful about how many branches you add
because you don't
want to have too many polys.
Here's how mine came out.
The Collision Object
Time to add the collision object.
The level building pdf that comes
with GR recommends using a 4 - 6 sided object
to represent the 2d collision of the tree. They recommend
that it exceeds the bottom
of the tree and is at least 200cm long from the base of the tree.
How you proceed from here is up to you but I don't follow those
rules to a "T"
and rarely have any troubles.
I know in this case , my tree's
trunk is 3m or 300cm. I also know from reading the pdf
that the player's character can't step up onto anything
than 60cm. So as long
as the collision object is more than 60cm high, there shouldn't
be a problem.
So a collision object just half the height of this tree's trunk
should be fine since it would
be 150 cm tall.
Select the trunk of the tree and
go to edit/clone to make a copy of the trunk.
I add collision to the name of the new object so I know it's
the collision object.
And just to be sure there's no problems caused by the texture
that's applied to it, I delete
the unwrap and uvw modifiers from the stack of the new collision
When you do that, the edit mesh modifier becomes the top modifier
in the stack.
Click the poly button to enter sub-object
Select the polys of the top 2 sections of your collision
object and delete them.
Answer yes to delete isolated verts. This leaves us with 3 sections
of the trunks collision object
which is more than half of the total length or 180 cm to be more
precise. Think of it this way.
The length starts out being 300 cm. The length is divided into
5 sections. 300cm / 5 = 60cm.
60cm x 3 sections = 180cm. Should be enough to serve as a proper
The Helper Point
Now we add the Helper point.
The helper point must be added while
using the top viewport.
Here's an easy way to do it.
Switch to the top viewport. Make sure your
collision object is selected.
Under the create tab, Click on the helpers tab. It
looks like a tape measure.
Click on Point and then Click on the center of your collision object
in the top viewport.
Right Click away from the center to deactivate it. Name it "O" ,
that's a capitol letter O with
Yes Kids, I know your tired but we're almost
We just have to tag everything and
then group it and we're done. Yay!
Let's start with our collision object. Select your
Click on the utilities tab and then Click on the map editor which
I hope you've added a button
for. If not you can just Click on "more" and then select the map
editor from the window.
When you open the map editor you'll see the polygons tab. All
you have to do here is put
a check in the boxes that say "not collidable 3d" and "not rendered".
Select the trunk. Open
the map editor. Place a check in the box that says "not collidable
There's a drop down menu for surface property.
Use it to select "wood".
Press "h" and select
all your branches.
Open the map editor again and place a check
in the box for "not collidable 2d". Click ok.
You've just tagged your branches, trunk
and collision object. Wasn't that easy? ;)
Now we group the whole shebang.
Select all of the objects. Easy
way to do it is by pressing "H" ,
clicking "All", and Clicking
Under the group menu, Click on group. This brings up a little
window where you name your group.
You need to name your tree following this format. r_<n><tree>x where
r is replaced by the room
number of the map which is usually 1 for an outside room, and
x is replaced by a unique name
that you give it.
My outside room number is 1 and
my unique name is going to be "canopy_tutorial".
So the group name will look like this. 1_<n><tree>canopy_tutorial. Before
you Click ok to close that window, select and copy the unique name
So I select and copy "canopy_tutorial" . Click ok to close that
Open the map editor. Click on the
general tab. In the window for LOD1: Model Name, paste
your unique name.
Place a check in the box that says "cast shadows" if you want
your tree to cast a shadow in your map.
You won't actually see a shadow until you use the lighting tool
on your map.
You might notice that there's a window for LOD2 also.
This is for using a 2nd low poly model to switch to in game for
when the player isn't near the tree.
The idea is to save on resources since the player is too far
to see a lot of detail.
So that's it, congrats! You've just
created a tree for GR.
Here's what mine looks like in GR.
That's it in the middle of the screen. Too
small ? No Problem.
Apply an xform modifier to your
original grouped tree or a copy of it.
Click on the Select and Uniform scale button. Scale
the tree larger on the xyz planes.
Don't forget to go back into the map editor to change the LOD1
model name if you give your tree a different unique name. Using this method
you can have copies of the same tree but different sizes.
Here's another shot from GR of the same tree scaled bigger using
the above method. You can see the original directly behind
In the next
installment we will create a Fir