Characters
Each different sort of character has its own subdirectory. A particular type of character is called a race. In addition, each race has one or more subtypes, all contained within the same subdirectory. This document enumerates all the files that go into forming a race subdirectory, what information is contained in each file, and how subtypes of the race can be generated.
File Roster
The following is a roster of file types that each race subdirectory has:
.act - "Actor File"*
.att - "Attributes"*
.def - "Default Positions"*
.dmv/.scr - "Moves"
_fwp.lst - "Free Weapons"*
.mas - "Materials & Sounds"*
.mvl - "Move List"*
.off - "OFFs"*
.prj - "Projectile"*
.sta - "Statistics"*
.vue - "Get-up Animations"
.wpn - "Weapon File"*
* indicates that this type of file is a text-file.
Actor File (.act)
Every subtype has its own actor file, named "subtype_name.act" The purpose of an actor file is to give the limb hierarchy of the characters, which specifies the manner in which the character is put together out of body parts. Each line of data corresponds to a body part. For each line, the following data is specified:
The # of types of body part that might appear in this slot. This is almost always 1, but can be 2 for a hand that can hold a weapon.
The .off files for the body part(s).
The number of "children", or body parts that stem from this body part.
The X,Y,and Z offsets of this body part in relation to its parent body part, given in Treyarchs (60T = 1 meter.)
What kind of body part it is.
Attributes File (.att)
Every subtype has its own attribute file, named "subtype_name.att" An attribute file lists various attribute variables and what value each variable should have for the subtype. Some default values are given in the file /data/misc/default.att, and other default values are computed. Listing a particular attribute in a subtype's attribute file overrides any default values. Conversly, failing to list a particular attribute means that this subtype will accept the default value for that attribute. A detailed explanation of the various attributes is given in the Attributes document.
Default Positions File (.def)
Every subtype has its own default positions file, named "subtype_name.def" This file primarily lists the orientations for each of the limbs when a character of the subtype is in its "default" position. This is created by a program. If a character is modified, the last thing to do is to re-build its .def file, which is done by using the "old" move editor (type MOVED from the main menu while holding down right-shift.) See Old Move Editor document.
"Moves" (.dmv/.scr)
A race subdirectory will contain various move files, named "move_name.dmv" or "move_name.scr," which are files recorded using the move editor. The moves that each subtype uses are listed in their respective Move List files, and these moves must be located in the race subdirectory. The .scr files are hold-overs from an older version of the move editor. See the Move List explanation for further details regarding moves.
Free Weapons File (_fwp.lst)
Every subtype has its own free weapons file, named "subtype_name_fwp.lst"
This file specifies the .off file to be used when a creature of this subtype sheathes its weapon, and what material the weapon is made of (for use when generating collision sounds.)
Materials and Sounds File (.mas)
Every subtype has its own materials & sounds file, named "subtype_name.mas" This file performs two functions:
The material specifications are a list of material names, given in the same order as the body parts are listed in the .act file for that subtype. In the case of the hands, the material should be that of the weapon carried in that hand, if any. Valid material names are: rock, hammer, sword, spear, shield, flesh, armor, bone, straw.
The sounds specifications cover the following situations, in order.
Move List (.mvl)
Every subtype has its own move list, named "subtype_name.mvl" The purpose of the move list is to catalogue each move that the computer-controlled characters of that subtype can use. There are four classes of move listed in this file:
A move list begins with a number that indicates how many moves there are in the list. Then, each subsequent line contains the name of a move file followed by the class of move that it is. For "ai" and "maneuver" class moves, it is possible to list a given move more than once in order to get the AI to choose that move more often than it would normally.
All moves in the move list must be located in the race subdirectory.
OFFs (.off)
Each race subdirectory will contain several OFFs. The purpose of the OFFs is to represent the physical geometry of the various body parts for the subtypes of the race. The OFFs contain data generated from 3D-modeling, including texture-mapping information. More information is available in the Modeling document.
Projectile File (.prj)
A race subdirectory may contain some projectile files. Each such file represents a projectile that can be used by some subtype of that race. A projectile file contains the following information, in order:
Statistics File (.sta)
Every subtype has its own statistics file, named "subtype_name.sta" Each statistics file lists the following information, in order:
Get-up Animations (.vue)
The .vue format is created by 3D-Studio. Every race can specify a getup_b.vue and a getup_f.vue animation to use when getting up from its back/front. If the file does not exist, a mathematical algorithm is used instead.
Weapon File (.wpn)
A race subdirectory will contain various weapon
files, named "move_name.wpn" There will be one weapon file for
each type of weapon that can be wielded by the subtypes of that race. A weapon is a
triangle that damages opponents when it collides with them. It is attached to physical
geometry that represents the weapon, but the triangle is the only thing that collides and
does damage. Within each weapon file is the following information, in order:
Name. The name of the .off file that the weapon
triangle is attached to.
The type of weapon that this is. 0=Sword.
1=Hammer. 2=Axe. 3=Dagger. 4=Shield. 5=Fist. 6=Changa Blade. 7=Mantis Claw. Different
weapon types are held and aimed differently. Particularly when extended or blocking.
The mass of the weapon, in kilograms. Heavy
weapons will knock back.
The weapon tip vector, the weapon blade vector,
and the weapon base vector. these represent the positions of the three points of the
weapon triangle, relative to the .off to which the triangle is attached.
The distance to the blade base, from the hand.
This is given as a fraction of the total length of the triangle. It indicates how far up
the weapon triangle the "sharp" part of the triangle begins. So, if this were
set to 0, then the whole triangle is sharp, whereas setting this number to .5 will make
the lower half of the triangle non-damaging.
Default mode. Set it to 0.
Double sided. Whether both sides of the triangle
are sharp. If this is set to 0, then only the edge from the weapon base point to the
weapon blade point is sharp.
Two handed. Don't do it. Set it to 0.
Edged. Whether the weapon should try to aim its
edge when swung. With an axe or a sword, you want the weapon to turn so that the edge will
hit the opponent. With a mace or club, you don't care.
Thrust, Chop, Bash factors. Thrust is ignored. The
chop and bash factors are multipliers to the speed of the weapon that will determine how
much damage is done from a blow. The difference between chop and bash damage is that chop
damage is reduced if the weapon does not hit edge-on.
directory. The directory containing the weapon.
color file. Obsolete.
rigid file. Obsolete.