Ships Config Guidelines – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 38: Line 38:


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


*''<Type>: string''
*''<Default>: (required)''
*'''simulation = "shipx";'''


====Engine parameters====
====Engine parameters====


*''<Type>: float''
*''<Default>: (required)''
*''tankTurnForce = 330000; // start from 11x vehicle mass and tweak until fine'''


===Wheel parameters===


Wheels work almost exactly the same as in cars. However, please take note that the drive sprocket and idler wheels should not have suspension - set both maxDroop and maxCompression for them to 0. Remember to reset these values for road wheels so their dampers are active! Also you need to notify PhysX that the wheels are on either righ or left side, and that they are not steerable.
====Wheel PX parameters====
*'''steering = 0;''' - tank wheels are not turning
*'''side = “left”;''' - which side of tank the wheel belongs to
*'''dampingRate = 0.1;''' - damping rate while contacting with ground
*'''dampingRateInAir = 8000;''' - damping rate while in air. Use to tweak maximum speed. Tweak together with MOI.
*'''MOI = 50;''' - moment of inertia, set it so the tank does not accelerate or maintain speed indefinitely. Tweak together with dampingRateInAir.
====Suspension parameters====
*'''maxCompression = 0.15;''' // set to 0 for wheels that don’t have dampers
*'''maxDroop = 0.15;'''// set to 0 for wheels that don’t have dampers




==Damage handling==
==Damage handling==


 
Boats/Ships 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.
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===
===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 setup===


Armour plates consist of convex components in '''Fire Geometry'''.
[[File:Test_Tank_01_Fire_Geometry_LOD.jpg|thumb|Test_Tank_01: Fire Geometry LOD]]
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.
If you have small components that otherwise are difficult to model, you can always make use of armour_plate.rvmat (30mm RHA), armour_plate_medium (80mm RHA) and armour_plate_heavy (110mm RHA). Just beware that components using such surface material will NOT stop projectiles after penetration.
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.


===Hitpoints===
===Hitpoints===


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


====Hitpoint categories====
====Hitpoint categories====
There are 3 common hitpoint categories in Arma 3's tracked vehicles: [[File:Test_Tank_01_Hit_Points_LOD.jpg|thumb|Test_Tank_01: Hit Points LOD]]
There are 3 common hitpoint categories in Arma 3's vehicles:  
* '''HitHull''', handling internal penetration - when damaged over 0.9, vehicle will explode.
* '''HitHull''', handling internal penetration - when damaged over 0.9, vehicle will explode.
* '''HitEngine''', handling damage of engine
* '''HitEngine''', handling damage of engine
* '''HitLTrack''', '''HitRTrack''', damage of tracks/drive sprockets/idlers


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


====Internal damage====
====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. [[File:Test_Tank_01_HitHull_vertices_vs._Fire_Geometry_LOD.jpg|thumb|Test_Tank_01: HitHull vertices vs. Fire Geometry LOD]]
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:
During implementation of internal damage handling it is important to tweak following attributes:

Revision as of 20:42, 9 November 2014

Intro

101 - How to set up a ship for Arma 3

Please be aware of our Arma 3 modding license: http://community.bistudio.com/wiki/Arma_3_Modding_License

Comparison to A2/OA ships

  • PhysX support
  • Improved penetration materials
  • More detailed Fire Geometry LODs
  • Improved tweakability of HitPoints LODs

About Shipx and Submarinex

Model requirements {p3d}

  • A new PhysX LOD
    • There needs to be a lod (4e13) consisting of convex components as simple as possible.
      • Current public Oxygen version doesn't support showing correct name of this lod and displays only Geometry instead. Don't be afraid of having two geometries, it's going to be fixed with new tools.
    • This lod should contain ship’s hull, and ...
  • Memory LOD
    • There should be an axis for each propeller named ????_axis, the name is defined in selected wheel as center.


Model config changes {model.cfg}

  • Similarly to PhysX related changes, you will mostly need to change:
    • Example:

New config parameters {config.cpp}

Basic parameters

Engine parameters

Damage handling

Boats/Ships 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

Armour plates setup

Hitpoints

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

Hitpoint categories

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

  • HitHull, handling internal penetration - when damaged over 0.9, vehicle will explode.
  • HitEngine, handling damage of engine

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

  • HitTurret, horizontal rotation
  • HitGun, vertical rotation - this should handle any event that renders tank guns inoperable, f.e. hit to servos

New attributes

Hitpoints gained two important config attributes in Arma 3:

  • radius, defining size of “hitpoint sphere” around each vertice in Hit Points LOD assigned to given hitpoint’s selection
  • explosionShielding, multiplying damage inflicted by indirect damage. The smaller it is, the less damage hitpoint will receive.

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:

  • armor
  • explosionShielding
  • radius

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