Version haut débit de: Armée de l'Ombre
Aide - Rechercher - Membres

Editer le Skill de l'IA

Old Bear (16 Mars 2015, 19:50)
Nous avons tous remarqué de d'une mise à jour sur l'autre, le skill de l'IA pouvait être assez différent.
Par ailleurs, selon les missions, il peut être intéressant d'avoir des unités avec des skills différents.
Mon idée en créant ce sujet, c'est de pouvoir échanger entre missions-makers, au sujet des moyens que nous avons à notre disposition.

Je vais donc ouvrir la discussion !
Pour ma part, j'utilise de façon la plus courante une méthode basée sur un déclencheur.
Je place dans l'activation du déclencheur les différents skill de l'IA que je veux éditer.

http://www.clan-ado.fr/images/upload/membres/246_1426527595_min.jpg


Pour mémoire les skills éditables d'aprês la page AI Sub-skills du WiKi de BIS :
* aimingAccuracy
* aimingShake
* aimingSpeed
* commanding
* courage
* endurance Disabled in Arma3
* general
* reloadSpeed
* spotDistance
* spotTime
Source : https://community.bistudio.com/wiki/AI_Sub-skills
GMC (16 Mars 2015, 20:01)
Dans le fichier init des mes missions , voici mes réglages:

[ado]_coop_17_Rogain_kill_v0.6.Stratis

setViewDistance 1500;
setTerrainGrid 40;
setObjectViewDistance 1200;

Citation (fichier init)

//skillia
{
_x setSkill ["aimingAccuracy", 0.5]; //0.5
_x setSkill ["aimingShake", 0.5]; //0.5
_x setSkill ["aimingSpeed", 0.5]; //0.5
_x setSkill ["spotDistance", 1]; //0.9
_x setSkill ["spottime", 1"]; //0.9
_x setSkill ["reloadSpeed", 0.8]; //0.5
_x setSkill ["commanding", 1];
_x setSkill ["general", 1]; //0.5
_x setSkill ["endurance", 1]; //0.8
_x setSkill ["courage", 1]; //1
} forEach allUnits;

Reapy (16 Mars 2015, 20:26)
Si je ne me trompe pas ces valeurs sont aussi modifiées par la difficulté sélectionnée sur le serveur.
Rewan (16 Mars 2015, 21:12)
Perso j'utilise généralement aussi un déclencheur parce que de temps en temps c'est bien d'avoir des groupes "bons" et des groupes "mauvais". :fsb2_oui:

à‡a par exemple c'est le nouveau réglage des OPFOR "élite" dans ma mission Aegan Hoplite (Parce qu'à 0.5 sur l'Accuracy et le Shake, je cite les ADOs : Ils visent trop bien. :fsb2_clown: )
{_x setskill ["aimingAccuracy",0.3]} foreach thislist;
{_x setskill ["aimingShake",0.3]} foreach thislist;
{_x setskill ["aimingSpeed",0.8]} foreach thislist;
{_x setskill ["spotDistance",1]} foreach thislist;
{_x setskill ["spotTime",1]} foreach thislist;
{_x setskill ["courage",1]} foreach thislist;
{_x setskill ["reloadSpeed",1]} foreach thislist;
{_x setskill ["commanding",1]} foreach thislist;


Par contre mes AAF "noobs" ont des valeurs d'aiming qui sont beaucoup moins hautes pour le coup... (et pour le coup on a des gunfights vachement long généralement)

{_x setskill ["aimingAccuracy",0.1]} foreach thislist;
{_x setskill ["aimingShake",0.1]} foreach thislist;
{_x setskill ["aimingSpeed",0.5]} foreach thislist;
{_x setskill ["spotDistance",1]} foreach thislist;
{_x setskill ["spotTime",1]} foreach thislist;
{_x setskill ["courage",1]} foreach thislist;
{_x setskill ["reloadSpeed",1]} foreach thislist;
{_x setskill ["commanding",1]} foreach thislist;
Reapy (17 Mars 2015, 20:54)
Quelle influence a le paramêtre ´general' sur les autres paramêtres ?
Rewan (17 Mars 2015, 21:08)
Si j'ai bien compris le paramêtre général s'applique aux autres skills à moins que ceux-ci aient une valeur.
Old Bear (17 Mars 2015, 21:49)
De maniêre générale, sur la base de nos constatations en jeu, je me demande si la rêgle communément admise jusqu'à présent, à savoir que les paramêtres fixés sur le serveur s'imposent aux clients est toujours valable.
Ce sont nos soucis du réglage "Visibilité" transformé par différentes missions qui me fait me poser la question.
Qu'en est-il de "... la difficulté sélectionnée sur le serveur ..." évoquée par Reapy ?
GMC (17 Mars 2015, 22:05)
Citation (config serveur)

class Difficulties
{
class recruit
{
class Flags
{
Armor=0;
FriendlyTag=0;
EnemyTag=0;
MineTag=0;
HUD=0;
HUDPerm=0;
HUDWp=0;
HUDWpPerm=0;
HUDGroupInfo=0;
AutoSpot=0;
Map=0;
WeaponCursor=0;
AutoGuideAT=0;
ClockIndicator=0;
3rdPersonView=0;
UltraAI=0;
CameraShake=0;
UnlimitedSaves=0;
DeathMessages=1;
NetStats=1;
VonID=0;
ExtendetInfoType=0;
};
skillFriendly=0.5;
skillEnemy=0.5;
precisionFriendly=0.30000001;
precisionEnemy=0.30000001;
};
class regular
{
class Flags
{
Armor=0;
FriendlyTag=0;
EnemyTag=0;
MineTag=0;
HUD=0;
HUDPerm=0;
HUDWp=0;
HUDWpPerm=0;
HUDGroupInfo=0;
AutoSpot=0;
Map=0;
WeaponCursor=0;
AutoGuideAT=0;
ClockIndicator=0;
3rdPersonView=0;
UltraAI=0;
CameraShake=0;
UnlimitedSaves=0;
DeathMessages=1;
NetStats=1;
VonID=0;
ExtendetInfoType=0;
};
skillFriendly=0.5;
skillEnemy=0.5;
precisionFriendly=0.30000001;
precisionEnemy=0.30000001;
};
class veteran
{
class Flags
{
Armor=0;
FriendlyTag=0;
EnemyTag=0;
MineTag=0;
HUD=0;
HUDPerm=0;
HUDWp=0;
HUDWpPerm=0;
HUDGroupInfo=0;
AutoSpot=0;
Map=0;
WeaponCursor=0;
AutoGuideAT=0;
ClockIndicator=0;
3rdPersonView=0;
UltraAI=0;
CameraShake=0;
UnlimitedSaves=0;
DeathMessages=1;
NetStats=1;
VonID=0;
ExtendetInfoType=0;
};
skillFriendly=0.5;
skillEnemy=0.5;
precisionFriendly=0.30000001;
precisionEnemy=0.30000001;
};
class mercenary
{
class Flags
{
Armor=0;
FriendlyTag=0;
EnemyTag=0;
MineTag=0;
HUD=0;
HUDPerm=0;
HUDWp=0;
HUDWpPerm=0;
HUDGroupInfo=0;
AutoSpot=0;
Map=0;
WeaponCursor=0;
AutoGuideAT=0;
ClockIndicator=0;
3rdPersonView=0;
UltraAI=0;
CameraShake=0;
UnlimitedSaves=0;
DeathMessages=1;
NetStats=1;
VonID=0;
ExtendetInfoType=0;
};
skillFriendly=0.5;
skillEnemy=0.5;
precisionFriendly=0.30000001;
precisionEnemy=0.30000001;
};
};
difficulty="mercenary";
difficultyMP="mercenary";
sceneComplexity=1000000;
shadowZDistance=100;
viewDistance=2000;
preferredObjectViewDistance=1200;
terrainGrid=25;
volumeCD=9;
volumeFX=9;
volumeSpeech=9;
volumeVoN=9;
vonRecThreshold=0.029999999;



Reapy (17 Mars 2015, 23:49)
Citation (config serveur)

skillFriendly=0.5;
skillEnemy=0.5;
precisionFriendly=0.30000001;
precisionEnemy=0.30000001;


Histoire de faire le ménage, les réglages de l'IA à partir du serveur sont la.


Par contre, je pige pas pourquoi tu a mis en gras les valeurs de scenecomplexity ? Si je me rappelle bien c'est le cycle de simulation ou un truc comme ça.
GMC (18 Mars 2015, 13:36)
C'est pour moi la question Reapy ? :fsb2_cry: pas compris...
Reapy (18 Mars 2015, 13:43)
Oui lol c'est pour toi la question. tu as mis en gras la valeur de scenecomplexity
Old Bear (18 Mars 2015, 19:34)
euh ... "en gras"... o๠ça ? :fsb2_non:
Reapy (18 Mars 2015, 20:22)
Moi je vois en gras mais ca vient ptet de ma tablette lol bref laisser tomber...
GMC (15 Avril 2015, 22:46)
//skillia Rogain_kill Vs0.8
{
_x setSkill ["aimingAccuracy", 0.7]; //0.5
_x setSkill ["aimingShake", 0.5];
_x setSkill ["aimingSpeed", 0.5]; //0.5
_x setSkill ["spotDistance", 1]; //0.9
_x setSkill ["spottime", 1"]; //0.9
_x setSkill ["reloadSpeed", 0.8]; //0.5
_x setSkill ["commanding", 1];
_x setSkill ["general", 1]; //0.5
_x setSkill ["endurance", 1]; //0.8 pas actif dans ARMA3
_x setSkill ["courage", 1]; //1
} forEach allUnits;
Old Bear (15 Avril 2015, 22:49)
Attention ! La "fatigue" n'est pas réglable ...

Citation
endurance : Disabled in Arma3

Source : https://community.bistudio.com/wiki/AI_Sub-skills
Old Bear (26 Avril 2015, 11:03)
J'aimerais bien comprendre comment ça fonctionne ...
Quand je relis ma trado perso de "Notes" dans AI Sub-skills ...

Chaque sous-compétence est utilisée dans plusieurs calculs. La valeur de chaque sous-compétence est héritée de la valeur fixée par le curseur «Compétence » dans le dialogue Insérer Unité ou la commande setSkill, ou encore défini directement par la commande setSkill dans un tableau.
Cette valeur est interpolée dans des plages définies dans CfgAISkill et multiplié par la valeur de Niveau IA ou Précision défini dans le profil (fichier .Arma3Profile) du joueur.


... je bute sur la notion d'interpolation que je retrouve utilisée dans le sujet CfgAISkill
et là ça devient vraiment confus!

http://www.clan-ado.fr/images/upload/membres/246_1430038989.jpg
Angel (07 Juillet 2015, 21:13)
Yop,

Je me replongerais bien dans l'éditeur (si j'ai le temps), d'o๠ma question:

J'ai plus ou moins compris les différents paramêtres, ... mais il faut passer par un script ? Si oui, il faut lancer le script via l'init ou via déclencheur ou init de chacune des unités ? :fsb2_goutte:
Old Bear (07 Juillet 2015, 23:20)
@ Angel : en fait si j'ai bien suivi le film, il y a plusieurs solutions, disons au moins 2 :

- Déclencheur : perso c'est la méthode que je préfêre utiliser. Un déclencheur couvre chaque zone dans laquelle les différents paramêtres sont définis.

- Script : GMC ou Reappy par exemple préfêrent utiliser des scripts.

J'aurais voulu faire des screens mais Arma3 ne se lance plus du tout chez moi ...
Edit : en fait j'ai "perdu" un disque dur hier soir et c'est un peu le souk dans le PC!
Angel (08 Juillet 2015, 18:33)
Ok, merci Old.

J'essaierai et si j'ai un soucis, je relancerai le sujet :fsb2_oui:
poran (09 Juillet 2015, 17:43)
1ere solution

dans un .sqf

if (isServer OR isDedicated) then
{
	{	
		if (side _x == east) then 
		{      
			_x setSkill ["general", 0.3];
			_x setSkill ["aimingAccuracy", 0.4];
			_x setSkill ["aimingSpeed", 0.5];
			_x setSkill ["aimingShake", 0.1];
			_x setSkill ["reloadSpeed", 1];
			_x setSkill ["spotTime", 1];
			_x setSkill ["spotDistance", 0.4];
			_x setSkill ["commanding", 1];
			_x setSkill ["endurance", 1];
			_x setSkill ["courage", 1];
		}
	} foreach allunits;
};


tu appelles le .sqf dans l'init .sqf

execVM "messcripts\monsuperskill.sqf";



2eme solution

sur l'éditeur

place un trigger de zone, avec pour cet exemple des opfor dans la zone

{_x setskill ["aimingAccuracy",0.4],["aimingShake",0.5],["aimingSpeed",0.3],["spotDistance",0.3],["spottime",0.3],["reloadSpeed",0.3],["commanding",0.3],["general",0.5],["courage",0.3]} forEach thislist;


tu rêgles sur présence Opfor pour que le trigger s'active, ...

tout les opfor dans la zone du trigger, auront le skill ci-dessus.
Old Bear (27 Janvier 2016, 8:52)
Pour ce qui concerne le réglage de l'IA dans les missions elle même, pas mal de changements sont à venir avec les commandes "AUTOCOMBAT" et "COVER" par exemple qui change vraiment le comportement de l'IA sur des waypoints ou bien l'aptitude des hélicos pilotés par des IA à se poser et à débarquer des troupes quand pris par des tirs adverses.
GMC (06 Février 2016, 0:35)
// ============================ skillian ===============================
//skillia
{
_x setSkill ["aimingAccuracy", 0.2]; 		
_x setSkill ["aimingShake", 0.2]; 		
_x setSkill ["commanding", 0.2;  	      
_x setSkill ["spotDistance", 0.2];  		
_x setSkill ["spottime", 0.2]; 			
_x setSkill ["courage", 1]; 			
_x setSkill ["aimingSpeed", 0.2]; 		
_x setSkill ["reloadSpeed", 0.2]; 		

} forEach allUnits;
Reapy (15 Mai 2016, 10:35)
Est ce que quelqu'un familiarisé avec les commandes de skill pourrait nous faire différentes config ?

- Armée réguliêre bien entraà®née, ex: OTAN, Russe et CSAT.
- Armée réguliêre moyennement entraà®née, ex: AAF, CDF, armée Takistanaise.
- Armée irréguliêre, ex: Résistance, milice Takistanaise etc...