Targetware: Flight Model Development
Targetware ACM File Guide
An aircraft file, with the .acm
extension, has 5 main headers or sections, defined by the square brackets
around them. They are [graphics], [sounds], [aircraft],
[part]
and [option] (see more about options below). An X, Y, Z coordinate
system is used to define the position of a force, mass or viewpoint in
3-dimensional space. The point of origin (0, 0, 0) can be any
point the designer chooses (propeller hub, right wing tip, etc...).
All measurements relative to the origin are to be made in metric units
(meters). Any measurements in the X direction are parallel to the
lateral axis (about which the aircraft pitches). Measurements in
the Y direction are parallel to the longitudinal axis (about which the
aircraft rolls). Finally, the Z direction is perpendicular to the
other 2 axis (about which the aircraft yaws). Values increase (become
more positive or less negative) as one moves right, forward and up from
the origin.
[Graphics]
The graphics section contains pointers
to the files that determine which external and internal 3d models will be attached to the flight model. There is also a provision to allow for an optional "death animation". If destroy_anim_time is anything greater than zero seconds, the death anim link will be available to the aircraft's anm files. It is activated when the plane is destroyed.
external = f-86/anm_ext.anm
internal = f-86/anm_int.anm
external_origin = 0,0,0
internal_origin = 0,0,0
destroy_anim_time = x
[Sounds]
The flight simulator supports a number
of different sound effects, most of which are self explanatory. The
links point to the sound files, relative to the 'data' folder.
All sounds must be 16 bit, mono, 44.1 kHz WAV. A base sound directory and an optional sound directory can be specified. Subsequent sound links should be relative, ie, just the file name. If there is a sound by that name in the optional directory, it will be used, otherwise, a file will be pulled from the standard (base) directory.
base = path to standard (generic) sound files
optional = path to optional (custom) sound files
stall_sound = name of sound effect file
wind_sound = name of sound effect file
stress_sound = name of sound effect file
explode_sound = path to
sound effect file
grunt_sound = name of sound effect file
check_six_sound = name of sound effect file
Any number of hit sounds can be used
to provide some randomness. Example,
num_hit_sounds = number
hit_sound_1 = name of sound effect file
hit_sound_2 = name of sound effect file
hit_sound_3 = name of sound effect file
etc...
[Aircraft]
The aircraft section contains basic
information about the model, such as the name of the plane as it would
appear in the plane selection menu, the label as the icon would appear
in the simulation and the location of the center
of gravity. Things like fuel, guns, ammo or any other ordnance
that are added to the empty aircraft as 'parts' will add mass and affect
the location of the center of gravity. Specific information about
piloting the aircraft can be placed into a text file and referenced from
within the software as a handbook.
name = plane name
target_type = type of object this is, for AI targeting purposes. "air" for airplanes.
handbook = path/filename.txt
handbook_image = path/filename.jpg
label = label
empty_cg = x, y, z
peak_wind_ias = km/h at which wind sound will be at full volume. A value similar to the top speed of the aircraft is probably good for most airplanes.
The number of 'parts' used in a model
must be defined by a separate entry under the [aircraft] header by:
num_parts = number
This number depends on the complexity of the plane.
A scenario need not start on the ground
at an airfield. For those scenarios that start closer to the action,
the amount of fuel used in getting there is determined by how many kilometers
it takes to consume one kilogram of fuel.
range_per_kg = km
A plane may also carry a variety of
external stores such as droptanks, bombs and rockets in many different
combinations. For these combinations, we need to know how many stations,
or hardpoints the plane has. These are called 'options'. Next,
we need to know what types of stores could be carried on each station.
These are called 'choices'. So, the number of options is defined
by:
num_options = number (See
more about options and choices below)
[Part number]
An aircraft is made up of a number
of 'parts'. Each part is assigned a number in a header, such as [part
1], [part 2]. The location of each part is set in 3-dimensional space
using the X, Y, Z coordinate system. If the part can be damaged,
it should have a damage box surrounding it. When the 3d object is
hit, the damage box surrounding that part of the model tells the simulator
which part got hit and what the damage effects will be. The box itself
does not determine the hit area. Each part also has a mass associated
with it.
name = name
location = x, y, z
size = width, length, height
mass = mass in kilograms
type = part type
Legal part types are as follows: (click on type for more detail)
It is easier to make things like guns,
bombs, rockets and airfoils as separate .acm files, since they can be shared
by other aircraft. To do this, just include the relevant entries
for that part type in a separate .acm file and use the #include filename.acm
command
to add it to your model under it's part header. This can save alot
of work with cutting and pasting in the long run and makes the file a little
bit smaller.
All parts are joined together to make the whole aircraft. Since damage can
occur and parts can be broken off, it's necessary to link a part to its
parent part, the part to which it is attached.
parent = name of part
[Option]
Options look alot like 'parts' in that
each option is also assigned a number in square brackets [option 1], [option
2], etc.
The first entry should say how many
choices there will be for the option. Remember, an option is like
a pair of hardpoints or stations, such as a set of wing pylons, but it
could also be an auxiliary internal fuel tank, just as long as it's something
that has the option of being added to the basic aircraft. Each choice
then, is a different type of ordnance that can be loaded onto those pylons
like droptanks, rockets or bombs.
num_choices = number
Then follow with a new header:
[option number choice
number]
Each choice needs a name attached to
it as well as how many parts will make up the choice. For example,
choice 1 might be the 500 lbs bomb, of which there might be 2 of them,
one under each wing.
name = 500 lbs bombs (2)
num_parts = 2
Then we need a section for each part,
[option number choice
number
part
number]
If the part is a separate .acm file,
like most of them should be, include it now by,
#include filename.acm
Otherwise, use the entries for the
part type as listed above.
|