arma_3:createurs_de_missions:tips_en_tout_genre:vcom

Vcom

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.
Ce mod touche au comportement de l'IA aux échelles intrateam et interteam. Attention toutefois si Vcom apporte une communication entre les groupes, il n'y pas d'entité simulant un commandement global comme l'on a avec GAIA. Chaque groupe prend ses propres décisions.

Installation

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 :

  • le dossier THE FOLDER IN THIS FOLDER GOES INTO YOUR ROOT ARMA 3 FOLDER (joli nom). À l'interieur se trouve un dossier userconfig et comme on est vilain ce dossier (userconfig) n'ira pas dans la racine d'arma mais dans votre mission.
  • le dossier Vcom (le saint Graal).
  • le fichier init.sqf.
  • le fichier description.ext.
  • le fichier mission.sqm. Celui-ci n'est pas utile.

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.

Réglages

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.

Pourquoi exactement ? Posez la question au créateur. Est-il important de modifier les deux ? Oui si sur votre serveur le filepatching est activé (C'est le cas chez grèce pour le headless client). De manière générale quelque soit la situation, modifiez un des deux fichiers et copiez coller tout son contenu dans l'autre (ctrl-A, ctrl-C puis coller avec ctrl-V).

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 :-P), 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.
En remplaçant (group this) par this, vous pouvez directement mettre la ligne dans l'init du groupe et je recommande cette pratique (pythonique :-X).

Traduction pour les non anglophones :

  • VCM_NOFLANK, le groupe d'IA n'effectuera pas de manœuvres avancées comme les contournements.
  • VCM_NORESCUE, le groupe ne répondra pas aux appels d'aide d'autres groupes.
  • VCM_TOUGHSQUAD, le groupe n'appelera pas d'autre groupe à l'aide.
  • Vcm_Disable, désactive Vcom pour le groupe.
  • VCM_DisableForm, désactive le changement de formation par Vcom.
  • VCM_Skilldisable, désactive la modification du skill d'IA par les paramètres que vous définissez dans le fichier par la suite.

É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;
Pour activer un paramètre, mettez sa valeur sur true, false pour le désactiver (De grande études ont été faite pour cette conclusion, je vous l'assure !).
Pour des raisons de compatibilité avec CBA, il existe le paramètre VCM_USECBASETTINGS, qui par défaut est réglé sur 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 :

  • Vcm_ActivateAI, active/désactive entièrement Vcom (la logique veut que vous le laissiez activé mais vous faites selon vos envies).
  • VcmAI_ActiveList, pas touche.
  • Vcm_ArtilleryArray, pas touche.
  • VCM_ARTYLST, pas touche.
  • VCM_ARTYDELAY, temps en secondes entre chaque demande de frappes d'artillerie si des pièces sont disponibles.
  • VCM_MEDICALACTIVE, Les AI se soignent elles-mêmes, les infirmiers soignent également les autres.
  • VCM_ARTYWT, VCM_ARTYET, VCM_ARTYRT, le délai d'artillerie pour chaque camp (west, east, independant) si vous voulez un délai différent. La valeur doit être négative.
  • VCM_ARTYSIDES, camp où les demandes de frappes sont autorisées. Attention, ça ne veut pas dire que l'artillerie ne va pas tirer de sa propre décision si vous enlevez un camp. Elle garde son comportement vanilla dans ce dernier cas.
  • VCM_AIMagLimit, nombre de chargeurs avant que l'IA cherche des munitions compatibles dans les véhicules et corps à côté.
  • VCM_Debug, active/désactive le débug (fichier rpt).
  • VCM_MINECHANCE, % de chance que l'IA plante une mine toutes les 30 secondes. Caduque si VCM_MINEENABLED est désactivé.
  • VCM_MINEENABLED, active/désactive la possibilité de placer une mine pour les IA.
  • VCM_SIDEENABLED, active/désactive Vcom pour un camp. Recommandation, laissez ce paramètre activé pour tous les camps, des effets peuvent être inattendus sinon.
  • VCM_RAGDOLL, active/désactive le ragdoll de l'IA quand elle subit un tir.
  • VCM_RAGDOLLCHC, % d'avoir un ragdoll.
  • VCM_FullSpeed, active/désactive le passage en vitesse max lorsque l'IA passe en mode combat.
  • VCM_HEARINGDISTANCE, distance à laquelle l'IA entend les tirs d'armes à feu. Cette distance est plus grande pour les explosions et les tirs de char.
  • VCM_SUPDIST, distances à laquelle l'IA entend les tirs d'armes à feu suppressés.
  • VCM_WARNDIST, distance maximale à laquelle un groupe peut transmette une demande d'aide à d'autres groupes.
  • VCM_WARNDELAY, temps minimal de combat engagé que l'IA doit attendre avant de transmettre une demande d'aide.
  • VCM_STATICARMT, temps minimal durant lequel une IA doit rester sur une arme fixe avant de la quitter car son groupe est loin et aucun ennemi n'est en vue.
  • VCM_StealVeh, autorise/interdit les IA à voler des véhicules.
  • VCM_ClassSteal, active/désactive le fait pour une IA de devoir être un pilote pour voler un hélicoptère ou un avion, un membre d'équipage pour un blindé (IFT et tank).
  • VCM_AIDISTANCEVEHPATH, distance par rapport au leader du groupe d'IA sur laquelle ils vont chercher à voler un véhicule.
  • VCM_ADVANCEDMOVEMENT, autorise/interdit Vcom de générer de waypoints pour effectuer des manœuvres avancées (si le groupe à moins de 2 waypoints).
  • VCM_FRMCHANGE, autorise/interdit les groupes à changer de formations.
  • VCM_SKILLCHANGE, active/désactive la modification du skill des IA par Vcom (sur des paramètres définis par vous).
  • VCM_USECBASETTINGS, voir note attention.
  • VCM_CARGOCHNG, autorise/interdit Vcom de s'occuper du débarquement de l'infanterie des véhicules pour éviter l'embarquement/débarquement permanent des IA d'un véhicule. (effet mitigé).
  • VCM_TURRETUNLOAD, autorise/interdit Vcom d'empêcher une IA en poste de tourelle de quitter son véhicule après des dégâts mineurs. Par exemple un BTR avec un roue en moins.
  • VCM_DISEMBARKRANGE, distance à laquelle les IA débarquent de l'ennemi (pour les troupes transportées). Si le véhicule est trop endommagé, elles débarqueront où qu'il soit.
  • VCM_AISNIPERS, autorise/interdit Vcom de modifier le comportement des snipers.
  • VCM_AISUPPRESS, autorise/interdit les IA d'engager à grandes distances pour suppresser l'ennemi.
  • Vcm_DrivingActivated, autorise/interdit la conduite expérimentale des IA par Vcom. À la date de ce tutoriel, cette fonctionnalité est encore en développement et influe très légèrement pour l'instant.
  • Vcm_PlayerAISkills, autorise/interdit un paramétrage différent des skills pour les IA dans un groupe contrôlé par un joueur.
  • Vcm_GrenadeChance, % de chance qu'une IA envoie une grenade en combat.
  • Vcm_SmokeChance, % de chance qu'une IA envoie une smoke en combat. Ce taux est drastiquement augmenté si l'IA subit un tir.
  • Vcm_AI_EM, active/désactive le FSM de Vcom pour une IA se déplaçant plus intelligemment.
  • Vcm_AI_EM_CHN, % de chance qu'un groupe traverse un obstacle comme une barrière ou un trou sous un mur toutes les 0.5 secondes.
  • VCM_AI_EM_CLDWN, % temp minimal avant qu'un groupe rencontrant un obstacle traversable décide de le passer.

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.

Utilisez les réglages d'IA du serveur pour avoir le même comportement sur votre machine locale.
Si vous avez désactivé le paramètre VCM_SKILLCHANGE, aucun des changements ne seront pris en compte. La commande de groupe VCM_Skilldisable désactive n'importe qu'elle de ces changements également pour le groupe d'IA concerné.

Ces paramètres sont les subskills, aimingAccuracy, aimingShake, etc. Pour pouvoir jouer sur ces skills vous avez à dispositions plusieurs variables :

  • VCM_AIDIFA, modifie toute les IA sous Vcom.
  • VCM_AIDIFWEST, VCM_AIDIFEAST, VCM_AIDIFRESISTANCE, modifie les IA d'un camp. Supplante VCM_AIDIFA et VCM_SKILL_CLASSNAMES. Actif si VCM_SIDESPECIFICSKILL est activé.
  • VCM_PSQUADW, VCM_PSQUADE, VCM_PSQUADR, modifie les IA dans un groupe dirigé par joueur par camp. Supplante toutes les autre variables. Actif si Vcm_PlayerAISkills est activé.
  • VCM_SKILL_CLASSNAMES, modifie les IA selon un classname donné. Supplante VCM_AIDIFA. Actif si VCM_CLASSNAMESPECIFIC est activé.

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 8-)).

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]];
Notez que les paramètres ne sont pas dans le même ordre pour les classnames et les autres paramètres.

Et c'est sur ces belles paroles que se finit ce tutoriel =).

Récupérez un classname

Méthode 1 : Passez votre souris sur l'unité voulue dans la liste d'unité. Méthode 2 : Clic droit sur l'unité.

  • arma_3/createurs_de_missions/tips_en_tout_genre/vcom.txt
  • Dernière modification : 2022/05/07 14:59
  • de admin