VcomAI est un mod développé par dominic/genesis92x touchant au comportement de l'IA. De par sa conception, il est également possible d'installer ce mod en version script dans une mission. Ce tutoriel a pour objectif de vous montrer cette manipulation et également les paramétrages Vcom.
Pour installer la version script de Vcom vous devez tout d'abord télécharger la dernière version sur Github. Une fois sur la page Github, sélectionnez la dernière version disponible. À la date de ce tutoriel la dernière version est la 3.4.0-release (la 3.4.1 étant toujours en développement). Une fois la bonne version sélectionnée vous allez télécharger l'archive zip contenant le code.
Les images suivantes vous indiquent la procédure.
Extrayez l'archive et ouvrez le dossier VcomAI-3.0-3.4.0-release/VcomAI340.Stratis. Vous devez trouver à l'intérieur 2 dossiers et 3 fichiers :
Il vous faut maintenant ouvrir dans l'explorateur de fichier votre répertoire de mission. Celui-ci se trouve normalement dans le chemin d'accès C:\Users\<username>\OneDrive\Documents\Arma 3 - Other Profiles\<profil>\missions\<votremission>
ou mpmissions\<votremission>
(Les noms de répertoire entre <> sont à remplacer par les vôtres) <votremission> étant le dossier de votre mission (Je sais, incroyable !).
Dans ce dossier transférez les fichiers init.sqf, description.ext, le dossier Vcom et le dossier userconfig. Voilà ! Vcom est maintenant installé dans votre mission et uniquement cette mission. Maintenant voyons les réglages du mod.
Vcom par défaut influe sur toutes les unités non contrôlées par les joueurs exceptées celles dans le camp civil. Pour ses réglages Vcom utilise deux fichiers aux contenus identiques, VcomAI_DefaultSettings.sqf
et AISettingsV3.hpp
.
Les deux coupables, ces coquins.
Toute cette partie est valable pour la version mod également.
En ouvrant votre fichier de paramètres dans votre éditeur de code préféré comme VS code, notepad++, Emacs Vim (bande de vieux ), etc. Les premières lignes de votre fichier sont un commentaire contenant des commandes à mettre dans l'init d'une unité si l'on veut désactiver certains comportements.
ADDITIONAL COMMANDS (group this) setVariable ["VCM_NOFLANK",true]; //This command will stop the AI squad from executing advanced movement maneuvers. (group this) setVariable ["VCM_NORESCUE",true]; //This command will stop the AI squad from responding to calls for backup. (group this) setVariable ["VCM_TOUGHSQUAD",true]; //This command will stop the AI squad from calling for backup. (group this) setVariable ["Vcm_Disable",true]; //This command will disable Vcom AI on a group entirely. (group this) setVariable ["VCM_DisableForm",true]; //This command will disable AI group from changing formations. (group this) setVariable ["VCM_Skilldisable",true]; //This command will disable an AI group from being impacted by Vcom AI skill changes.
(group this)
par this
, vous pouvez directement mettre la ligne dans l'init du groupe et je recommande cette pratique (Traduction pour les non anglophones :
Évidemment pour annuler à tout moment l'effet de ces commandes il suffit de changer true
en false
avec this setVariable[“<variable>”, false];
.
Passons maintenant aux paramètres généraux de Vcom. Il est à noter que ces paramètres sont modifiables à tout moment dans la mission.
Vcm_ActivateAI = true; //Set this to false to disable VcomAI. It can be set to true at any time to re-enable Vcom AI VcmAI_ActiveList = []; //Leave this alone. Vcm_ArtilleryArray = []; //Leave this alone //VCOM ARTILLERY. Only one kind of advanced artillery can be used at a time. VCM_ARTYENABLE = true; //Enable improved artillery handling from Vcom. VCM_ARTYLST = []; //List of all AI inside of artillery pieces, leave this alone. VCM_ARTYDELAY = 60; //Delay between squads requesting artillery VCM_MEDICALACTIVE = true; // AI will heal themselves, and medics will heal others in their squad. VCM_ARTYWT = -(VCM_ARTYDELAY); VCM_ARTYET = -(VCM_ARTYDELAY); VCM_ARTYRT = -(VCM_ARTYDELAY); VCM_ARTYSIDES = [west,east,resistance]; //Sides that will use VCOM artillery VCM_AIMagLimit = 5; //Number of mags remaining before AI looks for ammo. VCM_Debug = false; //Enable debug mode. VCM_MINECHANCE = 75; //Chance to lay a mine every 30 seconds or so VCM_MINEENABLED = true; //Enable AI placing mines VCM_SIDEENABLED = [west,east,resistance]; //Sides that will activate Vcom AI VCM_RAGDOLL = true; //Should AI have a chance to ragdoll when hit VCM_RAGDOLLCHC = 100; //CHANCE AI RAGDOLL VCM_FullSpeed = true; //Enforce full speedmode during combat (Does not reset after combat end) VCM_HEARINGDISTANCE = 800; //Distance AI hear unsuppressed gunshots. VCM_SUPDIST = 300; //Distance AI will hear suppressed gunshots. VCM_WARNDIST = 2000; //How far AI can request help from other groups. VCM_WARNDELAY = 30; //How long the AI have to survive before they can call in for support. This activates once the AI enter combat. VCM_STATICARMT = 300; //How long AI stay on static weapons when initially arming them. This is just for AI WITHOUT static bags. They will stay for this duration when NO ENEMIES ARE SEEN, or their group gets FAR away. VCM_StealVeh = false; //Will the AI steal vehicles. VCM_ClassSteal = true; //If true, crewmen are required to steal tracked vehicles. Pilots are required to steal aircraft. false = anyone can steal any vehicle. VCM_AIDISTANCEVEHPATH = 100; //Distance AI check from the squad leader to steal vehicles VCM_ADVANCEDMOVEMENT = true; //True means AI will actively generate waypoints if no other waypoints are generated for the AI group (2 or more). False disables this advanced movements. VCM_FRMCHANGE = true; //AI GROUPS WILL CHANGE FORMATIONS TO THEIR BEST GUESS. VCM_SKILLCHANGE = true; //AI Groups will have their skills changed by Vcom. VCM_USECBASETTINGS = false;//If CBA is enabled on the host, use the CBA default settings. If false, use the filepatching settings instead. VCM_CARGOCHNG = true; //If true, Vcom will handle disembarking/re-embarking orders instead of vanilla. This is with the intention to prevent the endless embark/disembark loops AI are given. VCM_TURRETUNLOAD = true;//If true = Prevents AI vehicle turret positions from leaving a vehicle just beecause it is slightly damaged. Example: leaving a tank when just the tracks are damaged. VCM_DISEMBARKRANGE = 500; //How far AI will disembark from their enemies. If the vehicle is damaged, they will disembark. VCM_AISNIPERS = true; //Special sniper AI VCM_AISUPPRESS = true; //AI will attack from further away with primary weapons to suppress enemies Vcm_DrivingActivated = true; //AI will use experimental driving improvements. Vcm_PlayerAISkills = true; //AI in a group, that a players leads, can have their skills changed separately. Vcm_GrenadeChance = 10; //Chance the AI will throw a grenade. Vcm_SmokeChance = 5; //Chance the AI will throw a smoke grenade. Vcm_AI_EM = true; //Will the AI use enhanced movement to navigate around. Vcm_AI_EM_CHN = 10; //Chance a group will attempt to jump over an obstacle - every 0.5 secs VCM_AI_EM_CLDWN = 10; //Time in seconds before a group will consider jumping over obstacles;
true
, false
pour le désactiver (De grande études ont été faite pour cette conclusion, je vous l'assure !).
true
, si vous ne le désactivez pas en mettant sa valeur en false
vos paramètres seront écrasés par la config CBA des IA du serveur ou une valeur par défaut arbitraire de Vcom. Aucun changement que vous ferez sur les autres paramètres ne seront pris en compte dans ce cas-ci.
Et c'est partie pour une nouvelle liste de paramètres :
west
, east
, independant
) si vous voulez un délai différent. La valeur doit être négative.Vcom permet également de modifier le skill des IA en utilisant les paramètres avancées du jeu vanilla. Dans arma la compétence d'une IA est calculée à partir de deux types de paramètres, les paramètres de config (ceux que vous régler dans vos options de jeu) et le paramètre d'éditeur (le slider disponible dans les attributs d'une IA). Mais derrière ce paramètre d'éditeur se cache une série de paramètres plus précis sur lesquels vous pouvez jouer. Vcom vous propose de joueur sur ses paramètres à différentes échelles, gardez à l'esprit que la config d'IA rentre toujours en jeu dans le calcul.
Ces paramètres sont les subskills, aimingAccuracy, aimingShake, etc. Pour pouvoir jouer sur ces skills vous avez à dispositions plusieurs variables :
Plusieurs de ses paramètres peuvent êtres activés en même temp. Seul VCM_SIDESPECIFICSKILL rend complètement caduque VCM_CLASSNAMESPECIFIC (Ce qui peut être changé en inversant deux clauses if dans la boucle VCM_AIDIFSET ).
La paramètre VCM_SKILL_CLASSNAMES mange des tableaux de type
/* EXAMPLE FOR VCM_SKILL_CLASSNAMES VCM_SKILL_CLASSNAMES = [ ["Classname1",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]], ["Classname2",[aimingaccuracy,aimingshake,spotdistance,spottime,courage,commanding,aimingspeed,general,endurance,reloadspeed]] ]; */ VCM_SKILL_CLASSNAMES = [ ["B_GEN_Soldier_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]], ["B_G_Soldier_AR_F",[0.01,0.02,0.03,0.04,0.05,0.06,0.07,0.08,0.09,0.1]] ];
Les autres variables mangent tous des tableaux de type
VCM_AIDIFA = [['aimingAccuracy',0.25],['aimingShake',0.15],['aimingSpeed',0.35],['commanding',0.85],['courage',0.5],['endurance',1],['general',1],['reloadSpeed',0.7],['spotDistance',0.90],['spotTime',0.75]];
Et c'est sur ces belles paroles que se finit ce tutoriel .