AI Skill – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
m (→‎AI Skill: typo)
m (Some wiki formatting)
 
(60 intermediate revisions by 2 users not shown)
Line 1: Line 1:
[[Category:AI]]
{{Feature|informative|Some information on this page were not confirmed by {{Name|bi}}!}}
[[Category: Arma 3: Editing]]


[[File:AI_skill_and_level.png|thumb|AI skill/level/final skill]]
[[File:AI_skill_and_level.png|thumb|AI skill/level/final skill]]
== AI Skill ==
The AI is characterized by a set of {{Link|#Sub-Skills|sub-skills}}.
The [[skillFinal|final AI skill]] is unfluenced by {{Link|#Changing AI Skill|several factors}}.
Additionally each sub-skill is then interpolated with the values set in CfgAISkill.
== Changing AI Skill ==
=== Players ===
[[File:A3_AISkill_Options.jpg|thumb|Difficulty Menu]]
[[File:A3_AISkill_Options.jpg|thumb|Difficulty Menu]]
[[File:A3_AISkill_EdenEditor.jpg|thumb|Skill setting in [[Eden Editor]]]]
* As player one can only influence AI skill by changing the global skill settings '''Skill''' and '''Precision'''. One has also the option to choose one of the default '''AI Levels'''.
==Overview==
** Skill: Influences multiple sub-skills related to the AIs "intelligence". If the value is set too low, the AI will be dumb.
This page contains all information about Arma 3`s artificial intelligence, short AI.
** Precision: Influences sub-skills related to AIs precision. If the value is set too high, the AI will have a super human precision. Lower values result mostly in interesting fire fights.
{{Feature|informative|Changing the AI difficulty settings during a scenario will have no effect until the scenario is restarted.}}


==AI Skill==
=== Scenario Designers ===


The AI is characterized by a set of [[AI Sub-skills|sub-skills]]. Each sub-skill is influence by one of the following:
[[File:A3_AISkill_EdenEditor.jpg|thumb|Skill setting in [[:Category:Eden Editor|Eden Editor]]]]
* Inherited from the value set via [[setSkill]]
* A scenario designer has four ways to influence the AI skill:
**{{Inline code|_unit [[setSkill]] 0.8;}}
** By changing the skill slider in [[Eden Editor: Object#Attributes|Eden Editor]] for each individual unit.
* Skill set in [[Eden Editor]]
** By using functions like [[BIS_fnc_EXP_camp_setSkill]] or [[BIS_fnc_EXP_camp_dynamicAISkill]] to set the skill of multiple AI entities at once.
* Exact value set by the [[setSkill]] command
** By using commands like [[setSkill]].
**{{Inline code|_unit [[setSkill]] ["reloadSpeed", 0.8];}}
** By using the '''Set Skill''' module which allows to change the skill of AI entities for example when a trigger was activated.


Each sub-skill is then interpolated with the values set in CfgAISkill.
=== Modders ===


Additionally the AI skill is also influenced by the global setting in the difficulty menu.
* A modder can influence the AI skill by overwriting {{Link|#CfgAISkill}}.
 
=== Server Admins ===
 
* Server admins can change the AI skill by changing the '''aiLevelPreset''' config parameter found in server config. See [[server.armaprofile#Arma_3|{{arma3}} Server Profile]] for more information.
 
 
== Sub-Skills ==


==Sub-Skills==
Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.
Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.
===aimingAccuracy===
 
* Affects how well the AI can lead a target  
{| class="wikitable sortable"
! Sub-Skill
! Effect
! Influence
|-
| aimingAccuracy
|
* Affects how well the AI can lead a target
* Affects how accurately the AI estimate range and calculates bullet drop
* Affects how accurately the AI estimate range and calculates bullet drop
* Affects how well the AI compensates for weapon dispersion
* Affects how well the AI compensates for weapon dispersion
* Affects how much the AI will know to compensate for recoil (Higher value = more controlled fire)
* Affects how much the AI will know to compensate for recoil
* Affects how certain the AI must be about its aim on target before opening fire
* Affects how certain the AI must be about its aim on target before opening fire
|
* Higher value means the AI can lead a target better
* Higher value means the Ai can estimate range and calculate bullet drop more precicely
* Higher value means the AI can compensate weapon dispersion better
* Higher value means the AI can control the recoil better
* Higher value means the AI needs to now less to open up fire
|-
| aimingSpeed
|
* Affects how quickly the AI can rotate and stabilize its aim
|
* Higher value means the AI can rotate and stabilize its aim faster
|-
| commanding
|
* Affects how quickly recognized targets are shared with the group
|
* Higher value means the AI can report targets faster
|-
| courage
|
* Affects unit's subordinates' morale
|
* Higher value means the AI has got more courage
|-
| endurance
|
* ''Disabled in {{arma3}}''
|
* ''Disabled''
|-
| general
|
* Raw "Skill", value is distributed to sub-skills unless defined otherwise. Affects the AI's decision making.
|
* ?
|-
| reloadSpeed
|
* Affects the delay between switching or reloading a weapon
|
* Higher value means the AI can switch or reload weapons faster
|-
| spotDistance
|
* Affects the AI ability to spot targets within it is visual or audible range
* Affects the accuracy of the information
|
* Higher value means the AI is better at spotting targets
* Higher value means the AI will collect information about targets more precisely
|-
| spotTime
|
* Affects how quick the AI react to death, damage or observing an enemy
|
* Higher value means the AI will react faster to death, damage or enemies
|-
| aimingShake
|
* Affects how steadily the AI can hold a weapon
|
* Higher value means the AI will be more precise
|}


===aimingShake===
* Affects how steadily the AI can hold a weapon (Higher value = less weapon sway)


===aimingSpeed===
== CfgAISkill ==
* Affects how quickly the AI can rotate and stabilize its aim (Higher value = faster, less error)


===commanding===
CfgAISkill is a set of arrays, related to {{Link|#Sub-Skills}}, defining the interpolation curve of each of the sub-skill.
* Affects how quickly recognized targets are shared with the group (Higher value = faster reporting)
They can be changed by a mod for example.


===courage===
=== Example ===
* Affects unit's subordinates' morale (Higher value = more courage)


===endurance===
[[File:CfgAISkill.jpg|thumb|Interpolation with vanilla A3 CfgAISkill]]
*''Disabled in Arma3''
In { w, x, y, z } value from (w,y) gets interpolated into (x,z)
 
* <code>spotDistance[] = { '''0''', {{Color|purple|0.2}}, '''1''', {{Color|purple|0.4}} };</code>
** Value in a range '''0-1''' will change into value in a range {{Color|purple|0.2-0.4}}.
* <sqf inline>_unit setSkill ["spotDistance", 0.5];</sqf>
** Results in <sqf inline>_unit skill "spotDistance"</sqf> returning ''0.3''
 
{{Feature|informative|
More than 2 pairs of defining values can be used (minimum is 2 pairs).
The values are used to interpolate on run-time, so even after setting sub-skill by script command it will be interpolated and bound by this array.
}}
 
=== {{arma3}} Defaults ===
 
==== Table ====
{| class="wikitable"
|-
! Sub-Skill
! minInputSkillLimit (w)
! resultingSubSkillLowerBoundary (x)
! maxInputSkillLimit (y)
! resultingSubSkillLowerBoundary (z)
|-
| aimingAccuracy
| 0
| 0
| 1
| 1
|-
| aimingShake
| 0
| 0
| 1
| 1
|-
| aimingSpeed
| 0
| 0.5
| 1
| 1
|-
| commanding
| 0
| 0
| 1
| 1
|-
| courage
| 0
| 0
| 1
| 1
|-
| endurance
| 0
| 0
| 1
| 1
|-
| general
| 0
| 0
| 1
| 1
|-
| reloadSpeed
| 0
| 0
| 1
| 1
|-
| spotDistance
| 0
| 0
| 1
| 1
|-
| spotTime
| 0
| 0
| 1
| 1
|}
 
==== Config ====
<spoiler>
<syntaxhighlight lang="cpp">
aimingAccuracy[] = { 0, 0, 1, 1 };
aimingShake[] = { 0, 0, 1, 1 };
aimingSpeed[] = { 0, 0.5, 1, 1 };
commanding[] = { 0, 0, 1, 1 };
courage[] = { 0, 0, 1, 1 };
endurance[] = { 0, 0, 1, 1 }; // disabled in Arma 3
general[] = { 0, 0, 1, 1 };
reloadSpeed[] = { 0, 0, 1, 1 };
spotDistance[] = { 0, 0, 1, 1 };
spotTime[] = { 0, 0, 1, 1 };
</syntaxhighlight>
</spoiler>


===general===
* Raw "Skill", value is distributed to sub-skills unless defined otherwise. Affects the AI's decision making.


===reloadSpeed===
== Related Commands ==
* Affects the delay between switching or reloading a weapon (Higher value = less delay)


===spotDistance===
* [[skill]]
* Affects the AI ability to spot targets within it's visual or audible range (Higher value = more likely to spot)
* [[setSkill]]
* Affects the accuracy of the information (Higher value = more accurate information)
* [[skillFinal]]
* [[allowFleeing]]


===spotTime===
* Affects how quick the AI react to death, damage or observing an enemy (Higher value = quicker reaction)


==CfgAISkill==
== External Links ==
CfgAISkill is a set of arrays, related to [[AI Sub-skills]], defining the interpolation curve of each of the sub-skill.
===Example===
[[File:CfgAISkill.jpg|thumb|Interpolation with vanilla A3 CfgAISkill]]
In {w, x, y, z} value from (w,y) gets interpolated into (x,z)
''spotDistance[] = {0,0.2, 1,0.4};'' value in a range 0-1 will change into value in a range 0.2-0.4.
''setSkill ["spotDistance", 0.5]'' results in ''skill "spotDistance"'' returning ''0.3''
===Notes===
More than 2 pairs of defining values can be used (minimum is 2 pairs).


The values are used to interpolate on run-time, so even after setting sub-skill by script command it will be interpolated and bound by this array.
*{{Link|link= https://forums.bohemia.net/forums/topic/219929-the-mystical-skillfinal-formula-reverse-engineering-it/|text= BIS Forums AI Skill}}
*{{Link|link= https://forums.bohemia.net/forums/topic/223493-ai-facts-myths-compilation-list/|text= AI Facts & Myths Compilation List}}


===Defaults for Arma 3===
aimingAccuracy[] = {0, 0, 1, 1};
aimingShake[] = {0, 0, 1, 1};
aimingSpeed[] = {0, 0.5, 1, 1};
commanding[] = {0, 0, 1, 1};
courage[] = {0, 0, 1, 1};
endurance[] = {0, 0, 1, 1}; '''Has been disabled in {{arma3}}'''
general[] = {0, 0, 1, 1};
reloadSpeed[] = {0, 0, 1, 1};
spotDistance[] = {0, 0, 1, 1};
spotTime[] = {0, 0, 1, 1};


== Related Commands ==
[[Category:AI]]
*[[skill]]
*[[setSkill]]
*[[skillFinal]]

Latest revision as of 09:54, 6 May 2024

Some information on this page were not confirmed by Bohemia Interactive!
AI skill/level/final skill


AI Skill

The AI is characterized by a set of sub-skills. The final AI skill is unfluenced by several factors. Additionally each sub-skill is then interpolated with the values set in CfgAISkill.


Changing AI Skill

Players

Difficulty Menu
  • As player one can only influence AI skill by changing the global skill settings Skill and Precision. One has also the option to choose one of the default AI Levels.
    • Skill: Influences multiple sub-skills related to the AIs "intelligence". If the value is set too low, the AI will be dumb.
    • Precision: Influences sub-skills related to AIs precision. If the value is set too high, the AI will have a super human precision. Lower values result mostly in interesting fire fights.
Changing the AI difficulty settings during a scenario will have no effect until the scenario is restarted.

Scenario Designers

Skill setting in Eden Editor
  • A scenario designer has four ways to influence the AI skill:

Modders

  • A modder can influence the AI skill by overwriting CfgAISkill.

Server Admins

  • Server admins can change the AI skill by changing the aiLevelPreset config parameter found in server config. See Arma 3 Server Profile for more information.


Sub-Skills

Sub-skills are a set of parameters ultimately defining the individual AI unit performance in the game.

Sub-Skill Effect Influence
aimingAccuracy
  • Affects how well the AI can lead a target
  • Affects how accurately the AI estimate range and calculates bullet drop
  • Affects how well the AI compensates for weapon dispersion
  • Affects how much the AI will know to compensate for recoil
  • Affects how certain the AI must be about its aim on target before opening fire
  • Higher value means the AI can lead a target better
  • Higher value means the Ai can estimate range and calculate bullet drop more precicely
  • Higher value means the AI can compensate weapon dispersion better
  • Higher value means the AI can control the recoil better
  • Higher value means the AI needs to now less to open up fire
aimingSpeed
  • Affects how quickly the AI can rotate and stabilize its aim
  • Higher value means the AI can rotate and stabilize its aim faster
commanding
  • Affects how quickly recognized targets are shared with the group
  • Higher value means the AI can report targets faster
courage
  • Affects unit's subordinates' morale
  • Higher value means the AI has got more courage
endurance
  • Disabled in Arma 3
  • Disabled
general
  • Raw "Skill", value is distributed to sub-skills unless defined otherwise. Affects the AI's decision making.
  • ?
reloadSpeed
  • Affects the delay between switching or reloading a weapon
  • Higher value means the AI can switch or reload weapons faster
spotDistance
  • Affects the AI ability to spot targets within it is visual or audible range
  • Affects the accuracy of the information
  • Higher value means the AI is better at spotting targets
  • Higher value means the AI will collect information about targets more precisely
spotTime
  • Affects how quick the AI react to death, damage or observing an enemy
  • Higher value means the AI will react faster to death, damage or enemies
aimingShake
  • Affects how steadily the AI can hold a weapon
  • Higher value means the AI will be more precise


CfgAISkill

CfgAISkill is a set of arrays, related to Sub-Skills, defining the interpolation curve of each of the sub-skill. They can be changed by a mod for example.

Example

Interpolation with vanilla A3 CfgAISkill

In { w, x, y, z } value from (w,y) gets interpolated into (x,z)

  • spotDistance[] = { 0, 0.2, 1, 0.4 };
    • Value in a range 0-1 will change into value in a range 0.2-0.4.
  • _unit setSkill ["spotDistance", 0.5];
    • Results in _unit skill "spotDistance" returning 0.3
More than 2 pairs of defining values can be used (minimum is 2 pairs). The values are used to interpolate on run-time, so even after setting sub-skill by script command it will be interpolated and bound by this array.

Arma 3 Defaults

Table

Sub-Skill minInputSkillLimit (w) resultingSubSkillLowerBoundary (x) maxInputSkillLimit (y) resultingSubSkillLowerBoundary (z)
aimingAccuracy 0 0 1 1
aimingShake 0 0 1 1
aimingSpeed 0 0.5 1 1
commanding 0 0 1 1
courage 0 0 1 1
endurance 0 0 1 1
general 0 0 1 1
reloadSpeed 0 0 1 1
spotDistance 0 0 1 1
spotTime 0 0 1 1

Config

aimingAccuracy[] = { 0, 0, 1, 1 };
aimingShake[] = { 0, 0, 1, 1 };
aimingSpeed[] = { 0, 0.5, 1, 1 };
commanding[] = { 0, 0, 1, 1 };
courage[] = { 0, 0, 1, 1 };
endurance[] = { 0, 0, 1, 1 }; // disabled in Arma 3
general[] = { 0, 0, 1, 1 };
reloadSpeed[] = { 0, 0, 1, 1 };
spotDistance[] = { 0, 0, 1, 1 };
spotTime[] = { 0, 0, 1, 1 };


Related Commands


External Links