Notes on MilkShape 3D - The Risberg Family

plainspecialSoftware and s/w Development

Dec 14, 2013 (4 years and 7 months ago)




Notes on MilkShape 3D

Created 09/12/04

Updated 10/22/05
Updated 10/23/05
Updated 10/30/05
Updated 11/
Updated 11/13/05

Updated 11/27/05
Updated 12/30/05
Updated 06/24/06
Updated 03/24/07
, Updated 06/26/08

Updated 06/29/08
, Updated 09/06/08


MilkShape 3D (at
) is a low
polygon 3D modeling program. Developed by Mete
Ciragan in Switzerland, MilkShape has evolved over the last several years to be the standard free
ware program
or 3D modeling, and includes a large number of plug
ins and features supplied by developers in the MilkShape
community. Besides its own internal file format, MilkShape includes a large set of supported export formats for
different game programs, and a med
size set of supported import formats.

MilkShape 3D deals with the basics that are widely supported on numerous Graphics Cards and Graphics
Application Programming Interfaces (APIs) such as DirectX and OpenGL.

The basic building blocks MilkShape
3D de
als with are Vertices, Polygons (3
sided), and Normals. A normal (in Flat Shading) can be imagined to
project from the middle of the polygon at a 90
degree angle to the surface of the polygon.

The normal always
faces from the side of the polygon looking
outward, and is used to calculate the intensity of light on the polygon.

In addition to these modeling building blocks, MilkShape also supports texture mapping and keyframe based

MilkShape competes with higher
end programs such as trueSpace, M
aya, 3ds Max, and Lightwave 3D, which
have costs in the hundreds to thousands of dollars. The registration fee for MilkShape 3D is $25. The only other
cost programs that we have seen getting significant attention are Blender (at
) and 3D
Canvas Pro (at

We are currently
nning MilkShape 3D release 1.8.4
, which was released in

. There are have
no major updates recently, these are mostly bug fixes, though there was the addition of a new group primitive,
lled a Plane, about five revs ago.

Each rev has included updates to some of the rendering modes (such as a
new materials mapping mode in
1.8.3), editing tools (s
uch as snap
grid about two revs ago), and in the
import/export tools.

Reference Material

Being a low
cost program, most of the help, reference, and tutorial files for MilkShape are contributed by users,
and not always kept up to
date or professionally edited. Here are some of the most useful we have found:

“MilkShape 3D help files”, which are a separate download from
, attach into the
program, and are a reference fil
e which is well organized in that it matches the structure of the menus
and tools. There is a short introduction on the first page, then after the reference materials, there are a
new tutorials and then appendices of background information. Well worth do
wnloading, and used as a
major source for these notes. However, it often doesn’t tell why you would use a particular tool or
approach, and it is at least a year out of date.

“j0sh's MilkShape Tutorial for bloody newbs” was a download from (
), and
appears to have been created using MilkShape 1.5.7. It takes you through all stages of building an
animated game

with lots of screen shots during the process (the help files are low on scre
shots). Well worth downloading.

“MilkShape Tutorials and Examples”, from

appears to have been written
by someone at Psionic during 2001.

We don’t know what version of the program was used. Similar in


nature to the Josh examples, it has lots of screen shots and hints. There are examples of a machine gun
and an interior scene in this download.

“3D Game Programming All In One”, by Kenneth

C. Finney, from Course Technology PTR, 2004, 848
pages. $49.99 Amazon Price $29.99. This is one of a number of books on introductory game
programming that include a MilkShape evaluation copy on a CD, but it is the only book we have found
that contains t
ext and examples of use MilkShape for 3D modeling (all of Chapter 13 is about
MilkShape). But the content of that chapter appears to mostly be a restating or minor rewriting of the
reference information from the help files, so we never bought the book.

ne thing to note about the help and tutorial files is that few of them go into the specialized plug
ins that appear
on the Tools menu, so there is little support for these (except in the few cases where the author of the help or
tutorial file was the autho
r of the plug

In these notes, we have tried to describe the commands and environment of MilkShape3D along with the pl
ins that are shipped with 1.8.x
, starting with the simplest concepts, describing commands built into the program
as well as the p
ins. This way you learn about the commands in an additive fashion, whether they are part of
the program or the plug
ins. For instance, after creating objects using the program’s tools, we discuss the
Extended Primitives plug
in, then the basic editin
g operations, the plug
in tools for aligning and flattening, then
the program’s command for extruding, then the plug
in for extruding edges, etc. Similarly, extruding and lathing
are both considered to be editing operations at a similar level of importanc
e, even though one is in the program
and one is in a plug


The MilkShape coordinate system has X left/right (horizontal), Y up/down (vertical), and Z is into/out of the
screen. The coordinates are measured in units, from about

1000 to abo
ut 1000, where 0 is at the x,y,z corner
marker in the center.

The basic screen includes 4 viewports and a control panel area on the right with tools for selection and creation.
At the right are four Control Panels, called “Model”, “Groups”, “Materials”,
and “Joints”. Initially we will
discuss the “Model” panel, which handles creation and selection of model parts. Using the Windows menu, we
can move these to the left side.

Across the bottom is an animation control panel, called the keyframer. This has
a timeline to skip through
animation frames, and is turned on by selecting the “Anim” button at the lower right. This is discussed in the
section on “Joints and Animation”.

There can be only one file open at a time.

The menus are: File, Edit, Vertex, Fa
ce, Animate, Tools, Window, and Help. However, since most of the
important commands have keyboard shortcuts or similar facilities in the Control Panels, the menus are not used
all that often, with the exception of File for file management (open/close/save
), and Tools (for running plug
Since the plugs have no standard naming, dialog management, or operation, they really can’t be placed into the
Control Panels or have shortcuts provided.


Typically, the viewports are configured as:





To pan a viewport, hold Control, click left, and drag.



To zoom in, when the Select tool is not active, hold Shift, click left, and slide the mouse up. To zoom out, when
the Select tool is not active, hold Shift, click left, and slide the
mouse down. If you have a mouse with a wheel,
you can also zoom in and out using the wheel.

There is a context menu that can be brought up by right clicking on a viewport. This includes options to
indicating if shading and textures are to be shown, to z
oom and zoom out, and also to Frame All and Frame
Selected, which will zoom to include all parts of the model, or just the selected parts.

Each viewport is a different visualization of the model. Each is typically focused on a different axis, is also
re you do the editing. There is another type of viewport that is the 3D view (also called Perspective view),
which is used to see the model from different angles, and also to show the textured or shaded model. There is no
editing in the 3D view.

You can

conditionally turn the viewport captions on and off. Turning them on allows you to change the view
axis, to “Top”, “Left”, etc. Each caption has a set of 3 numbers in the title, as follows:

Grid Size/Field of View: This value can be used to change the

Field of View. Lower numbers restrict
the field of view more but can be used for zooming into objects. A larger number will create a rounded


effect or fish eye effect. It is not common to change this value as the default value of 65 gives an


of the way we see things in the real world.

Near: Both the near and far values deal with the 3 dimensional clipping volume. The Near value is the
distance from the viewpoint that the scene will begin to be drawn at. To see the effect this has zoom

close to your model and incrementally adjust this value you will see that the parts of the model closest
to the viewpoint will


or "clip". You will be able to see 'inside' the model where parts have
been 'clipped'. If you have programmed any

3D graphics and have had to deal with a camera setup you
will be familiar with the concept of Near and Far values.

Far: Whereas Near deals with the Z clipping plane closest to the viewpoint this deals with the clipping
plane at the farthest point the vie
wpoint can see to. Therefore decreasing this value and increasing the
Near value will create a narrow band of vision. In 3D games popup can occur (especially in driving
games) where the Far value has been perhaps too small.

One viewpoint at a time is cu
rrent, and is the place where you last clicked. This is not indicated anywhere, but
you can make the current viewport expand to full size (occupying the full screen) by pressing the space bar. This
is a quick way to see more detail.


A MilkShape
model is composed of the following:

Vertex: a single point

Face: a set of three vertices. A face also has a direction, by which the vertices are followed, and is
discussed below.

Group: a collection of faces. There are a number of primitives meshes defin
ed, such as box, cylinder,
sphere, geosphere, and plane.

Joint: used for animation.

For a face, the order in which the vertices are selected is important as they define whether the face will face
outwards or inwards. Select vertices in an Anti
direction to create an outwards facing face. A good
way to see if a face is outwards or inwards facing is to right click in the perspective viewport and select

from the pop
up menu. If any faces are black then this means they are inwards faci

The tools in the MilkShape toolbox allow for selecting or creating any of vertices, faces, groups, or joints. We
will first talk about creating each of the first three, and leave the joints discussion for the Animation section.




To create a v
ertex, chose the Vertex tool (the shortcut is F5), and click in one of the 3 windows. Chose the
window based on the plane that is to connect the vertices.

To create a face, chose the Face tool (the shortcut is F6), then click on 3 vertices. On the tool
box, the threshold
value represents the proximity the mouse cursor has to be in to successfully select the vertex as the next vertex to
assemble a face. To create a face three vertices must be selected in order.

Another approach is to select 3 vertices
using the Select tool (defined below), and then use the Face menu’s
Create Face command. The keyboard shortcut is “F”.

One approach to modeling is work from vertices to faces to groups. We call this a “bottom up” approach. This
approach is basically re
quired when the shape being modeled is entirely irregular. In this mode, it is also
common to place background images on the viewports, and trace the edges by places vertices, then connect
them, etc. For instance, the tutorial by j0sh carries out this ap
proach for modeling a human figure.

The other approach is to work from groups that created as geometric primitives, such as spheres and cylinders,
and then deform them into the desired shape.

To use this approach, choose the Box, Sphere, GeoSphere, Cylin
der, or Plane tool, set any options that are
needed (such as numbers of faces to create for the primitive), and then click and drag the shape to create it in
place. Here are notes for each:

Box: There are no toolbox options for a box. It is always 8 ve
rtices and 12 faces. When creating a box
primitive the first click will define the corner of the box (not the center). When the mouse is dragged
the box is re
proportioned in the un
controlled plane so that the box will not be flat after it is created.

ylinder: This is more complex than a box, since the user can specify the number of stacks and slices.
The cylinder also has another option that is the Close Cylinder option. This will cap the cylinder at
either end. To create the cylinder, the position
of where the mouse was clicked to start the cylinder
creation is the origin of the corner of the cylinder (in a 2D view). Dragging the mouse in the 2D view
will automatically re
proportion the cylinder in the uncontrolled plane so the cylinder is not flat


Sphere: This is similar to a Cylinder, and is constructed of stacks and slices. As the names suggest,
stack is the number of segments on the Y plane and slices is the number of segments in the X plane.
The point at which the mouse is cl
icked to create the sphere is where the origin of the sphere will lie.

GeoSphere: this is a variation on a Sphere in that the faces defining the sphere are based on a
geometrical solid (like a geodesic dome), rather than being arranged in stacks along an a
xis. GeoSphere
is created with one parameter, which is depth. You should experiment with this value to achieve a
complexity you are after. You will notice that you can achieve the same visual smoothness in a
GeoSphere that you can in a sphere with fewer

Plane: This is a flat grid, in which the user can specify the number of rows and columns. The default is
3 and 5. Like the box, the Plane is constructed by clicking on the first point, and dragging to the other

In addition to these prim
itives, there is a tool on the Tools menu called “Extended Primitives”. This provides a
large library of primitives, such as gears, pyramids, arcs, t
junctions, and more. The difference between these
primitives and those on the Modeling control panel is
that there are no options to control many points are to be
used, and the primitive is created simply at the middle of the model, rather than at a location indicated by
dragging with the mouse.


The keyboard shortcut is F1.

First indicat
e what you want to select: Vertices, Faces, Groups, or Joints.



Click on an object. Or drag around an object.

Click adds to your selection, Shift
Click removes from your selection. It is common to
combine several selection command
s (on different viewports) to get just the right points selected.

The “Edit” menu contains the typical selection control commands, such as Select All (shortcut Control
Select None (shortcut Control
A), Select Inverse (shortcut Control

In a
dimensional model, having a selection facility that works by drawing on a 2
d view is less than ideal.
New users to MilkShape often find that when they selected vertices/faces they always selected the ones they
wanted plus a more on the other side o
f the object. There are two facilities provided that help on this. The first
is the “Ignore Backfaces option” on the Select tool. This causes the Select tool to ignore points on faces that are
facing away from you. Typically this works well when the mo
del has been made so that all faces are outwards
facing (away from the interior of the model). Hence, you only get selections on the surface that facing you.

The other facility provided is to disable the selection of parts of the model. For example Edit

> “Hide
Selection” (keyboard shortcut Control
H) will disable the viewability and selectability of the vertices or faces
currently selected. A good approach to focusing selection is to select the vertices that you don’t want, then use
H to h
ide them, now just select from the remaining portion.

To restore the visibility, use the Edit menu
> Unhide All (shortcut Control
H) command.

MilkShape3D has a very complete “Undo” facility. Nearly all of the editing commands can be undone or
one. These commands are on the Edit menu, in their usual places. There are even multiple levels of Undo.

Basic Editing


On the Edit menu, we can delete the selected object(s) using Delete (shortcut Delete). To quickly delete all
ects (not done very often), there is a command Delete All (shortcut Shift

The next most commonly used command on the Edit menu is to duplicate the current selection (shortcut Control
D). This is often done to after half of a symmetrical object h
as been modeled, and we are now duplicating to
form the other side.

MOVING (shortcut is F2)

First, select the vertices that you wish to move, and then choose the Move tool. There are two approaches to
moving: the standard one involves dragging the object
. The other approach uses the numeric fields and buttons
at the bottom of the Control Panel when the Move tool is selected. There are three numbers and above the three
axis labels. Enter values, and then click on the “Move” button

The axis labels are a
ctually buttons that can be selected to constrain movement. A button is selected when it is
“pushed in”, which means that the raised border of the button is not shown. We think it would be better to have
the background of the button change as well, but a
pparently the UI doesn’t do this. You have to watch really
carefully to see the selection status.

So if you wanted to move some vertices horizontally (X) but not vertically (Y), in the Move options deselect Y
and Z, leaving only X. To move something ver
tically only, deselect X and Z and select Y.

This is useful for keeping things lined up accurately.

Since you can constrain in any of the combinations of X,Y,Z, this explains why MilkShape doesn’t use the
convention of holding down Shift to constrain move
ment to 90 degree angles or similar approaches used in
Adobe Illustrator, for instance. In fact, holding down Shift is a bad habit, because that means to zoom in or
zoom out on the viewport.



ROTATING (shortcut is F3)

First, select the vertices that you w
ish to rotate, and then choose the Rotate tool. There are two approaches to
rotating: the standard one involves dragging the object. The other approach uses the numeric fields and buttons
at the bottom of the control Panel when the Rotate tool is selecte
d. There are several fields, and they operate in a
similar manner to the fields of the Move tool described above.

With the Rotate tool there are three further, very useful options.

Center of Mass: This option is the default and most commonly used. The ob
ject will rotate about its
center of mass.

Origin: This option makes the object rotate around the origin of the scene at point x = 0, y = 0, z = 0.
This provides a distinctly different behavior from the first option.

User Point: This is the most flexible o
f the rotate options. The point for rotation is set on the

press down, any mouse movement after this rotates the object around that point.

Rotation is around one of the 3 main axes. As with the Move tool, the axis labels are actually buttons t
hat can be
selected to constrain rotation.

There are options to rotate in a local or global coordinate system, which are not documented.

SCALING (shortcut is F4)

First select the vertices that you which to sale, and then chose the Scale Tool. There are
two approaches to
scaling: the standard one involves dragging the object. The other approach uses the numeric fields and buttons at
the bottom of the Control Panel when the Scale tool is selected. There are several fields, and they operate in a
similar m
anner to the fields of the Move tool described above.

Using the numeric approach, you can specify a number of scale options. First of all, there is the same facility to
specify the reference point as in the Rotate tool.

You can enter a scale factor in a
ny combination of the fields, and then click on “Scale”.

As with the Move tool, the axis labels are actually buttons that can be selected to constrain scaling.

There is an additional button called “U” that is not documented to our knowledge.



The AutoTool option can be used to automatically switch back to the last tool you were using. For example if
you wanted to select vertices individually for movement, check the Auto Tool option, then the Select tool, Select
the vertex to be moved then cli
ck the move tool. After the move operation is completed the Auto Tool will
switch the current tool back to Select, once the select operation is complete it will switch back to Move, etc.

This is an alternative option for tweaking, but it is best to get u
sed to using the function keys (F1 through F4) at
the top of your keyboard, they allow more flexibility.

Other Editing Operations


It is quite common to end up with faces that are facing the wrong way. One reason is that the object or

that they were a part of has been rotated around, another is that the faces were drawn in the wrong direction in
the first place, etc. This can be most easily seen on the 3
D view when the Flat Shaded mode is being used.

On the Face menu, the “Rev
erse Vertex Order” command (shortcut Control
F) will change the face


Once a large number of vertices have been created and edited, it is quite common that points are not lining up as
clearly as they should be. F
or this reason, MilkShape supports a number of approaches to adjusting the
locations, using the grid, using reference points, etc.



The simplest is Vertex menu
> Snap To Grid. This m
oves all selected vertices to be in line with the smallest
grid x, y and

z position (to see the smallest grid positions, zoom right in).

The next approach is flattening. This is a command on the Vertex menu, which has three subcommands: Flatten
in X (shortcut Control
X), Flatten in Y (shortcut Control Shift
Y), and Fla
tten in Z (shortcut Control
Z). These commands operate on the selected vertices (there should be at least two), and set the x, y, or z
coordinate of the vertex to the average of the corresponding coordinate for all the points. This will cause the
oints to line up in the specified dimension.

Another approach is Snap to Plane, which is a command on the Vertex menu. To use this, select a face, then
select a set of vertices, and then select the Snap to Plane command. The vertices will be adjusted to

line up on
the plane formed by the selected face. This is a good approach to repair a collection of faces which should be
planar, but have been distorted.

The most advanced, but flexible approach is the “Positioning Tools” plug
in, which is on the “Tool
s” menu.
This works only when the model has faces, but it will modify the vertices just as the above command does, but
with more options. It brings up a dialog box which has Alignment and Distribute options, similar to
alignment/distribute tools on progr
ams such as Illustrator and Visio.

The Alignment tool lets you align objects relative to either the Origin point (0,0,0), to a specified point or to the
selected items themselves. Here is summary of the tool’s help file:


Select your objects: objects tha
t you would like to align. Vertices, faces or groups can be selected.


Invoke Tools
>Positioning Tools, and choose Alignment (which is the default).


Specify what you want to align relative to. Options are:








Specify what Axis or Axes to

align on. Select from X, Y, or Z. The axes are active when their buttons
are pushed in, meaning that they have no highlight edge on them.


In the grid of boxes to the right, specify what to align and the alignment mode. There are rows for
Vertices, Mesh
es (Groups), and Faces as what to align, and the alignment modes can be:



If you specified in step 3 that you wanted to align by the "Origin" then minimum will be 0. If
you specified a particular point then the value for an axis, on each axis, wil
l be the "minimum"
that is used. If, instead, you specified "Selected" minimum will be the object with the smallest
value on a given axis. The minimum position is calculated on an axis
axis basis so the
minimum X position is not necessarily the minimu
m Y position.



If you specified in step 3 that you wanted to align by the "Origin" then center will be 0. If you
specified a particular point then that point will be the point that the objects are centered on. If,
instead, you specified "Selected"

center will be the center of all selected objects (midpoint of
the maximum position minus the minimum position). The center position is calculated on an
axis basis so the center X position is not necessarily the center Y position.



If you

specified in step 3 that you wanted to align by the "Origin" then maximum will be 0. If
you specified a particular point then the value for an axis, on each axis, will be the "maximum"
that is used. If, instead, you specified "Selected" maximum is the o
bject with the greatest
value on a given axis. The maximum position is calculated on an axis
axis basis so the
maximum X position is not necessarily the maximum Y position


Click “Align”

The Distribution tool lets you distribute the selected objects re
lative to themselves. You can easily remove the
space between objects, even the space between or specify the spacing.

The Distribute tool lets you distribute


objects relative to either the Origin point (0,0,0), to a specified point or to the selected ite
ms themselves. Here is
summary of the tool’s help file:


Select your objects: objects that you would like to align. Vertices, faces, or groups can be selected. In
most cases, you will want three or more objects selected.


Invoke Tools
>Positioning Tools,
and choose Distribute.


Specify what you want to distribute relative to. Options are:








Specify what Axis or Axes to distribute on. Select from X, Y, or Z. The axes are active when their
buttons are pushed in, meaning that they have n
o highlight edge on them


In the grid of boxes to the right, specify what to distribute and the distribution mode. There are rows
for Vertices, Meshes (Groups), and Faces as what to distribute, and the distribution modes can be:



Any space between th
e objects will be removed on the selected axis



The objects will be spaced evenly based on their "centers" on the selected axis



The objects will be spaced according to the specified padding values that can be entered as
seen below


Click “Dist

EXTRUDING (shortcut is F7)

Extruding appears to be as commonly performed as moving or scaling, but for some reason the tool for it is
located below the create buttons for the different groups.

Anyway, extruding involves selecting one or more face
s, typically those that make up an edge of an object, and
moving them away from the edge, creating a shape in the area swept out. Typically you will select the faces in
the view where they are face
on, then extrude by selecting the Extrude tool and draggi
ng in a view where the
motion is visible.

As with the other move/scale/rotate operations, you can select the axes which are to be constrained by selecting
the “axis constrain” buttons.


The above command for extruding only works for faces.

If you have a “hollow edge” such as polygonal region
at the top or bottom of a leg you are building, there is no face to extrude. In this case, use “Extrude Edges…”
which is on the “Vertex” menu (this was added sometime between MilkShape versions 1.4 an
d 1.6). This brings
up a dialog box in which you can specify the extrusion axis, and the amount.

When using the Extrude Edges tool a lot of vertex work is required, therefore you should remember to make use
of the
Flatten X


commands on the Verte
x menu when appropriate, these allow you to align vertices
and will make modeling easier and tidier.

Here are the options for extruding edges:

: The extruded edges will be an “extension” to the faces sharing the edge which is being
extruded. So t
he surface including the new extrusion will be flat, i.e. the vertices of the new extrusion
will be closer to meeting in the middle of the wheel arch.

: The extruded faces will be perpendicular to the faces sharing the extruded edge, so
the su
rface including the new extrusion will form a lip, or corner. The reverse checkbox determines in
which direction the lip will go.

anual Offset
: This option, when enabled will allow you to manually type in an extrusion amount.
The three edit boxes under th
e Manual Offset group panel will become enabled and allow you to enter


an amount of extrusion along each of the world axis. For example, an amount of X:
7.0, Y: 0.0, Z: 0.0
gives the following result (note that the extrusion is flush to the extruded edge
because it was extruded
along the X axis only):

xtrude only Non
Shared Edges
: This checkbox (when unchecked) enables the extrusion of all
edges between the selected vertices, for example this allows for easy extrusion of the edges of a circular
disk witho
ut extruding all of the edges that connect with the outside edge and the center vertex.

TURN EDGE (shortcut is Control

Select two faces, and then use this command. The Turn edge command will take the line that joins the two
selected triangles and plac
e it on the 2 opposing vertices. The primary use is when then two faces should bend
in or out according to the new line, while they might have been made without this consideration.

DIVIDE EDGE (shortcut is Control

Select two vertices and press CTRL
P or click divide edge and it will create a new vertex in between them
allowing you to add more detail where you need it.


When modeling it is more efficient to build one side of say a humanoid, then flip it for the other side. So move
your half

right up to the centerline of the vertical axis, now select the group or all the faces and used the
Duplicate Selection command on the Edit menu to get a duplicate. It will be directly over the old one so you
can’t see it. To flip it, use one of the fol
lowing commands and the Vertex menu:

Mirror Front <

> Back

Mirror Left <

> Right

Mirror top <

> Bottom

SNAPPING (shortcut is Control
N) AND WELDING (shortcut is Control

Snap brings all the selected vertices together into one place. First select them,
and then use the Snap command.
However, they all still exist so you must weld them to create just a single vertex at that point!

Welding snapped vertices makes them a single point. Select, and then used the Weld command.


Select a face, a
nd use these commands from the Face menu. You can divide into 2, 3, and 4 faces, to allow for
adding more detail.

Getting Model Statistics

The Model Statistics window (bring this up from the Tools menu) provides useful information that should be
to throughout the construction of your model. Some games you may make models for will have an
optimum number of polygons (triangles, faces), joints etc, so its important to first check your target game then
make sure your model suits these requirements by

using the Model Statistics window.

This feature can be accessed from the main menu by clicking Tools
> Show Model Statistics.

Another way to get model statistics (or in particular, those parts of the model that are selected is to use) is Tools
> SelPo
lyCount. This particularly useful, as we have used it to determine how many vertices are selected (this
detects multiple vertices at the same point, or aids in determining when to turn off “Select Backfaces”.
However, it is clear that the counting of ver
tices is different for “Show Model Statistics” vs. “SelPolyCount”.
For instance, if you make a box and leave it selected, “Show Model Statistics” will indicate that it has 8 vertices,
while SelPolyCount will show the different vertices at the corners of t
he box are repeated for each polygons at
each corner, hence there are 20 vertices in all.

The most comprehensive version of model statistics is available through Tools
> Model Information V1.7. This
brings up a dialog box with expand/collapse fields for

a large number of attributes of the model including counts,
textures, overall coordinates, animation frames, and more.



File Management

Now that we have created and edited a model, it is time to save it. MilkShape3D has the standard facilities for
n/Close/Save of models.

Merge command will add the contents of the chosen file into the current file.

Import supports a range of third
party formats, including Half
Life, Quake, Unreal, Wavefront (Maya), 3d
Studio, Lightwave, and more. It appears that m
ost of these were contributed as plug
ins, so we don’t know how
good they are.

Export is the inverse of import, and has a similar (but not identical) set of formats. The most important one for
us is the Direct X 8.0 export, which is used by several game
engines including Dark Basic.

Further commands on the Viewport Context Menu

Continuing on, in preparation for Textures and Animations, we discuss several of the options on the Viewport
Context menu, brought up by right clicking on a viewport.

Shading Type

Select from one of the following:

Wireframe: This shows the model as it would be composed with lines between the vertices to represent
the outlines of the faces of the model.

Flat Shaded: This shows the model with single color flat faces to the structur
e. In this view, individual
polygons can be seen easier than in the other views.

Smooth Shaded: Smooth shading creates a gradient polygon when the light determines the brightness of
the polygon at each vertex it belongs to. This gives a natural look, not
possible in wireframe or flat

Textured: the same as smooth shading but assigned textures and alphamaps are also displayed.

Reset View

This menu option allows the user to reset the viewport back to the default viewport settings. The defaults are th
settings used when MilkShape 3D is started up.

Frame All

This will frame the complete model (including all polygons/groups in the current workspace) into the center of
the view. This allows the easy viewing of all parts of the current model, it can also
be useful when you are
finished working on a specific part and instead of resetting the view to default you can frame the entire model for
a better view.

Frame Selection

This works in much the same way as Frame All except the view is focused on the current

selected object/s in the

Choose Background Image...

This allows the user to choose a background image for their model. This feature is commonly used to have a
reference picture from which to work. This option will open a standard windows open b
ox, choose your image
from the appropriate directory on disk. A background image cannot be applied to a 3D (perspective) viewport.

Each pixel in the background image takes up 0.25 units on the MilkShape 3D orthographic grid, so for example a
100 x 100 pix
el image will take up 25 x 25 units on the grid. The background image is always centered, if the
image is of even height or width then the best estimate is used.



Take Screenshot...

This menu choice will bring up a standard Windows save box. The current co
ntents of the viewport can be
saved in .bmp format. When using this function you must type the .bmp file extension onto the end of the
filename, if this is not done it will be an unknown type file.

Record AVI...

This feature can be used to record an AVI fo
rmat file of the animation of the currently loaded model. The AVI
will run for the entire length of the frames currently specified in the Keyframer at the bottom of the MilkShape
3D window. If you have an animation then it will be played and captured in th
e AVI file, if there is no animation
then you will just get a still model, i.e. no animation or movement.


Grouping your model is an essential procedure if you intend to texture your model at a later date. Grouping can
also allow you to work more pro
ductively by being able to hide an entire group at the press of a button.

The Group tab of the toolbox allows the organization of your model into distinct parts. Groups can be smoothed.
Groups are also important in that textures can be assigned to group
s, but not to individual faces in the groups.

Each group has a description. The commands on the Groups tabs of the toolbox allow for creating, deleting,
assigning and smoothing groups.

Group Selector Box

This list box is used to highlight the group you w
ant to operate on. The name of the group is displayed along
with any materials that are assigned to it. Each group occupies one line in the box.

All of the groups that you create are in the Groups list that appears on the Groups tabs of the Toolbox.

If y
ou create individual faces, they are placed into a group of their own.


This button is used to select a group (the same action can be performed from the Model tab by clicking Select,
Group then clicking on the appropriate group). To select a group f
rom this tab, indicate which group you want
to select by clicking on its name in the Group Selector Box, then click the Select button, to deselect a group press
it again.


When you have a group name highlighted in the Group Selector box you can press t
his to hide the particular
group from view in the viewports. Use this when you find that your workspace is becoming cluttered, so as to
ease your workflow. This is one of the primary reasons for organizing your polygons into groups.


When there is
a group highlighted in the Group Selector Box press this button to remove the group from the
workspace. Note that this


deletes the group from the model, so use it wisely.


This button is used to regroup collections of polygons (that may

belong to another group or not) into a newly
created group. This removes them from any current group. Several groups can be selected then regrouped or
selected polygons can be regrouped. Remember to rename your group once you have created it.



Rename Bu
tton & Box

In order to rename a group you must highlight it in the Group Selector Box, the type the name you wish to
rename it to then click the rename button. It is wise to do this as you create groups so that you can easily refer to
them in the future.

moothing Group Select

Pressing this key then one of the Smoothing Group Numbers will select the polygons assigned to that smoothing
group. Smoothing Groups can only be selected on the numbers that have been assigned.

Smoothing Group Assign

When you have a
group of polygons selected you can press this button then one of the Smoothing Group
Numbers to assign all selected polygons to a smoothing group. Additional groups of polygons can be added to
the same group without overwriting the previous contents of the

Smoothing Group.

Smoothing Group Numbers

These numbers act as a storage bank for groups of polygons. They can have polygons assigned to them and
selected from. Assigning groups of polygons to a Smoothing Group number will Smooth Shade them (Smooth

shading has to be enabled to view the effect of this, right click the 3D perspective view and click Smooth
Shaded from the pop
up menu) if the Auto Smooth check box is ticked.

Smoothing Group Clear All

This button will remove the assigned Smoothing Groups

from the Smoothing Group Numbers. The polygons
will remain smooth shaded but they will no longer be in the same Smoothing Group.

Smoothing Group Auto Smooth

When assigning Smoothing Groups ensure this is checked if you wish the selected polygons to be smo


The materials tab of the toolbox is used to control the texture used to render the faces of the groups. As
indicated above, texturing is always done on a group
group basis.

e have compiled a library of textures that you can sele
ct from
, though these a
re stored under the

6” directory

on our T60 and T61 computers
. These include a number of wood types, brick types,

Material Selector

This list box is used to highlight the material you wish to operate on.

One mate
rial is displayed per line of the
box; the material is identified by its name.

Material Preview

This small area shows a sphere onto which the highlighted material is mapped.

This serves as a Material

You can rotate the sphere by Left
Click and d
ragging, to see the whole Material.


This button refers to the Ambient light of the environment the Material is in; this attribute affects the color and
the intensity of that color that the material reflects.

Pressing this button shows a color pick
er window. In other
modeling programs, there are options to create additional light sources in the model, after which you typically
turn down the ambient light

however MilkShape doesn’t appear to support this.




This button refers to the lig
ht that the material will directly reflect.

This attribute has the most influence over the
color of the material.

Pressing this button shows a color picker window.

Specular & Specular Slider

This button refers to the Specular Highlight of the material.

Basically selecting a bright color will create a
highlight on the material of the color chosen.

Moving the slider below it changes the focus of the highlight; the
highlight can be made to be a small spot ranging to submergence in incandescent light. Pres
sing this button
shows a color picker window.


This button represents the color and the intensity of the light that the material emits.

This attribute will appear as
a glow around the material. Pressing this button shows a color picker window.

nsparency Slider (below emissive)

This slider adjusts the amount of transparency that an alphamap applies to a texture and the faces that the texture
is assigned to.

You must press assign or click in the viewport to update the model to reflect your change

Texture Browse Button

This button allows the selection of a texture map to apply to the material. Pressing it will reveal a Windows file
open dialog box from which image files can be selected. A variety of image formats are supported. The 'None'
beside this button removes the texture file from the material.

Alphamap Browse Button

This button allows the application of an Alphamap to the material.

A black and white image can be used to
remove areas of texture where there may be holes.

Black is ful
ly occluded and white is fully visible, it is
possible to use variations of gray to achieve semi

The 'None' button beside this button removes
the alphamap file from the material.

Mapping Modes Drop

This controls how the texture is wrapp
ed around the object. By default, the texture is scaled across all surfaces
of the object. The next
most important mapping mode is “SphereMap”. If selected,

the texture on the surface

wrapped like a Mercator projection

There are also modes to combi
ne alpha and ignore alpha.

There are no other controls for specifying the texture mapping mode, such as repeat factors, scaling, etc. There
is also no way to combine textures, or “shaders”, as in higher
end 3D modeling programs.


To create a new mat
erial type, with default attributes, click the New button. It will have no texture or alphamap
files and a default name.


To delete a material highlight it in the Material Selector, then press this button.

This literally removes the
material from t
he workspace so use this wisely.

Rename Button & Box

This button is used to rename a material. To rename a material highlight it in the Material selector box, then type
the desired name in the box next to the Rename button then click the Rename button.




This button will assign the material highlighted in the Material Selector box to the selected group/s.

Use the Texture Coordinate Editor to align the Material on the group if needed.

This can be reached from the
Window menu, and the shortcut for this

button is Control

UV Mapping of Textures

UV Mapping refers to the placement of a texture on a complex shape, often called “wrapping” a texture around
the shape. The wrapping is done in another coordinate system, which has axes “U” and “V” correspondin
g to
unwrapped “X” and “Y” axes.

MilkShape by itself doesn’t have much support for generating of texture files for UV mapping, but several
sources suggest using a tool called “DeepUV” for this purpose. There is a freeware version of DeepUV and a
onal version that you have to pay for.

You use the Texture Coordinate editor to specify the UV mapping for the texture. Select the group, then click on
F10. This will display the unwrapped texture, which can be dragged around the unwrapped surface.

the Texture Coordinate editor, you can change the group for which you are editing texture coordinates using
the “Group” combo box. Only the groups defined in the model will appear in this box. When a group is selected
its current position on the texture
is shown, if none has been defined then the user must select the group then
click the Remap button, this will scale and position the group to be centered on the texture it can then be
manipulated as usual.

Once you use the Texture Coordinate editor, we do
n’t think there is a way to reset to the default UV Mapping.

Joints and Animation

The Skeleton

Animation in MilkShape is done by rotating the joints of a model’s skeleton, so the first step is to create the
joints. Joints form a tree, in which there is al
ways one root joint, and then all others are attached downwards
from the

root. To create a joint, use the Model toolbox

and select “Joint”,
then click on any of the windows.
For a character, the tree of joints will typically be arranged like a human

Start with a joint for a part of the body that doesn’t move, such as the upper chest.

Add joints for the shoulders, then the hips, then the arms, then the legs, etc.

The selected joint is shown in Red, and the attachments downwards from that jo
int are shown in green.

You can then name each joint in the Joints toolbox. Select the joint from the list of joint names at the top, type
in a new name and click on “Rename”. It is very helpful to name the joints.

The final step is to assign vertices
to the joints. Select the joint in the list at the top of the Joints toolbox, then
switch to the Model toolbox, use the Select tool to select a group of points or specific points, then switch to the
Joint toolbox and click on “Assign”. You can also selec
t the points associated with a specific joint, or the points
which are not assigned to any joint.

Animation and Frames

The keyframer allows skeletal positions in a model to be saved as keyframes in the keyframer. Actually, it
allows only the

the joints to be saved in the keyframes, the model cannot move around the x
space. The reason, of course, is that MilkShape is designed to create characters and objects for game engines,
and the game engine will take care of moving the model around th
e game grid, while the animation associated
with the character model will typically make it look like the image is walking while it moves.



Animation is produced by storing several keyframes to the keyframer then playing them back using the controls
on the


Each frame need not be set, only frames where changes take place need to be set by the user
(these are keyframes i.e. they are key to the animation), MilkShape 3D will fill in the gaps, interpolating between
the keyframes.

In order to use the

keyframer the Anim button (on the right of the keyframer) must be pressed. This puts you
into Animation mode. In this mode, joints can be selected, and parts of the model can be rotated around the
selected joint.

Then select a frame and a joint, and
use the Animation menu:

Set Keyframe: You use this
the most often. It will create a keyframe, or add to an existing one,
storing the rotation of the selected joint.

Delete Keyframe: Removes the stored skeleton set up from the keyframe indicated in t
he keyframe
number box. This will set the skeleton set up for the frame to the neutral position.

Copy Keyframe: This will copy the skeleton set up from the desired frame as indicated in the keyframe
number box. In order for the copy action to perform corre
ctly the user must first select the skeleton in
the keyframe to be copied from.

Paste Keyframe: This will paste the copied skeleton set up to the current keyframe indicated in the
keyframe number box. After the keyframe has been pasted remember to set the
keyframe straight after
if you mean to preserve the skeleton set up.

Remove All Keyframes: This will remove all stored skeleton setups at all keyframes in the animation
timeline. The animation is essentially deleted.

There is a mode flag at the top of the

Animate menu: Operate on Selected Joints Only. If selected, only the
specific joints are added to the keyframe, and remove all keyframes only removes the selected joint from the
existing keyframes.

The keyframe at the bottom slider is useful for preview
ing your animation before playing it.

The slider has the
advantage that you can slide it back and forward with the mouse movement instead of pressing the Play Forward
and Play Backward buttons to see the animation.

For selecting keyframes it is only usef
ul in smaller animation
in large animation with many

keyframes it will be hard to pick a particular frame.

This is why the Frame
Position Box is provided.