How Do I...? A M.U.G.E.N primer
Tutorial Part 2 - Collision boxes
M.U.G.E.N, Elecbyte (c)1999-2009
Updated 17 September 2009
Tutorial 1 | 2 |
3 | 4
Introduction
In this part, we will talk about how to define collision boxes for the
animations in your character's .air file. The documentation for .air files
is in air.html. It's a good idea to read it before
proceeding with this tutorial.
1. About Collision Boxes
Once you have put together an animation for the character, you can
use AirEditor to define collision boxes. There are two kinds of collision
boxes:
- Clsn1 - Attack box (red in color)
- Clsn2 - Hit box (blue in color)
Simply put, if one of Player 1's attack boxes overlaps any one of Player 2's hit boxes,
then it means Player 1 has hit Player 2.
2. Using AirEditor
AirEditor is a developer tool, and can be found in the old_tools/ directory
of your M.U.G.E.N installation.
The instructions for using AirEditor
are in airedit.txt. When you are ready, run the airedit executable.
Go to File -> Open and choose the sff file you want to load, followed by the
accompanying air file. You will now see your character on the screen:
Let's explain what you see on the screen.
- The big window that you see your character displayed in is called the
Display window. The title area shows the current animation action
you are looking at, as well as the sprite number of the sprite shown.
- The Info window at the upper-left shows:
- X,Y coordinates of the cursor, which is displayed as a crosshair in the
display window
- X,Y position of the axis of the sprite, relative to the upper-left corner
of the sprite. This is the number you entered in the player-sff.def file used to
generate the SFF
- Coordinates of the two opposing corners of the box you create when you
drag the cursor on the display window
- The Navigation window:
- Current action being displayed. You can scroll through the animation
actions in your .air file by pressing the arrow buttons on either side,
or you can enter it manually by clicking on the middle button
- Current element of the action that is being shown. You can scroll through
the available elements, or manually enter it, just like the action
- Click "Play Anim" to preview the animation
- The Collision boxes window:
- There are buttons here to let you set the bounding boxes for the current
animation element
- The Options window:
- A toggle button to enable/disable display of the Clsn1 (attack) box
- A toggle button to enable/disable display of the Clsn2 (hit) box
- A toggle button to enable/disable display of the sprite's axis
- The wide grey box at the very top of the screen beside the menu is the
Status bar, which shows you some information, such as your last
menu action.
- At the bottom of the screen you see a row of Save boxes. Each of these
represents a slot that you can save a box into. The clear button
erases them all.
To define a collision box, simply drag the mouse cursor over the region
you want to create a box at. This will be displayed as a bright green box.
Click without dragging to make the green box go away. Let's start by defining
boxes for KFM's standing frame. First, we'll drag a box to represent his
body.
Click on the Save1 button at the bottom of the screen to save that box
to memory. Now drag a second box for the head and click on Save2 to save that.
Notice how the saved boxes appear in a darker color.
If you want to go back and correct one of the saved boxes, simply drag a
new green box.
Next, you assign the set of boxes to the current animation element.
Click on the corresponding "Set" box in the Collision boxes menu.
Repeat the procedure for all the elements in the animation action.
When you are done with your changes, remember to save your .air file.
Click on the File menu and choose Save.
3. General Tips
- You can quickly load your character by specifying the .sff and the
.air filenames at the prompt. For example,
airedit chars/kfm/kfm.sff chars/kfm/kfm.air
- If you have a lot of frames using the same set of boxes, you can
scroll through each element, saving the boxes to the .air file
without clearing the boxes each time.
Alternatively, you can set the collision box as "Default" to define
a default set of boxes for each frame within an action. Click on
the "Options"
Read air.html for more information on default collision boxes.
- In common cases, try to keep Clsn2 boxes within your Clsn1 boxes.
The reason for this is so that it becomes possible to trade hits
between players. If you have a Clsn1 box without a Clsn2 box in
it, then setting priorities on attacks becomes meaningless, as the
attacks would have infinite priority that way.
- Don't be too detailed with your collision boxes. The point is not to
make a pixel-accurate representation of the character, but to make
one that is game-friendly. For example, boxes for your character
on the ground should have Clsn2 boxes that span the space between
both legs. In this case, too much detail is actually undesirable.
Here is a picture of a one that is too detailed. You want to avoid this.
This next one has a better set. Not only does it take less effort to create,
but it better approximates the movement of the character over time. Also,
there is less chance that a Clsn1 box from an attack would slip through
a gap.
Tutorial 1 | 2 |
3 | 4
Next is Tutorial Part 3