Former une escouade.
Tutorial AI Scripting
Basic Training: Squad Scripting Tutorial by Seeded[USAF]
Traduit et adapté par Tropheus.
1/ Les bases.
Ouvrir codradiant et se mettre en grille 8.
Faites une petite pièce texturée comme vous le voulez.
Créer un Info_Player_Start. (en vue 2D clic-droit/info/player_start)
Touche "N" pour ouvrir la fenêtre entité Puis donnez
les Keys et Values suivantes
:
targetname / chainme //
ou tout autre chose là c'est vous qui voyez!!!
2/ Créer l'escouade.
Dans la vue 2D, clic-droit/actor/l'allié que
vous voulez.
Ici j'ai choisi 3 coéquipiers : un portant un
Bar, un médecin et un
rifleman.
Pour chacun d'eux appuyer sur la touche "N" et entrez les Keys / Values suivantes.
target / chainme
Vous verez apparaître une flèche reliant chaque soldat à l'Info_Player_Start.
Pour personnaliser un peu plus vos soldats, vous pouvez leur donner le nom que
vous voulez. il vous suffit d'écrire dans la fenêtre entité.
script_friendname / Tropheus .
Vous verez ainsi apparaître le nom du soldat lorsque vous pointerez votre
arme dessus.
3/ Mise au point sur les Pathnodes.
Tout d'abord, il faut absolument
vous sortir de la tête
que les pathnodes vous
serviront à faire bouger votre escouade. Les Pathnodes sont
utilisés pour indiquer au jeu par où les entités peuvent
passer. Les autres Noeuds (cover_crouch par exemple)
sont les noeuds dont vous vous servirez pour donner forme à vos déplacements.
Ce sont eux qui indiqueront au jeu ce qu'il faut faire.
Par exemple vous avez une entité cover_crouch d'un
coté de la map et un cover_left de l'autre
côté. Entre les deux vous installez un champ de mine. Pour que
votre Bot aille de l'un à l'autre vous devez construire le chemin avec
des info_pathnode tout autour du champ. Et ceci
sans avoir besoin de "targeter" les Nodes les uns aux autres
car le jeu le fait de lui même.
Bon, maintenant que vous y êtes voici la suite.
Tout d'abord vous allez
créer un brush avec la texture "trigger_AI" dans
lequel vous allez inclure votre Info_Player_Start.
Ceci aura pour effet de lier tout de suite (dès le spwan) les Soldats
au joueur, mais si vous ne voulez pas que cela se fasse dès le spawn
vous pouvez déplacer ce trigger de façon à le mettre où vous
voulez.
Touche "N" et dans le menu sélectionnez "trigger_friendlychain",
ensuite vous pouvez fermer la fenêtre. Ceci liera les coéquipiers
au joueur. Vous aurez une équipe qui réagira ensemble.
Maintenant créons 3 nouvelles entités qui seront le but de déplacement
des AI et le comportement qu'ils devront avoir.
Dans la vue 2D, clic-droit/node/cover_crouch
par exemple.
targetname / auto31 //
ou tout ce que vous voulez.
target / auto32
pour la seconde
targetname / auto32
target / auto33
pour la troisième
targetname / auto33
Ici pas de target car se sera la fin de ce mouvement particulier.
Nous avons donc 3 entités (Node) et 3 AI. Chaque AI s'assignera d'elle même à un noeud et elles ne s'agglutineront pas toutes autour d'un seul Noeud.
Bien les noeuds sont connectés,
retournons sur le Trigger_AI.
Touche "N"
target / auto31
Cela provoquera lorsque activerez le trigger.
Vous créerez donc l'escouade mais en plus elle se dirigera vers le Noeud
auto31 en se repartissant entre les différents noeuds.
Bien si vous compilez et jouez, vous verrez que les sodats bougeront jusqu'à leur position.
4/ le mouvement suivant.
Bien comme vous êtes
arrivé jusqu'ici sans avoir de surcharge
intellectuelle vous devriez pouvoir comprendre la suite sans trop de problème.
Créons un second "Trigger_AI" proche
du dernier Noeud que nous avions créé. Vous sélectionnez "trigger_friendlychain" comme
précedemment.
Vous ajouterez 3 nouveaux noeuds avec la seule différence que les targetname
seront "auto41", "auto42" et "auto
43". Vous les lierez (avec un anneau ah non c'est pas le même
film pardon !!!) de la mêm façon qu'avant.
Sans oublier de targeter le trigger sur
le premier noeud "auto41" par exemple.
Si vous tentez de jouer maintenant, vous ne verez rien de plus qu'à l'étape précedante. On va y remédier.
5/ Les Pathnodes.
Comme on l'a dit plus haut,
les pathnodes sont
utilisés pour définir le chemin à prendre. C'est pourquoi
votre escouade ne dépasse pas les premier noeuds. Ils ne savent tout
simplement pas quoi faire.Vous devez donc définir leur chemin. Pour
cela, placez des Pathnodes tout au long du chemin.
(Un par carré de 8X8 semble-t'il). (Un pathnode aurait 128 unités de
rayon d'action)
Maintenant que vous l'avez fait vous verrez vos soldats se diriger vers les
seconds points lorsque vous passerez le second trigger.
6/ Un petit script pour la route.
Mais rien de bien extraordinaire juste de quoi équiper votre joueur.
main()
{
maps\_load::main();
level.player takeallweapons();
level.player giveWeapon("m1carbine");
level.player giveWeapon("thompson");
level.player giveWeapon("colt");
level.player giveWeapon("fraggrenade");
level.player switchToWeapon("thompson");
}
7/ Le fichier .bat.
C'est dans ce fichier que nous allons ajouter une commande supplémenatire. En effet afin que le jeu puisse connecter les nodes entre eux, vous allez ajouter ceci dans votre liste de commande.
| @echo off rem tuto de Tropheus coduosp +set g_connectpaths 1 +set fs_game tutorial +map tutorial |
et codsp si c'est une map pour COD.
8/ Les différentes animations liées aux nodes.
node_balcony : permet au soldat de tirer d'un lieu en hauteur. (un petit obstacle serait le bien venu)

node_concealment_prone : permet au soldat de tirer couché en étant caché.

node_concealment_crouch : permet au soldat de tirer accroupi derrière un obstacle.

node_concealment_stand : permet au soldat de tirer debout derrière un obstacle.

node_cover_crouch : permet au soldat de se cacher derrière un obstacle (un mur comme ici)

node_cover_left : permet au soldat de se tenir au coin d'un mur (pour se protéger) et de tirer en se tournant vers la droite. Il peut se tenir debout ou accroupi.

node_cover_right : comme le node précédent mais en inversant les directions. (debout ou accroupi).

NOTA : Pour les nodes suivants on ne voit ps ici de différence avec certains nodes déjà cités. Je pense que cela peut être dû au fait que sur ma map test il n'y avait pas d'ennemis.
node_cover_stand :

node_cover_wide_left et node_cover_wide_right :

Attention :
Pour certaines animations il a falloir que vous ajustiez les angles de direction
au niveau des nodes. Surtout pour cover_right / left
/crouch où vos soldats peuvent aussi bien être positionnés à l'envers par
rapport au mur.
Pour cela
selectionnez le node en question, appuyez sur la touche "N" et donnez-lui la
bonne orientation. Soit avec les boutons prédéfinis soit en entrant la key :
angles / value :
0 180
0. (le
180 peut changé aisément. les autres je ne sais pas.)
RESUME
Bien, nous avons ici les bases des mouvements d'une escouade. Bien sûr
on peut aller plus loin, mais tout d'abord je vous laisse vous initier avec
cette première partie.
En résumé, tout ce que vous avez à faire, c'est de dire à votre
escouade où aller, comment y aller et qu'elle comportement elle
doit adopter.
Variante:
Si jamais il vous arrivait de vouloir faire une campagne avec un seul coéquipier et que vous ne mettiez qu'un seul node, vous verriez apparaître cette erreur lors du chargement de la map.
| node auto31 is not a part of a friendly chain |
Pourquoi ? Tout simplement parce qu'avec un seul node on ne peut pas constituer
une chaine. Pour y remédier, il suffit de connecter à votre node un second
node juste à coté. L'avantage de ceci, c'est qu'en plus votre AI s'il bouge
ira forcément sur l'autre node et ne restera pas planter comme un légume.
Donc on a à chaque fois un trigger connecté à un node qu'il lui même est connecté
à un second node et ainsi de suite. Comme précédemment lorsqu'on avait plusieurs
coéquipiers.
Pour CaskAmiProd
et MohaaScriptLib
avec l'autorisation de l'auteur
Tropheus©
mars 2005