Comment faire patrouiller des personnages.

Texte original : AI Waypoints
Auteur : AL
du site/from : .map for medal of honor
Traduction et adaptation : Tropheus

retour sommaire

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.

Retour au sommaire