Comment faire patrouiller des personnages.
Texte original : AI
Waypoints
Auteur : AL
du site/from : .map
for medal of honor
Traduction et adaptation : Tropheus
N'oubliez pas d'enregistrer votre map sous "test_mamap".
I / Patrouille sans script.
Dans un premier temps, nous allons
faire patrouiller des personnages (allié ou ennemis) sans
script. L'intérêt de la chose réside dans
le fait que ça va plus vite et c'est moins fastidieux que
de scripter. Mais il y a ici un inconvénient, c'est que
l'on ne peut pas faire stopper le personnage au cours de sa marche.
C'est donc comme s'il faisait une ronde sans arrêt.
Allez c'est parti.
1/ Mapping.
a) Le personnage
Ouvrez Moharadiant et créez un espace de jeu avec tout le
nécessaire (info_player_start,
worlspawn, textures, et tout et tout).
Dans cet espace, et dans la vue 2D, disposez une entité
clic droit "ai/german/afrikacorps/grenadier". (De la même manière, il
est possible de choisir un allié).
Gardez le personnage sélectionné et appuyez sur la touche "I". vous voyez apparaître la fenêtre suivante.
Dans cette fenêtre choisissez les données
suivantes :
type_idle
=> patrol
targetname => ce que vous
voulez //le
nom n'est pas essentiel
target => p1//le nom de votre premier point de passage
patrolpath => p1
Cliquez maintenant sur "appliquer"
et appuyez sur la touche "I" pour faire disparaître
la fenêtre et sur "echap" pour déselectionner
le personnage.
Voici pour le personnage, passons
maintenant au parcours.
b) Le parcours.
Nous allons prendre l'exemple
d'une ronde de 3 points.
Pour cela il faut, que
vous balisiez le chemin de votre entité par des "info_waypoint".
Donc, toujours dans la vue 2D cilc droit "info/waypoint"
comme sur l'image.
Vous verrez apparaître sur la vue 2D un
carré vert et
sur la vue 3D un cube vert.
Gardez votre "info_waypoint" sélectionné et appuyez sur
la touche "N". Dans la fenêtre qui s'ouvre, donnez
les caractéristiques suivantes :
key / value
targetname / p1
target / p2 //pointe le second
point de passage
Validez
ces données et fermez la fenêtre (touche "N")
puis déselectionnez votre "info_waypoint".
Normalement, ont dû
apparaître dans les vues 2D et 3D une flèche orange
reliant le personnage au premier point de passage.
Pour les 2 "info_waypoint" suivants, procédez de la même
façon.
Info_waypoint
2
targetname / p2
target / p3
Il
doit apparaître à ce niveau une flèche verte
reliant le point 1 et le point 2 (la flèche indiquant le
sens du déplacement).
Info_waypoint
3
targetname / p3
target / p1
Le
fait de pointer vers "p1" permet au personnage de marcher
en boucle. Si p3 n'avait pas de "target", le personnage
s'arrêterait de marcher arrivé à ce point.
Sur les deux vues 2D et 3D est apparu un chemin constituer
de flèches vertes. comme ceci.
Voici votre chemin de patrouille terminé, il
ne vous reste plus qu'à enregistrer la map et à la compiler.
Attention, si votre personnage rencontre un obstacle, un mur par exemple, il ne le contournera pas, mais il passera au travers. Il en est de même, pour le terrain. Votre parcours doit épouser les formes du terrain. Sinon votre personnage risque de s'enfoncer dans le sol si le point suivant se tourne de l'autre côté de la colline.
Télécharger les fichiers map bsp et pk3 zippés
II/ Patrouille avec script.
Grâce
à cette technique, on aura plus de possibilités
pour notre personnage comme des arrêts, des courses...
Allez on y va !
1/ Le Mapping.
a) Les personnages.
La sélection du personnage se fera de la même
façon qu'au dessus, mais dans la fenêtre (touche
"i") il y a des choses à changer.
type_idle / patrol
targetname / soldat (nom du personnage
important ici)
b) Les points de passages.
Nous ferons ici une patrouille avec seulement 2 points.
Cette fois-ci, ils seront matérialisés par des "info_pathnode"
placés au plafond..
Donc, dans la vue 2D, clic droit/info/pathnode.
Il apparaît sur la vue
2D un carré rose et
sur la vue 3D un cube rose.
Cette
fois-ci, il n'y a pas de flèche.
Tant que
votre "info_pathnode" est sélectionné appuyé
sur la touche "N" et donnez la caractéristiques
suivantes :
$targetname / p1
Faites la même chose avec
le second "info_pathnode".
$targetname / p2
Voici la partie mapping terminée. Passons au script.
2/ scripting
Le script va permettre de définir
les mouvements de votre personnage entre chaque point et à
chaque point.
//script patrouille
exec global/ai.scr
exec global/loadout.scr maps/test_script3bis.scr
main:
level waittill prespawn
exec global/ambient.scr test_script3bis
level waittill spawn
$player item weapons/silencedpistol.tik
$player ammo pistol 1000
level.script = level.test_script3bis.scr
thread soldatmove//renvoie ici à
la partie scriptée du mouvement. Si on veut "targeter" ce mouvement,
il faut utiliser un "trigger" cf. tuto
script2. et surtout ne pas mettre cette
ligne.
end
/////////////////////////////////////////
soldatmove:
$soldat walkto $p1// marche vers
p1
wait 5//temps
d'arrêt
$soldat walkto $p2//marche
vers p2
wait 5//temps
d'arrêt
goto soldatmove//permet
de faire une boucle.
end
Attention si une action doit suivre le déplacement, il
faut remplacer "wait
5"
par "$soldat waittill movedone",
sinon l'action prend le dessus et le déplacement ne se fait pas.
Pour
faire courir votre personnage il suffit de remplacer "walkto" par "runto".
Pour le faire avancer accroupi c'est "crouchto"
Bon, je vous le remets au clair.
//script patrouille
exec global/ai.scr
exec global/loadout.scr maps/test_script3bis.scr
main:
level waittill prespawn
exec global/ambient.scr test_script3bis
level waittill spawn
$player item weapons/silencedpistol.tik
$player ammo pistol 1000
level.script = level.test_script3bis.scr
thread soldatmove
end
/////////////////////////////////////////
soldatmove:
$soldat walkto $p1
wait 5
$soldat walkto $p2
wait 5
goto soldatmove
end
Et voici vos patrouilleurs partis pour leur ronde ! Mais, Attention s'il y a un obstacle sur le passage du patrouilleur (mur par exemple) la patrouille ne peut pas fonctionner. Il faut donc ici aussi contourner les obstacles. Cependant, si vous avez un terrain accidenté, pas de problème votre AI suivra les courbes du terrain.
Télécharger le pk3 avec le .map
Ce tutorial a été créé à partir de celui de AL "AI Waypoints" du site ".map for medal of honor".
Tropheus.