AI Skill – Arma 3

From Bohemia Interactive Community
Jump to navigation Jump to search
mNo edit summary
Line 97: Line 97:


==CfgAISkill==
==CfgAISkill==
CfgAISkill is a set of arrays, related to [[AI Sub-skills]], defining the interpolation curve of each of the sub-skill.
CfgAISkill is a set of arrays, related to [[AI Sub-skills]], defining the interpolation curve of each of the sub-skill. They can be changed by a mod for example.
===Example===
===Example===
[[File:CfgAISkill.jpg|thumb|Interpolation with vanilla A3 CfgAISkill]]
[[File:CfgAISkill.jpg|thumb|Interpolation with vanilla A3 CfgAISkill]]
Line 113: Line 113:


===Defaults for Arma 3===
===Defaults for Arma 3===
==Config Arrays==
====Table====
<spoiler>
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};
</spoiler>
==Table==
{| class="wikitable"
{| class="wikitable"
|-
|-
Line 155: Line 142:
*y: Original maximal value set by [[setSkill]] or [[Eden Editor]]
*y: Original maximal value set by [[setSkill]] or [[Eden Editor]]
*z: Maximal allowed value, if w is lower. It will be clamped to this value
*z: Maximal allowed value, if w is lower. It will be clamped to this value
====Config====
<spoiler>
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};
</spoiler>


== Related Commands ==
== Related Commands ==

Revision as of 02:56, 23 December 2018


AI skill/level/final skill
Difficulty Menu
Skill setting in Eden Editor

Overview

This page contains all information about Arma 3`s artificial intelligence, short AI.

AI Skill

The AI is characterized by a set of sub-skills. Each sub-skill is influence by one of the following:

  • Inherited from the value set via setSkill
  • Skill set in Eden Editor
  • Exact value set by the setSkill command
  • AI skill is also influenced by the global setting in the difficulty menu.

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

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 = more courage)
  • 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's visual or audible range (Higher value = more likely to spot)
  • Affects the accuracy of the information (Higher value = more accurate 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 = less weapon sway)
  • Higher value means the AI will be more precise

CfgAISkill

CfgAISkill is a set of arrays, related to AI 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.
  • 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.

Defaults for Arma 3

Table

Sub-Skill w x y 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
  • w: Original minimal value set by setSkill or Eden Editor
  • x: Minimal allowed value, if w is lower. It will be clamped to this value
  • y: Original maximal value set by setSkill or Eden Editor
  • z: Maximal allowed value, if w is lower. It will be clamped to this value

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}; Has been 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