Arma 3 Scripting

Arma 3: Tanks Config Guidelines

  • Also known as Arma 3 Tanks Config Guidelines

Topic · Markdown · JSON · original wiki page

Comparison to Arma 2 / Arma 2: Operation Arrowhead tanks

Comparison TankX vs. CarX

Arma 3: Cars Config Guidelines

Model requirements {p3d}

Model config changes {model.cfg}

         {model.cfg}<
             class Wheel_podkoloL1 {
                 type = "translation";
                 source = "damper";
                 selection = "podkoloL1";
                 axis = "damper_axis"; // contains points [0,0,0] and [0,0,1]
                 animPeriod = 1;
                 minValue = 0;
                 maxValue = 1;
                 offset0 = 0.15; // = maxCompression
                 offset1 = -0.15; // = maxDroop
                 memory = 1;
             };

New config parameters {config.cpp}

Basic parameters

TankX uses most of the parameters present in cars. The tutorial will comment only parameters not described in car tutorial.

Engine parameters

Wheel parameters

Wheels work almost like in cars. PhysX allows up to 20 wheels (10 per side) at maximum. Wheels are not steerable, and all left wheels have to be in one line, and right wheels have to be in one line as well. They should also be the exact same size, otherwise you may encounter servere problems, as all wheels will be forced to have the same rotation speed. This can prevent your tank from driving any faster than 10km/h. Exceptions may be made for wheels that do not always touch the ground, but should be done with caution. Special wheels, like the drive sprocket and idler wheels don't have suspension on realworld tanks - set both maxDroop and maxCompression for them to 0. Drive sprocket and idler wheels are not required to make a working tank with PhysX however. Only implement wheels that are important for ground contact. e.g. If a Tank's body would collide with the ground before the sprocket wheel touches it, don't include the wheel. It would be useless for the game, while eating valuable computing ressources and adding to the things you need to configure.

Wheel PX parameters

Suspension parameters

Damage handling

Tanks offer differing protection levels for themselves and crew inside, depending on place you hit them. Balancing damage is usually most time-consuming task for armored vehicles.

Basic config

The tanks will usually have - at first sight - too much armor. But their vulnerable hitpoints will justify the effort, making it possible to destroy or neutralize armor with one shot.

Use armor to represent overall thickness of vehicle as seen by AI units, and armorStructural to finetune damage received.

Armour plates setup

Armour plates consist of convex components in Fire Geometry.

Surface A3\Data_F\Penetration\armour.rvmat provides Rolled Homogenous Armour (RHA) equivalent in Arma world. For best results, create convex components with armour plates offering desired Line of Sight thicknesses. Refer to http://en.wikipedia.org/wiki/Sloped_armour for more details about real life side of the issue.

For example, T-72’s front armour should have protection level of 550mm RHA horizontally. As you can see in example model, the plate itself is much thinner. Due to sloping it can withstand penetration up to 550mm RHA.

You may also use armourplate materials on components. These have a predefined thickness, regardless of the shape or thickness of the convex component. The difference between a plate and a regular material is, that a penetrator does not go into a plate component if it can't be totally penetrated. Against a regular material, the penetrator would enter the block, but be stopped somewhere inside the component if the pentration isn't enough. The plate materials can be used for small components that otherwise are difficult to model. Examples of plate materials would be armour_plate.rvmat (30mm RHA), armour_plate_medium (80mm RHA, armour_plate_heavy (110mm RHA) and armour_plate_16mm (16mm RHA). Just beware that components using such surface material will NOT stop projectiles after penetration.

All the materials available for penetration can be found in A3\Data_F\Penetration (respectively <Arma3installation>\Addons\data_f.pbo\penetration). You can also create and use custom penetration materials.

You may also need a metalplate component inside free space inside, to catch bullets that otherwise shouldn’t even pass primary armour but for whatever reason (f.e. sticking gun’s muzzle into tank) it’s possible to bypass primary armour.

For more detail on how the damage works, check A3 Damage Description.

Hitpoints

Hitpoints represent weak points in structure of tanks: turret servos, ammo storages, engine. They can also improve internal penetration handling.

Hitpoint categories

There are 3 common hitpoint categories in Arma 3's tracked vehicles:

Turrets have their own class HitPoints, coontaining info about how easy it is to damage given turret:

New attributes

Hitpoints gained two important config attributes in Arma 3:

Internal damage

Internal damage is handled by HitHull class. When KE round penetrates the armor plates, it passes the damage to HitHull hitpoints array as seen in example model. The hitpoint vertices are set up in such way that the nearest distance between them equals RADIUS attribute in HitHull class, and they cannot be activated by rounds that fail to penetrate armor.

During implementation of internal damage handling it is important to tweak following attributes:

If the results of config tweaking are not satisfying, consider adding greater detail to Hit Points and Fire Geometry LODs.