Jump to content
olds

Armor & Penetration: how it works & how it could work

Recommended Posts

That is very useful zGuba. Thank you!

I actually think the ballistics modeling is really quite excellent. My only real problem is with non-caliber "hit" values causing damage regardless of armor. But this effect can (apparently) be prevented by boosting armorStructural, so that's fine for my needs.

BTW, It would be helpful if you released that sample T-72 p3d that you took screenshots of in your Tank Config Guidelines. It'd be nice to have a completed vehicle model up to Arma 3 standards to learn from. (The Guidelines are still very helpful as is though).

Cheers

Share this post


Link to post
Share on other sites

Interesting stuff. The mechanics have sure improved alot from arma 2 it seems. Over the weekend I was having fun just looking for the best places to shoot for on the different vehicles.

The one thing that bugs me though is that when the hull becomes damaged enough the vehicle explodes. I hate this. I would much rather that if the hull is destroyed to much the tank simply ceases to function. Maybe some smoke leaks out of it or something. But there is no need for a huge fireball explosion. Save that for when the ammunition or fuel has been hit directly. This would go along way to improving the immersion for me at least.

Share this post


Link to post
Share on other sites
BTW, It would be helpful if you released that sample T-72 p3d that you took screenshots of in your Tank Config Guidelines. It'd be nice to have a completed vehicle model up to Arma 3 standards to learn from. (The Guidelines are still very helpful as is though).

The sample model for T-72 has been released together with tools. Please open \Steam\SteamApps\common\Arma 3 Tools\Samples_F\Test_Tank_01

Share this post


Link to post
Share on other sites

OK, a little update. The workaround is somewhat more complicated that what I implied in this thread. I'm digging deeper into the damage & penetration model and putting some of the results into the "Real Armor Mod".

Share this post


Link to post
Share on other sites

So I've done a bunch of work and testing in the form of the Real Armor Mod. Some things make more sense about the ballistics simulation.

But I have come to one inescapable conclusion:

:icon_exclaim: There is something in the game that causes location damage despite the fact that there is no penetration.:581:

:icon_exclaim: Furthermore, this appears to happen only to vehicles.*

This happens even when you set armorStructural so high that the global-health of the vehicle is unaffected by the impact. So I am 100% sure it is something in the damage formula. How/why it works, I have no idea...:goodnight:

*Thanks to Bakerman, I was able to test armor penetration and damage vs static steel walls which do not exhibit this problem.

Edited by Olds

Share this post


Link to post
Share on other sites

- The BIS 7.62x51 can pierce up to around 12mm RHA (armour.rvmat surface) 50 meters away, but don't expect it to retain much energy afterwards. However armor piercing capability decreases rapidly with range.

Please tell me if I'm wrong here.

I created and set up some plates ranging from 12mm up to 100mm RHA, using Bohemia's RHA plate material. I was 100m away and fired a variety of ammo at the plates, tracking the penetration and energy post pen. I compared the results in game with a formula Olds gave me, which is Caliber = RHA Penetration / 15 * 1000 / typicalSpeed. Here are the results:

  • 9x19mm @ 1.7 Caliber & 380m/s. Bounces 12mm @ 100m. Theoretical pen max of 9.69mm @ 0m.
  • .45 @ 2.6 Caliber & 280m/s. Bounces 12mm @ 100m. Theoretical pen max of 10.92mm @ 0m.
  • 5.56x45mm @ 0.7 Caliber & 800m/s. Bounces 12mm @ 100m. Theoretical pen max of 9.66mm @ 0m.
  • 6.5x39mm @ 1.0 Caliber & 820m/s. Bounces 12mm @ 100m. Theoretical pen max of 12.3mm @ 0m.
  • 7.62x51mm @ 1.6 Caliber & 800m/s. Penetrates 12mm @ 100m easily. Theoretical pen max of 19.2mm @ 0m.
  • .408 @ 2.2 Caliber & 910m/s. Penetrates 20mm @ 100m. Theoretical pen max of 30.03mm @ 0m.
  • 12.7x99 @ 2.6 Caliber & 880m/s. Penerates 30mm @ 100m. Theoretical pen max of 34.32mm @ 0m.
  • 12.7x108 @ 2.8 Caliber & 820m/s. Penerates 30mm @ 100m. Theoretical pen max of 34.44mm @ 0m.

Adjusting these values according to Olds' formula holds true in game. Giving the 7.62x51mm a maximum penetration of 14mm @ 0m by setting the caliber to 1.1666 results in the bullet just having enough energy to penetrate a 12mm plate @ 100m and fall to the ground. With the stock caliber value a 7.62mm bullet fired from a 840m/s barrel will penetrate 20mm plate @ 0m, which seems a bit extreme. I gave the 9mm and .45 a small speed boost and they were penetrating 12mm plate @ 0m, which is also a bit extreme.

My question is why are some of these caliber values so high while others are fine? Is this for game balancing? Or is the problem with the RHA plate material? :confused:

Edited by Bakerman

Share this post


Link to post
Share on other sites

The RHA material is calibrated for medium and large caliber rounds. There may be some discrepancies with small arms ammo, but they shouldn't have big impact on gameplay of armoured vehicles.

Share this post


Link to post
Share on other sites

OK, after running yet more tests I think I'm finally understanding what's going on with penetrating vs. non-penetrating damage.:party: I will post and maybe include a diagram when I have something conclusive.

Share this post


Link to post
Share on other sites

NOTE: the most updated version of this info is now located on the Biki.

Damage/Real Armor Mod Documentation (Ongoing...) :deal:

[Legend: <!>=quirk to watch out for!, {}=Real Armor Mod feature, <?>=not sure/needs further investigation]

After lots of ongoing investigation, I'm sharing my best explanation of how damage & penetration works in Arma 3. It's proved essential to my work on the Real Armor Mod. Use and share freely per the license terms at the end of this post.

A. Basic Damage

qIErpzY.gif

  1. Pre-impact: A projectile is headed for the target. (For our discussion let's assume its a kinetic round on track for a direct hit)
  2. Initial Impact: The projectile impacts the target. It has not penetrated any armor yet. And if it doesn't have the ballistics to go further it will terminate here doing only this initial damage. Regardless, the following things happen:
    • Every major location on the target takes some damage. The location nearest the impact point gets the most, and it falls off geometrically.
    • The target's global health is generally damaged the most.
    • Several factors affect the amount of damage taken: obviously the hit value of the weapon is important, but various weapon & target config values are also involved (minimalHit, explosive, etc.).
    • That's right, some damage has already been done regardless of whether it's pistol-round vs. tank or sabot vs. bunny.
    • If the hit values are high enough, this initial impact alone can destroy the target (essentially by knocking out global health) ...regardless of penetration!

[*]Penetrating Damage: IF the projectile can penetrate the target's armor, it will continue moving and doing damage as it goes. Here's what happens:

  • Every major location continues to take damage as in step 1. But something new happens as well...
  • ...as the projectile travels past the armor it starts doing much more damage to the area immediately around itself.
  • Global health continues to get damaged and can really get clobbered now. BTW, this happens even if every passThrough value is set to zero(!).
  • The projectile will terminate here or travel on through the target if it has penetration power remaining to do so.

Keep in mind there are (sometimes significant) variations to how this works for things like explosive weapons, indirectHit, deflections, etc. More on those below. And, yes, this description holds true for human targets (shoot someone in the hand, and their head will take some damage).

{How does the Real Armor Mod affect this?}

Everything proceeds precisely as described above except global health takes much less damage. (Not zero damage, just much less). My mod cannot prevent that initial damage from occurring no matter how wimpy the weapon or how strong the armor. I have worked to minimize it, but--as with global damage--the effect is not zero. (I think I'm OK with this and don't consider the minimized effect too unrealistic).

BTW, I'm not arguing that the damage system is irretrievably broken or something like that. However--unlike the penetration system which seems to be pretty flawless--the damage system has some quirks. Now that I understand them better, I'm still relatively confident they can be dealt with.

P.S. I'm not sure whether #2 & #3 are calculated at once or whether there is literally some projectile travel-damage through the vehicle with every game cycle. My guess is the later.

B. Indirect & "Explosive" Damage

hLrbgik.gif

IndirectHit: This works pretty much as advertised--indirectHit represents damage from explosions (not to be confused with the BIS "explosive" property).

  • indirectHit damage is applied whenever a weapon with that config property hits something (you, the ground, etc.)
  • It causes damage out to 4x it's indirectHitRange (which is a radius), falling off linearly.
  • If a target is within range (our trusty tank in the above diagram), it takes the same all-location damage described in part A. (The location closest to the impact takes the most damage and so on...)
  • And just as before, global health takes the most damage.
  • ranged indirectHit damage bypasses your armor and damages you anyway. Only the explosionShielding property can mitigate this. <!> Oddly, armor will protect you against direct hits with indirectHit weapons (need to investigate this further...).

Explosive: Not the "explosion" effect you're thinking of--that's indirectHit. This weapon property does only one thing: it controls how much hit damage falls off with speed.

  • Weapons with no or 0 explosive value are considered fully 'kinetic' and lose hit value as they slow below their typicalSpeed.
  • Weapons with explosive=1 are considered fully 'explosive' and do full damage regardless of the projectile speed. Values between 0 and 1 control the ratio of kinetic-to-explosive damage (i.e. explosive = 0.5 means half the damage falls off with speed and half does not).
  • <!> QUIRK! Values >=0.7 nullify a weapon's armor penetrating ability (as if caliber=0)!. Use values <0.7 if you want your weapon to have normal penetration behavior!

{How does the Real Armor Mod affect this?}

All weapon explosive values will be capped <0.7 to allow for normal penetration behavior. Global-health damage is severely damped, and that applies in this case as well. explosionShielding values for armored vehicles are generally strengthened compared to vanilla A3 to reduce the effect of ranged indirectHit damage (otherwise AFV's tend to be unrealistically sensitive to damage from explosions).

C. Penetration

D. Armor

I don't have much for this section so far as I haven't done any porting yet. If you're porting/creating vehicles and want compatibility with RAM, here's some advice:

  • Use the most detailed and accurate armor data you can when creating your vehicle's P3D Fire Geometry (armor). Correctly calibrated weapons are only going to give realistic results if your armor settings are good.
  • The armor material should generally be armour.bisurf (where thickness is defined by your model geometry). Preset-thickness materials (armour_plate, etc.) appear to respect LOS, so those should be fine too.
  • Regardless of what the real vehicle uses for armor (aluminum, composite, etc.) you are translating into RHAe thicknesses.
  • Internal structure should be blocked in crudely per the T-72 sample model: most hitpoint vertices should be inside geometry (e.g. the cast-iron modeled engine block), a few can sit in empty space to respond to explosive damage better(?)
  • We have integrated basic ERA and composite armor handling (where TE-CE != TE-KE) via Bakerman's submunition script (the same one that fixes Rocket/Missile penetration). This portion of the script will be in an upcoming RAM release. More details to come after I've tested the best way to implement this for ports.

E. Consequences & Implications

  • In vanilla A3, the effects of armor are largely ignored by the damage system.
    • More accurately: armor penetration is present, but its significance is overwhelmed by the global hitpoint effect--this is especially true for high damage-value weapons.

    [*]caliber-based ballistics work very well, but caliber is bugged for rockets & missiles (it can't be added).

    • Nor can the submunition feature be used as a workaround (it is also bugged for missiles if not other weapon types).
    • A script-based approach must be used to enable those weapon types to penetrate armor correctly.
    • Bakerman has contributed an excellent & efficient scripted solution to RAM to overcome these limitations in the code (see 0.0.5 alpha and above).

F. Config Properties ...and how RAM uses them

Weapon Config Properties

caliber: [#>=0] the penetration power of the weapon. (A value of 1 is standardized as 15mm of RHA penetration at 1000m/s.) The formula for mm of penetration is: (projectile speed / 1000)x(caliber)x(bulletPenetrability of the target BISURF). So higher = more penetration. As you can see from the formula, penetration is speed-dependent so there is not a simple relationship between caliber and mm of RHA penetration. <!>Adding caliber values to missile or rockets results is bugged and results in missiles flying through targets. {RAM uses values based on real-world data whenever possible}

deflecting: [#>=0, degrees] at impact angles <= this value, the projectile has a chance to deflect (bounce off). Higher values make it easier for the projectile to deflect instead of penetrating the target, while a value of 0 means the weapon never (or rarely<?>) deflects. (It seems like this should be mediated by the target BISURF friction value, but it appears not to be).

explosive: [0 to 1] the proportion of hit damage that is immune to speed-degradation. <!>There is a quirk in the code that disables penetration for values >=0.7, so consider carefully before crossing that threshold. {RAM caps explosive values at <0.7 to prevent the no-penetration bug}

hit: [#>0] damage caused by the weapon when it directly impacts a target. The non-explosive proportion of this damage declines as projectile speed falls below typicalSpeed.<!>Very large values can cause serious damage just from initial impact (ignoring armor). {RAM generally downgrades these values to prevent armor-ignoring damage}

indirectHit: [#>0] damage caused within indirectHitRange regardless of whether the weapon hits a target or not. Unlike hit damage, it is not mediated by weapon speed. Dampened by explosionShielding.

indirectHitRange: [#>0,m] the base radius that the weapon's indirectHit damage is caused within. The weapon will cause damage out to 4x this radius, with linear falloff. This property must be paired with a values for indirectHit. Using 0 is pointless b/c it will prevent indirectHit damage from being applied.

initSpeed: [#>=0, m/s] unlike the other values here, this one is defined in the Magazine class. It is the muzzle velocity of the weapon.

typicalSpeed: [#>=0, m/s] as a projectile falls below this value, it's (non-explosive) hit damage is proportionately reduced (obviously reaching 0 at speed 0).

Vehicle Config Properties

--Global

armor: [#>0] these are the 'global' hitpoints for your vehicle. BIS says they are modified by the model's bounding radius (I haven't verified how that part works<?>). Because local hitpoints are derived from this value (via locational armor values), increasing this value makes all hit locations stronger.

armorStructural: [#>0] this is a divisor to global damage (higher = less global hitpoint damage). It does not affect location hitpoint damage. So if set high enough it will almost nullify the global damage effect, without affecting how damage is applied to individual locations {which is how this value is used in RAM}.

--Hit Location

armor: [#>0, usu.<1] the proportion of global hitpoints that the location gets. Higher = more. There's no requirement that the location values add up to 1 (e.g. you could make them all 10 if you wanted insanely strong hit locations). (Not to be confused with the global armor value.)

explosionShielding: [#>0] this is a multiplier to indirectHit damage received by the location. Thus fractional values are protective and values >1 increase sensitivity. (Remember, this is not related to the explosive value). {These values are usually much lower in RAM than vanilla A3}.

minimalHit: [#>=0, usu.<1] this value x (global<?>) hitpoints creates a damage cutoff for the location. Damage less than the resulting value is ignored (I'd guess it is subtracted from incoming damage<?>). So the higher this value, the more resistant the location is to damage.

passThrough: [0<=#<=1] the proportion of location damage that is passed back through to global hitpoints. The higher the value, the more damage to this location will result in additional damage to global health. But its effect is capped at 1 (values >1 have no additional effect). (Remember from the damage description, global health takes plenty of damage with each hit, so this increases it even further). {These values are usually zeroed out in RAM}.

radius: [#>0,m?] the radius (in m?) of the location's hitpoint vertices in the vehicle's P3D model. The idea here is to spread the vertices out such that the radii touch each other without spilling out of the vehicle's armor model. Unless you have control over the P3D, you probably don't want to mess with this value.

HitHull: [location class] unlike other locations, this one is specially hardcoded to blow up the vehicle when its local hitpoints are depleted. This will happen regardless of whether the global health reaches 0. {This is what allows most catastrophic destruction in RAM, so I'm glad this feature is hardcoded!}.

HitFuel: [location class] Works the same as HitHull. (Typically HitFuel is used for APC's while HitHull is used for MBT's).

HitTrack: [location class] Just keep in mind that this location generally has no armor geometry protecting it and is thus easily damaged by the slightest hit. That means that it can only be protected by prudent use of minimalHit & explosionShielding. {RAM generally adjusts these values to make tracks stronger than vanilla}

HitWheel: [location class] Same issue as HitTrack but for wheeled vehicles obviously. {RAM doesn't adjust wheel strength}

Material Config Properties (BISURF)

bulletPenetrability:

bulletPenetrabilityWithThickness:

friction:

thickness:

G. License

  • I offer this information and related Real Armor Mod freely in the spirit of general modding progress. Use and share it freely for non-commercial applications. If you want to use it commercially or in a mod which is not open-source, you must request my permission first (PM me). If you use it without asking in a closed-source mod, I reserve the right to track you down and shame you publicly in the forums for violating the license terms. Also, be respectful and give credit when you use other's work.
  • Authors are not responsible for any harm caused by the mod (duh...:))
  • CBA prerequisite and all scripts associated with mod (authored by Bakerman) are subject to their own license terms.

Edited by Olds

Share this post


Link to post
Share on other sites

Olds or anyone with the correct knowledge I have a big question here....

Can anyone tell me what the density of a solider or human body is represented in the game as a bisurf or something to that effect? This would be someone WITHOUT armor on.

The reason I ask is I am having issues with civilian/LE rounds and pistols in getting the penetration values correct, thanks for the help in advance!

Share this post


Link to post
Share on other sites

from reading this and my understanding of it all the AT missiles are using is the indirecthit & indirecthitrange to do their damage

Share this post


Link to post
Share on other sites
from reading this and my understanding of it all the AT missiles are using is the indirecthit & indirecthitrange to do their damage

Well that's a goddamn travesty, isn't it.

Share this post


Link to post
Share on other sites
from reading this and my understanding of it all the AT missiles are using is the indirecthit & indirecthitrange to do their damage

Not with RAM they aren't. IndirectHit is just that--splash damage. It is caused in addition to the regular Hit damage in the case of a direct hit. A near miss obviously only causes the splash damage.

The glaring problem with vanilla AT warfare is not that--it's that armor has very little to do with damage... hence RAM. :)

Share this post


Link to post
Share on other sites

May have already been brought up, I'm feeling a little too lazy to reread the past four pages to check:o But I was just thinking about how in APC/IFV's in game, the crew can't be killed by penetrating rounds but the personnel in the cargo bay can:confused: Could that possibly be something to do with the lack of modeled armor interiors for crews, meanwhile the cargo bay does get modeled? If so would having proper interiors at least make it so individual crewmen could be killed when a sabot round passes through a tank. Maybe I'm just talking out of my rear, and even if not it still would only solve one of the many armor problems, but I couldn't help but wonder.

When testing this I used both the BTR-K and the marid as test targets with eight riflemen in the rear, the marid being the better target as you can use the camera feature to look inside the cargo bay while engaging it. I would kill at least a handful of riflemen inside the vehicle during every test run but never any crewmen... until I over did it and blew up the target vehicle that is;)

Edited by Odie0351

Share this post


Link to post
Share on other sites
May have already been brought up, I'm feeling a little too lazy to reread the past four pages to check:o But I was just thinking about how in APC/IFV's in game, the crew can't be killed by penetrating rounds but the personnel in the cargo bay can:confused: Could that possibly be something to do with the lack of modeled armor interiors for crews, meanwhile the cargo bay does get modeled? If so would having proper interiors at least make it so individual crewmen could be killed when a sabot round passes through a tank. Maybe I'm just talking out of my rear, and even if not it still would only solve one of the many armor problems, but I couldn't help but wonder.

When testing this I used both the BTR-K and the marid as test targets with eight riflemen in the rear, the marid being the better target as you can use the camera feature to look inside the cargo bay while engaging it. I would kill at least a handful of riflemen inside the vehicle during every test run but never any crewmen... until I over did it and blew up the target vehicle that is;)

Sorry I just noticed this. That is a darned good question. Because you can kill "crew" of cars and trucks just fine (without having to blow the whole vehicle). The only reason I can think of is that the model somehow has a lot more armor for the crew than the passengers(?)

Share this post


Link to post
Share on other sites

Revisions and additions to the damage description on the biki. Added a significant section regarding ballistics & penetration for bullets/shells vs. rockets/missiles. Might be of interest to folks.

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×