Senile Team logo Order Rush Rush Rally Racing for Dreamcast
Games

Creating a character


Creating a character for your Beats of Rage mod is easy. Just follow these simple steps!

Step 1. Creating GIFs


Grabbing frames
In order to make a new character you need sprites for your character. On the internet many ripped sprites can be found, however these are often modified and manhandled. You'll probably get better sprites if you grab them yourself. Also this ensures you can get the sprites you need.
The best program to do this is probably neorage, because you can easily select layers and change the background colour in the shots factory (so you can make good grabs of characters with black in their outfit).

neorageX shots factory
neorageX shots factory


Of course other emulators will also work. For instance Kawaks has a shots factory (Tools, shots factory) and can change the background colour (video, set background color).


Editing frames
When you've got the character frames of your fancy, you need to process the large images (about 320x240 when grabbed from a Neo Geo) to sprites.
Remember to give frames of the same animation (e.g. an attack) the same width and height, this makes it easier in a later stage. For instance when creating an attack for Ralf, you need to make sure that frame 1 is large enough so that Ralf's outstretched arm is still visible in frame 2.

Frame 1
Frame 1

Frame 2
Frame 2


Notice that the pink colour is used as the transparent colour. The exact properties of this colour in the default palette are 252,0,255 or #FC00FF. It was actually supposed to be #FF00FF, but the software we used made a booboo. (You can use a different colour if you use a custom palette, see the section about palettes.)


Saving frames
When you have cropped the frames to the right size, you need to save them as gifs, using the BOR palette (data/pal.act). In Photoshop 5.5 you do it like this:

1. Go to File "Save as", select CompuServe GIF (*.GIF)
Do not use long file names, but a maximum of 8 characters.

2. Go to Palette and choose "Custom"
palette1.gif

3. A colour table pops up, here you press load. Select data/pal.act and press load. Also set Dither to none.
palette2.gif

4. The BOR palette was loaded. You should see this:
loadedpal.gif

Now press ok, and ok again.

5. Now you are asked to choose between normal and interlaced row orders. Normal provides the best compression. Now your frame has been saved.

Once you have loaded your palette, you can choose "previous palette" for the next frames you save.
palette3.gif

Step 2. Assigning properties to your character


Default properties

All character properties are found in the character.txt. For Ralf this text file is located at data\chars\ralf\ralf.txt.
You can write comments in this text file by writing a "#" before your comment. With the number sign the computer will not process this text as a command. Also useful is that you can use both the "/" and the "\" in the file locations.

At the top of the file you'll find the following properties:
name Ralf Default name for this character. 
health 55 Default health for this character is 55. 
speed 7 Default speed for this character is 7. Increase this number to make the character walk faster. 
type enemy Write "enemy" to make an enemy, "player" for a hero, "obstacle" for boxes etc., "item" for items (apple, 1up etc.), and "none" for non-interactive things. 
shadow 4 Shadow size is 4. Increase the number for a bigger shadow. Maximum shadow size is 6, and 0 for no shadow. 
icon data/chars/ralf/icon.gif Location of the icon image (the image next to the health gauge). 
diesound data/sounds/die1.wav Location of the sound the character makes when he dies. 
remap data/chars/ralf/idle1.gif data/chars/ralf/map1.gif This function lets you have alternative character colours. The first file points to the image with the original colours. The second file points to the same frame but with alternative colours. 



Animation
Next the actual animations will be constructed. There are a number of different animations.

anim idle The animation for standing still. 
anim walk Err, well... walking. 
anim pain When your character gets hurt. 
anim fall When the character gets knocked down, he falls. 
anim rise And unless he ran out of health, he'll be getting up again. 


Things you need to know about animations
When creating animations it's best to look carefully at existing characters, and how they work. Here is a rundown of all the properties the animations can have.

loop 1 Use 1 for repeating animations, such as walk and idle. Use 0 for single animations that don't repeat until you press the button again, such as attacks. 
offset 39 121 The offset is the place where the character will stand and the shadow is placed. This is a single point in the frame. In this case, the x=39 and y=121. 


offset.gif
The offset is depicted here as a white pixel. This pixel is only here to demonstrate the offset point. Do not put a pixel in the actual frame!

An easy way to find the coordinates in Photoshop is to look at the info box. Sadly, it does not allow you to copy these values to the clipboard.
info.gif

bbox 22 23 34 99 The bbox is the bounding box; the area where the character can be hit. The first 2 numbers (22 and 23) are the x and y coordinates of the topleft point of the area. The third number (34) is the width of the bbox, and the fourth (99) is the height. 


bbox.gif
The bbox is depicted here as a white box. This box is only here to demonstrate the bbox. Do not put a white box in the actual frame!

delay 10 The speed in which the frames follow each other, the delay is given in 100ths of a second. Increase the delay to slow down the animation. 
sound data/sounds/maxboom.wav Characters can also make sounds during animations. The sound will play a soon a the animation reaches the point where the sound is declared. 


The offset, bbox, attack and delay remain active for all following frames until they are changed.

frame data/chars/ralf/idle1.gif The locations of the actual frames. Put these in the right order. 


Attacks
Each enemy can have up to three normal attacks plus a throw, uppercut, special, and jumpattack. A normal attack is called "anim attack1" (or 2 or 3 of course).

range 0 70 If a hero is within this range the character can perform this attack. The range is given in pixels and is measured from the offset point. 
attack 56 17 47 21 10 0 The first 2 numbers (56 17) give the x and y coordinates of the attack box. Number three and four (47 21) are the width and height of the box. The fifth number (10) is the strength of the attack. Increase this number for a heavier attack. The sixth number (0) is used to define whether the hero falls down after the attack. Use 1 for fall down, and 0 (or leave it out) not to have the hero fall down.
Set the attack to 0 0 0 0 0 0 when the attack frames are over. 


attack.gif
The attack box is depicted here as a white box. This box is only here to demonstrate the attack area. Do not put a white box in the actual frame!

Uppercut, throw, and special attacks
The uppercut (anim upper) works a normal attack, but it does not have a range. It will start automatically when a hero jumps. The throw (anim throw) also works as a normal attack, but it will happen when a hero walk into the enemy.
The special does have a range, but it will only happen when a hero holds the character for a certain amount of time, so the enemy character can escape its hold.

The jumpattack (anim jumpattack) works as a normal attack, but the character jumps during the attack. This will happen automatically when you use "anim jumpattack".

There is yet one more attack. The shoot attack, which is really a normal attack, but you shoot something. Take Rugal for example; he can shoot a wave. To have this work you must write "load Shot" in the top partition of the character text, in this case Rugal.txt. (Or load knife, if you want a knife).
You also have to define a shootframe in the actual attack animation.

shootframe 5 In this attack the character will shoot a wave/knife in the 5th frame in the animation. Place this in the Character.txt file. 


Because the shot is a new entity it has its own animation frames and text file. These can be found under data\chars\misc\shot.txt and data\chars\misc\knife.txt

Heroes
The heroes/players work basically the same as the enemies, they just have some extra animations.

anim get Animation to pick up items. 
anim special This is the special attack the costs a bit of health. Don't give this animation a bbox, because the whole point of the special move is that you need to be invincible while performing it. 
anim freespecial This is the forward, forward+punch special 
anim jump This is the jump. Don't give this animation an attack, because heroes can jump without attacking. 
anim jumpattack This is the attack that knocks enemies on the ground during a jump. Notice that you are already in the air at this point, so you don't need any animation for jumping off the ground. 
anim jumpattack2 This is the air attack that leaves your enemies standing. Notice that you are already in the air at this point, so you don't need any animation for jumping off the ground. 
anim grab The animation for holding an enemy, you're not actually throwing yet. 
anim grabattack The animation for pummelling an enemy while holding him. 
anim grabattack2 The animation for pummelling an enemy and knocking him on the ground. 
anim throw Throw your enemy! 
anim land Heroes have an extra animation for safe landings (up + jump). 

Step 3. Models.txt


In order to actually put your character in the game you must first let BOR know the character should be loaded. This is done in the file data/models.txt. Use the phrase "load" for heroes. These will always be loaded.

Example
load Kula data/chars/kula/kula.txt


Use the phrase "know" for all other entities, such as enemies, items etc. These will only be loaded if they actually appear in the level.

Example
know Ralf data/chars/ralf/ralf.txt

Don't forget to make sure the knives, shots etc. are known in the models.txt file.
© Senile Team, 2003-2010