AI Config Reference – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
(WIP page creation)
 
(Added more stuff)
Line 365: Line 365:


== [[CfgWeapons_Config_Reference|CfgWeapons]] ==
== [[CfgWeapons_Config_Reference|CfgWeapons]] ==
=== [[CfgWeapons_Config_Reference#aiBurstTerminable.3Dfalse|aiBurstTerminable]] ===
;Class: ModeClass
;Type: [[TokenNameValueTypes|Boolean]]
;Description: AI firemode parameter, when true, AI will terminate burst when target is dead or out of sight
=== [CfgWeapons_Config_Reference#aiDispersionCoefX.3D1.0|aiDispersionCoefX] ===
;Type: [[TokenNameValueTypes|Float]]
;Description: Dispersion  multiplier for ''AI'' units (axis X - left to right).
=== [CfgWeapons_Config_Reference#aiDispersionCoefY.3D1.0|aiDispersionCoefY] ===
;Type: [[TokenNameValueTypes|Float]]
;Description: Dispersion multiplier for ''AI'' units (axis Y - top-down).
=== [CfgWeapons_Config_Reference#aiRateOfFire.3D5.0|aiRateOfFire] ===
;Class: ModeClass
;Type: [[TokenNameValueTypes|Float]]
;Description: Delay between shots at given ''aiRateOfFireDistance''.
=== [CfgWeapons_Config_Reference#aiRateOfFireDistance.3D500|aiRateOfFireDistance] ===
;Class: ModeClass
;Type: [[TokenNameValueTypes|Integer]]
;Description: At shorter distance delay (''aiRateOfFire'') goes linearly to zero.
=== [CfgWeapons_Config_Reference#aiRateOfFireDispersion.3D1|aiRateOfFireDispersion] ===
;Class: ModeClass
;Type: [[TokenNameValueTypes|Float]]
;Description: Property that affects the randomness of delay between shots. Value sets the maximum of the range in which a random number influencing the delay between shots is generated. 0 means the delay between shots will be the same (with given actual distance). The bigger the value the longer delay can be generated.
<syntaxhighlight lang="c">
// randomized delay after shot
timeToShot = aiRateOfFire + aiRateOfFireDispersion * Random<0,1>
</syntaxhighlight>
=== [CfgWeapons_Config_Reference#min.2Fmid.2FmaxRange...|min/mid/maxRange...] ===
;Class: ArmaModeClass
;Type: [[TokenNameValueTypes|Integer]]
;Description: Together with ''range'' and ''rangeProbab'' values, defines probability to use this weapon for ''AI'' units at given distance.
==== [CfgWeapons_Config_Reference#minRange.3D1|minRange] ====
;Type: [[TokenNameValueTypes|Integer]]
==== [CfgWeapons_Config_Reference#minRangeProbab.3D0.3|minRangeProbab] ====
;Type: [[TokenNameValueTypes|Float]]
==== [CfgWeapons_Config_Reference#midRange.3D150|midRange] ====
;Type: [[TokenNameValueTypes|Integer]]
==== [CfgWeapons_Config_Reference#midRangeProbab.3D_0.58|midRangeProbab] ====
;Type: [[TokenNameValueTypes|Float]]
==== [CfgWeapons_Config_Reference#maxRange.3D500|maxRange] ====
;Type: [[TokenNameValueTypes|Integer]]
==== [CfgWeapons_Config_Reference#maxRangeProbab.3D0.04|maxRangeProbab] ====
;Type: [[TokenNameValueTypes|Float]]
=== [CfgWeapons_Config_Reference#showToPlayer.3Dtrue|showToPlayer] ===
;Class: ModeClass
;Type: [[TokenNameValueTypes|Boolean]]
;Description: Some modes defined for ''AI'' usage (''e.g.'' burst modes for full auto weapons) can be hidden from player with this parameter.
== [[CfgVehicles_Config_Reference|CfgVehicles]] ==
== [[CfgMoves_Config_Reference|CfgMoves]] ==
=== [[CfgMoves_Config_Reference#variantsAI.5B.5D|variantsAI[]]] ===
;Type: [[TokenNameValueTypes|Array]]
;Description: Found in ''States'' when there are several variations on the same animation (usually idles) that can be played randomly.
It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.
The sum of these numbers is always <tt>1</tt>.
<syntaxhighlight lang="c">
//Default
variantsAI[] = {""};   
//AidlPercMstpSnonWnonDnon         
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
    "AidlPercMstpSnonWnonDnon02", 0.01,
    "AidlPercMstpSnonWnonDnon03", 0.01,
    "AidlPercMstpSnonWnonDnon04", 0.01,
    "AidlPercMstpSnonWnonDnon05", 0.01,
    "AidlPercMstpSnonWnonDnon06", 0.01,
    "AidlPercMstpSnonWnonDnon07", 0.01,
    "AidlPercMstpSnonWnonDnon08", 0.01,
    "AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
    "Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
//aidlpercmstpsraswlnrdnon_S
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};
</syntaxhighlight>
=== [[CfgMoves_Config_Reference#visibleSize|visibleSize]] ===
;Type: [[TokenNameValueTypes|Float]]
;Description: Found in ''States'', probably used for calculating how visible a character is for the ''AI'', based on his stance/animation.
<syntaxhighlight lang="c">
visibleSize = 1.00012;      //SprintBaseDf                  when sprinting more visible than..
visibleSize = 0.700121;      //AmovPercMstpSrasWrflDnon      ..when stopped > visible than..
visibleSize = 0.300122;      //AmovPknlMstpSlowWrflDnon      ..when kneeling > visible than..
visibleSize = 0.100123;      //AmovPpneMstpSrasWrflDnon      ..when prone.
</syntaxhighlight>
== [[Arma_3_CfgSurfaces_Config_Reference|CfgSurfaces]] ==
=== [[Arma_3_CfgSurfaces_Config_Reference#AIAvoidStance|AIAvoidStance]] ===
[[TokenNameValueTypes|Integer]]: Allows restricting the AI from entering prone with two levels of emphasis
{| class="bikitable"
! Value !! Description
|-
| <tt>0</tt> || No change in behavior
|-
| <tt>1</tt> || Less preference for going prone - avoid prone (unless stealth or suppressed or *)
|-
| <tt>2</tt> || Almost never going prone - never prone (unless *)
|}
* means commanded, injured, animated, forced, ...
=== [[Arma_3_CfgSurfaces_Config_Reference#grassCover|grassCover]] ===
[[TokenNameValueTypes|Float]]: Reduces visibleSize (taken from [[CfgMoves_Config_Reference#visibleSize|CfgMovesBasic]]) of unit for AI visibility movement computations (cannot make fully invisible) - it is NOT about visual drawing
<syntaxhighlight lang="c">
grassCover = 0; // Used by GdtStratisConcrete, there will be no simulated grass cover at a distance
grassCover = 0.05; // Used by GdtStratisGreenGrass, there will be some simulated grass cover at a distance
</syntaxhighlight>
== [[Arma_3_Particle_Effects#Definition_of_part-effect|CfgCloudlets]] ==
=== blockAIVisibility ===
Sets if particles are in the AI visibility tests (default true) - false for better performance but AI is able to see through particles
[[TokenNameValueTypes|Boolean]]
<syntaxhighlight lang="c">
blockAIVisibility = true;
</syntaxhighlight>


{{Cfg ref|end}}
{{Cfg ref|end}}

Revision as of 11:55, 28 October 2020

Template:Stub Template:wip

Note that this is the relevant page for Arma 3 AI configuration. Implementations for older Arma titles differ somewhat, but are irrelevant for Arma 3.

Template:Cfg ref

CfgBrains Config Reference

As of Arma 3 logo black.png2.00 it contains three classes

  • DefaultAnimalBrain
  • DefaultCivilianBrain
  • DefaultSoldierBrain

Each of which contains a Components class. Only DefaultSoldierBrain includes any components by default.

AIBrainAimingErrorComponent

bestDecreaseTime

How long (in seconds) it should take 1 skilled soldier to stabilize the aim completely

Float

bestDecreaseTime = 0.2;

damageCoef

Importance of damage of entity, multiplier

Float

damageCoef = 10;

fatigueCoef

Importance of fatigue of entity, multiplier

Float

fatigueCoef = 10;

lostTargetCoef

Importance of loosing target event, multiplier

Float

lostTargetCoef = 3;

lostTargetTimeMax

How long error is raising after loosing sight of target

Float

lostTargetTimeMax = 3;

lostTargetTimeMin

How soon after loosing sight of target, error starts to raise

Float

lostTargetTimeMax = 0.5;

maxAngularError

Half of the error cone in radians

Float

maxAngularError = 0.1309;

maxAngularErrorTurrets

Half of the error cone in radians, used for turrets

Float

maxAngularErrorTurrets = 0.0872;

movingInfluence

Importance of moving in algorithm, multiplier

Float

movingInfluence = 1;

shootingInfluence

Importance of shooting in algorithm, multiplier

Float

movingInfluence = 0.4;

suppressionCoef

Importance of suppression value, multiplier

Float

suppressionCoef = 0.5;

turningInfluence

Importance of turning in algorithm, multiplier

Float

turningInfluence = 1;

worstDecreaseTime

How long (in seconds) it should take 0 skilled soldier to stabilize the aim completely

Float

worstDecreaseTime = 2;

AIBrainCountermeasuresComponent

useSmokeGrenadeDelay

Integer

useSmokeGrenadeDelay = 20;

CMCheckDelay

Float

CMCheckDelay = 0.8;

suppressionThreshold

Float

suppressionThreshold = 0.8;

nonLeaderSmokeProbability

Float

nonLeaderSmokeProbability = 0.1;

CMOnTargettedProbability

Float

CMOnTargettedProbability = 0.1;

suppressionTimerMax

Float

suppressionTimerMax = 2;

minimalThrowDistance

Integer

minimalThrowDistance = 900;

minReactionTime

Float

minReactionTime = 0.1;

maxReactionTime

Float

maxReactionTime = 3;

randomReactionTimePercent

Float

randomReactionTimePercent = 0.2;

AIBrainSuppressionComponent

bestDecreaseTime

Float

bestDecreaseTime = 1; // in seconds for 1 skill

causeBulletCloseWeight

Float

causeBulletCloseWeight = 0.5;

causeExplosionWeight

Float

causeExplosionWeight = 0.5;

causeFireWeight

Float

causeFireWeight = 0.5;

causeHitWeight

Float

causeHitWeight = 0.5;

maxSuppression

Float

maxSuppression = 1;

suppressionRange

Integer

suppressionRange = 20;

suppressionThreshold

Float

suppressionThreshold = 0.7;

worstDecreaseTime

Float

worstDecreaseTime = 10;

AI Skill

CfgAILevelPresets

This sets the values for the different presets available in Game Settings, by default there are four classes available:

  • AILevelHigh
  • AILevelMedium
  • AILevelLow
  • Custom

Each of which feature the following properties

displayName

Text displayed in the dropdown menu

String

displayName = "Custom"

precisionAI

Coefficient applied to all accuracy skills

Float

precisionAI = 0.5;

skillAI

Coefficient applied to all utility skills

Float

skillAI = 0.5;

CfgAISkill

aimingAccuracy

Array

aimingAccuracy[] = {0,0,1,1};

aimingShake

Array

aimingShake[] = {0,0,1,1};

aimingSpeed

Array

aimingSpeed[] = {0,0.5,1,1};

commanding

Array

commanding[] = {0,0,1,1};

courage

Array

courage[] = {0,0,1,1};

general

Array

general[] = {0,0,1,1};

reloadSpeed

Array

reloadSpeed[] = {0,0,1,1};

spotDistance

Array

spotDistance[] = {0,0,1,1};

spotTime

Array

spotTime[] = {0,0,1,1};

CfgDifficultyPresets

levelAI

Refers to CfgAILevelPresets

String

levelAI = "AILevelMedium";

CfgWeapons

aiBurstTerminable

Class
ModeClass
Type
Boolean
Description
AI firemode parameter, when true, AI will terminate burst when target is dead or out of sight

[CfgWeapons_Config_Reference#aiDispersionCoefX.3D1.0|aiDispersionCoefX]

Type
Float
Description
Dispersion multiplier for AI units (axis X - left to right).

[CfgWeapons_Config_Reference#aiDispersionCoefY.3D1.0|aiDispersionCoefY]

Type
Float
Description
Dispersion multiplier for AI units (axis Y - top-down).

[CfgWeapons_Config_Reference#aiRateOfFire.3D5.0|aiRateOfFire]

Class
ModeClass
Type
Float
Description
Delay between shots at given aiRateOfFireDistance.

[CfgWeapons_Config_Reference#aiRateOfFireDistance.3D500|aiRateOfFireDistance]

Class
ModeClass
Type
Integer
Description
At shorter distance delay (aiRateOfFire) goes linearly to zero.

[CfgWeapons_Config_Reference#aiRateOfFireDispersion.3D1|aiRateOfFireDispersion]

Class
ModeClass
Type
Float
Description
Property that affects the randomness of delay between shots. Value sets the maximum of the range in which a random number influencing the delay between shots is generated. 0 means the delay between shots will be the same (with given actual distance). The bigger the value the longer delay can be generated.
// randomized delay after shot
timeToShot = aiRateOfFire + aiRateOfFireDispersion * Random<0,1>

[CfgWeapons_Config_Reference#min.2Fmid.2FmaxRange...|min/mid/maxRange...]

Class
ArmaModeClass
Type
Integer
Description
Together with range and rangeProbab values, defines probability to use this weapon for AI units at given distance.

[CfgWeapons_Config_Reference#minRange.3D1|minRange]

Type
Integer

[CfgWeapons_Config_Reference#minRangeProbab.3D0.3|minRangeProbab]

Type
Float

[CfgWeapons_Config_Reference#midRange.3D150|midRange]

Type
Integer

[CfgWeapons_Config_Reference#midRangeProbab.3D_0.58|midRangeProbab]

Type
Float

[CfgWeapons_Config_Reference#maxRange.3D500|maxRange]

Type
Integer

[CfgWeapons_Config_Reference#maxRangeProbab.3D0.04|maxRangeProbab]

Type
Float

[CfgWeapons_Config_Reference#showToPlayer.3Dtrue|showToPlayer]

Class
ModeClass
Type
Boolean
Description
Some modes defined for AI usage (e.g. burst modes for full auto weapons) can be hidden from player with this parameter.

CfgVehicles

CfgMoves

variantsAI[]

Type
Array
Description
Found in States when there are several variations on the same animation (usually idles) that can be played randomly.

It lists the animations to be randomly cycled. The numbers represent the probability of that animation being played, the higher the number, the more likely the animation will get to play.

The sum of these numbers is always 1.

//Default
variantsAI[] = {""};    
//AidlPercMstpSnonWnonDnon          
variantsAI[] = {"AidlPercMstpSnonWnonDnon01", 0.01,
    "AidlPercMstpSnonWnonDnon02", 0.01,
    "AidlPercMstpSnonWnonDnon03", 0.01,
    "AidlPercMstpSnonWnonDnon04", 0.01,
    "AidlPercMstpSnonWnonDnon05", 0.01,
    "AidlPercMstpSnonWnonDnon06", 0.01,
    "AidlPercMstpSnonWnonDnon07", 0.01,
    "AidlPercMstpSnonWnonDnon08", 0.01,
    "AidlPercMstpSnonWnonDnon_idleSteady04", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady03", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady02", 0.23,
    "AidlPercMstpSnonWnonDnon_idleSteady01", 0.23};
//ActsPsitMstpSnonWnonDnon_varSittingOnTheWall
variantsAI[] = {"Mi17_Cargo02", 0.4, "Mi17_Cargo02_V1", 0.1, "Mi17_Cargo02_V2", 0.1, "Mi17_Cargo02_V3", 0.1,
    "Mi17_Cargo02_V4", 0.1, "Mi17_Cargo02_V5", 0.1, "Mi17_Cargo02_V6", 0.1};
//aidlpercmstpsraswlnrdnon_S
variantsAI[] = {"aidlpercmstpsraswlnrdnon_1", 0.333, "aidlpercmstpsraswlnrdnon_2", 0.333, "aidlpercmstpsraswlnrdnon_3", 0.334};

visibleSize

Type
Float
Description
Found in States, probably used for calculating how visible a character is for the AI, based on his stance/animation.
visibleSize = 1.00012;       //SprintBaseDf                  when sprinting more visible than..
visibleSize = 0.700121;      //AmovPercMstpSrasWrflDnon      ..when stopped > visible than..
visibleSize = 0.300122;      //AmovPknlMstpSlowWrflDnon      ..when kneeling > visible than..
visibleSize = 0.100123;      //AmovPpneMstpSrasWrflDnon      ..when prone.

CfgSurfaces

AIAvoidStance

Integer: Allows restricting the AI from entering prone with two levels of emphasis

Value Description
0 No change in behavior
1 Less preference for going prone - avoid prone (unless stealth or suppressed or *)
2 Almost never going prone - never prone (unless *)
* means commanded, injured, animated, forced, ...

grassCover

Float: Reduces visibleSize (taken from CfgMovesBasic) of unit for AI visibility movement computations (cannot make fully invisible) - it is NOT about visual drawing

grassCover = 0;		// Used by GdtStratisConcrete, there will be no simulated grass cover at a distance
grassCover = 0.05;	// Used by GdtStratisGreenGrass, there will be some simulated grass cover at a distance

CfgCloudlets

blockAIVisibility

Sets if particles are in the AI visibility tests (default true) - false for better performance but AI is able to see through particles

Boolean

blockAIVisibility = true;

Template:Cfg ref