Vehicle Hitpoint Creation – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
No edit summary
No edit summary
Line 3: Line 3:
{{Cfg ref|start}}
{{Cfg ref|start}}
=Intro=
=Intro=
Basic tips about building vehicle fire geometry and hit points. This article assumes you are already pretty competent at making vehicle addons for Arma 3.
Basic tips about building vehicle fire geometry and hit points. This article assumes you are already pretty familiar with making vehicle addons for Arma 3.


Take a look at these two images. They tell you a lot about fire geometry and hitpoint placement:
Take a look at these two images. Using the fire geometry LOD of a generic "tank", they tell you a lot about how fire geometry ("FG") and hitpoints ("HP") should be set up:


[[File:basic fg hp layout 01.png|400px]]


==Basic Rules==
[[File:basic fg hp layout 02.png|400px]]


==Why Should You Follow These Rules?==
*Transparent blue: armor FG
*Solid-colored boxes: HP FG
*Transparent spheres: HP spheres (i.e. based on your vehicle config radius values)


=The Four Commandments=
# Pieces of FG should not overlap (as little as possible anyway).
# Leave some space between different types of FG--between armor and HP, or between one HP component and another. These should DEFINITELY NOT overlap.
# HP FG should be encased within an EVENLY SPACED matrix of HP spheres.
# HP spheres CAN overlap BUT they should only be in contact with ONE type of HP FG.


==Fire Geometry Placement==
Refer to the two images in the Intro for visual reference.
Some 'rules of thumb' regarding the preparation of vehicle FG:


*Use the most detailed and accurate armor data you can when creating your vehicle's P3D FG (armor). Correctly calibrated weapons are only going to give realistic results if your armor settings are realistic.
=More Detail If You Need It=
**Use accurate thicknesses, accurate angles, and accurate materials. Arma's penetration simulation is very detailed and takes all these factors into account to generate an accurate "line-of-sight" path of a projectile through vehicle materials/armor.
This section is optional, in case you're looking for a more detailed discussion beyond the Commandments section above.
**Of course, the FG model is simplified and does not need to contain every little piece of geometry. Use just enough detail to capture the key armor areas of the vehicle (the Samples_F T-72 tank is a reasonably good example--although it could be just a bit more detailed).


*The material used for armor pieces should usually be "armour.rvmat" (with thickness is defined by your model geometry). Preset-thickness materials ("armour_plate", etc.) respect LOS thickness, so you can use those where necessary.
# No overlap
**Regardless of what the real vehicle uses for armor (aluminum, composite, etc.), the best practice is to translate them into RHA-equivalent thickness. (To be specific, we are speaking here of "RHAe-KE": the equivalent thickness of rolled homogenous armor steel vs. kinetic attack).
##The less the better, with none being the ideal. A little overlap is most tolerable in pieces of armor, or within a single type of HP FG (e.g. several convex pieces of FG that make up your vehicle's engine compartment).
# No overlap between different FG types
##There should be an airspace buffer between HP FG--which will be taking damage--and armor FG--which should cause marginal to no damage.
##You also need airspace buffer between different HP components (engine, turret, gun, etc.). It's not the exact airspace distance that matters per se, it's that you have to prevent an HP sphere encasing one component from touching a second component. When a sphere touches 2 different types of FG, damage on one component will "leak" to the other.
##Meeting these requirements, you will often find yourself needing something roughly on the order of 12" (25cm) between different FG components.
# Encase FG evenly in HP spheres
##Each HP component should be as evenly encased as possible within a "bubbly" matrix of overlapping HP spheres.
##"Evenly encased" means
###...that the spheres should overlap with each other to fully encase the FG without leaving gaps
###...that the sphere matrix should be a completely regular 3D grid--the distance between each sphere should be identical
###...that the FG should be evenly encased by your HP sphere matrix. It's as if you converted the FG into a voxel network of spherical cells--part of the FG should not be sticking out of the sphere matrix.
##It will probably make your life MUCH EASIER if you simply standardize on a HP sphere matrix of a given radius rather than using slightly different radii for different HP.
##This way you can space the "grid" or "matrix" of HP sphere vertices and simply copy and paste the vertices around your HitPoints LOD to appropriately overlap with each Fire Geometry LOD component.
# HP spheres should only touch one type of HP
##This is already explained pretty clearly in 2.2 above.


*Very thin components/armor (below 10mm thickness of the convex component) should be modelled via plate materials, as the penetration accuracy for full material like "armour.rvmat" is not enough for such thin components.
=What Happens If You Don't Follow These Rules=
*Weapons which don't penetrate your vehicle's armor will cause damage (even though they shouldn't).
*HP will take totally erratic damage depending on the angle of the weapon impact.
*HP which are not in the path of a penetrating weapon will take damage anyway.


*Internal structure should be blocked in for receiving damage--see [[#Hitpoint Placement for Damage Consistency]] below.
[https://community.bistudio.com/wiki/Arma_3_Damage_Description For a much more detailed discussion of vehicular damage, go here]. It explains the research behind this article.


*Avoid overlapping FG. Arma projectiles can skip through interpenetrating pieces of FG without noticing some of them. Arma projectiles tend to only "notice" the ''first'' piece of FG they hit if other FG is embedded within it. The greater the interpenetration, the more likely the error.
=Related Links=
**In fact, it's ''desirable'' to leave some space--at least a few cm--between pieces of FG that don't need to be directly touching.
 
==General Hitpoint Placement & Armor==
[[#Damage vs. Penetration|As discussed earlier]], Hitpoints are required for a vehicle to take damage. The style of hitpoint placement affects how a vehicle takes damage with respect to things like armor and penetration. One of the reasons that (stock) Arma vehicles take damage [[#The Typical Damage Process|in the somewhat puzzling way that they do]] is due to their choice of hitpoint placement.
 
===Hitpoint Radii===
Recall from the [[#Damage vs. Penetration|"Damage vs. Penetration section]] that an attack must simultaneously affect both fire geometry and a hitpoint to produce damage.
 
Consider the following two approaches to hitpoint placement for the same vehicle--the front view of a simplified AFV. The polygons represent FG and the purple circles represent the virtual spheres created by hitpoint vertices and their radii.
 
'''Old Arma Approach'''
 
[[File:armor-hp-1.jpg|300px]]
 
'''Modified "Internal" Approach'''
 
[[File:armor-hp-2.jpg|300px]]
 
In the first approach, the vehicle will take major damage from non-penetrating hits. This is because the hitpoint spheres poke through the vehicle's FG. In the second approach, the hitpoints are constrained to be inside the armor layer (blue polygons). The second vehicle will take only trivial damage from non-penetrating hits.
 
Obviously, if you have non-armored parts of a vehicle that ''should'' be damaged by non-penetrating hits (tires, glass windscreens, unarmored vehicle parts, etc.), then their hitpoint spheres ''should'' "poke through" the FG in the "old" manner.
 
===Hitpoint Stacking===
Now let's consider two different approaches to hitpoint "stacking":
 
'''Old Arma Approach to Stacking'''
 
[[File:armor-hp-4.jpg|300px]]
 
'''Modified "Overlapping" Approach'''
 
[[File:armor-hp-3.jpg|300px]]
 
In the first example, hitpoint spheres are stacked so they do not overlap. This occurs frequently in Arma 3 vehicles. The second approach allows the spheres to overlap, with two resulting benefits:
*Generally a smaller number of (higher-radius) spheres can be used to define a volume.
*There are less "holes" between the spheres where a projectile can pass through without causing damage.
There don't appear to be any negative side effects to the overlapping approach; for example, overlapping spheres do not cause "extra" damage when a projectile penetrates through the overlap. BI itself increasingly has been using overlapped hitpoints in their models, so this approach should be considered safe.
 
===Hitpoint Placement Recommendations===
'''In summary: combine the two "modified" approaches for improved armor and damage performance:'''
*''All'' hitpoint spheres should be '''"overlapping"''', and
*Any hitpoint spheres ''protected by armor'' should be '''"internal"'''
 
Note: BI itself has been moving away from the "Old Arma" method of hitpoint placement. Looking at recent revisions of the game (2015), you will notice that their tanks in particular largely follow the "modified" approach.
 
==Hitpoint Placement for Damage Consistency==
The previous section focused on general hitpoint placement with respect to armor and the penetration sim. But your FG must also accommodate the way the ''damage'' sim works. It is '''''extremely''''' easy to get '''''very random''''' damage results if you don't build your damage-receiving fire geometry and hitpoint (spheres) according to some very specific rules.
 
[[File:hitpoint guide.JPG]]
 
The diagram above shows 3 different methods of assigning hitpoint spheres to fire geometry ("FG"). The red FG represents an area you want to receive damage, while the blue FG represents armor that should not cause damage when hit. The purple circles represent hitpoint spheres (P3D vertices with radii defined by hitpoint class config file).
 
* '''A''' is the recommended way to handle FG. The damage-FG is separate from the armor FG and is '''''evenly encased within hitpoint spheres'''''. Whenever the damage-FG is hit, it will receive consistent, predictable damage.
** To reiterate: the damage-FG should be fully ''inside'' the hitpoint spheres.
** While you could accomplish this with one giant hitpoint sphere, that would likely overlap with lots of other FG/armor. So a greater number of smaller-radius spheres are preferable.
* '''B''' is not ideal but can still work. It is not as predictable in its damage results as "A". In this case, the area without hitpoint spheres is intended to function as armor--receiving minimal/no damage. The rest of the geometry is encased in hitpoint spheres as in "A".
* '''C''' is '''''not''''' an acceptable approach. It combines several problems, and hits on geometry like this will produce very inconsistent damage results:
** the damage FG is not fully encased in spheres
** the spheres are not evenly placed within the FG
** several of the spheres are submerged inside the FG
 
==Hitpoint Properties==
The recommendations above will do nothing to make a vehicle safe from explosive damage--termed "indirectHit" damage in Arma terminology. IndirectHit damage reaches freely through fire geometry to damage hitpoints.
 
The only way to protect a vehicle from such damage is by adjusting ''minimalHit'' and ''explosionShielding'' properties. (These properties apply to hitpoint locations--BI has also recently added equivalent properties for global vehicle health called ''minTotalDamageThreshold'' and ''explosionShielding''). Armored vehicles in particular should have a large enough minimalHit and small enough explosionShielding value to protect against minor indirectHit weapons. But they should not be so heavily protected that they are immune to large-scale indirectHit weapons (IED's, laser-guided-bombs, etc.).
 
=Useful Links=
(The VBS links are very useful, but do contain some obsolete/irrelevant information)
(The VBS links are very useful, but do contain some obsolete/irrelevant information)



Revision as of 19:53, 28 October 2015

Template:Cfg ref

Intro

Basic tips about building vehicle fire geometry and hit points. This article assumes you are already pretty familiar with making vehicle addons for Arma 3.

Take a look at these two images. Using the fire geometry LOD of a generic "tank", they tell you a lot about how fire geometry ("FG") and hitpoints ("HP") should be set up:

basic fg hp layout 01.png

basic fg hp layout 02.png

  • Transparent blue: armor FG
  • Solid-colored boxes: HP FG
  • Transparent spheres: HP spheres (i.e. based on your vehicle config radius values)

The Four Commandments

  1. Pieces of FG should not overlap (as little as possible anyway).
  2. Leave some space between different types of FG--between armor and HP, or between one HP component and another. These should DEFINITELY NOT overlap.
  3. HP FG should be encased within an EVENLY SPACED matrix of HP spheres.
  4. HP spheres CAN overlap BUT they should only be in contact with ONE type of HP FG.

Refer to the two images in the Intro for visual reference.

More Detail If You Need It

This section is optional, in case you're looking for a more detailed discussion beyond the Commandments section above.

  1. No overlap
    1. The less the better, with none being the ideal. A little overlap is most tolerable in pieces of armor, or within a single type of HP FG (e.g. several convex pieces of FG that make up your vehicle's engine compartment).
  2. No overlap between different FG types
    1. There should be an airspace buffer between HP FG--which will be taking damage--and armor FG--which should cause marginal to no damage.
    2. You also need airspace buffer between different HP components (engine, turret, gun, etc.). It's not the exact airspace distance that matters per se, it's that you have to prevent an HP sphere encasing one component from touching a second component. When a sphere touches 2 different types of FG, damage on one component will "leak" to the other.
    3. Meeting these requirements, you will often find yourself needing something roughly on the order of 12" (25cm) between different FG components.
  3. Encase FG evenly in HP spheres
    1. Each HP component should be as evenly encased as possible within a "bubbly" matrix of overlapping HP spheres.
    2. "Evenly encased" means
      1. ...that the spheres should overlap with each other to fully encase the FG without leaving gaps
      2. ...that the sphere matrix should be a completely regular 3D grid--the distance between each sphere should be identical
      3. ...that the FG should be evenly encased by your HP sphere matrix. It's as if you converted the FG into a voxel network of spherical cells--part of the FG should not be sticking out of the sphere matrix.
    3. It will probably make your life MUCH EASIER if you simply standardize on a HP sphere matrix of a given radius rather than using slightly different radii for different HP.
    4. This way you can space the "grid" or "matrix" of HP sphere vertices and simply copy and paste the vertices around your HitPoints LOD to appropriately overlap with each Fire Geometry LOD component.
  4. HP spheres should only touch one type of HP
    1. This is already explained pretty clearly in 2.2 above.

What Happens If You Don't Follow These Rules

  • Weapons which don't penetrate your vehicle's armor will cause damage (even though they shouldn't).
  • HP will take totally erratic damage depending on the angle of the weapon impact.
  • HP which are not in the path of a penetrating weapon will take damage anyway.

For a much more detailed discussion of vehicular damage, go here. It explains the research behind this article.

Related Links

(The VBS links are very useful, but do contain some obsolete/irrelevant information)

More Detailed Damage Description

VBS:Damage Modeling:Objects

VBS:CfgAmmo Reference

VBS:Damage Flowchart

VBS:Damage Modeling:Simulation Formulas

Config Properties Mega-List

Template:Cfg ref