Faire patrouiller un garde en lui
faisant faire une ou des pauses en chemin
Dans cette présentation, vous allez faire patrouiller un garde et lui faire
marquer une pause devant une statue (oui, même ces brutes sont capables d’un
peu de sensibilité).
Nous allons partir du principe que vous avez lu, compris et assimilé les leçons
de David dans son «introduction à Dromed», notamment celle qui vous permet
de faire patrouiller un garde (ou toute autre personne).
Première étape,
nous allons créer les éléments nécessaires à notre manip.
Créez un garde. Editors/Object Hierarchy,
sélectionnez Archetypes/Physical/Creature/Animal/Human/Guard/Swordsman/Sheriff
et placez le dans un coin de la pièce,
Créez une statue. Editors/Object Hierarchy,
sélectionnez Archetypes/Physical/Decorative/Statue/Statue1 et placez
la contre un mur quelque part dans votre pièce,
Créez plusieurs points de passage pour définir
votre ronde dont un prés du garde et un juste devant votre statue,
Notez les numéros correspondant à chacun de
ces éléments
Pour exemple, voici ce que j’ai
fait pour mes tests. (Les 5 points dans la pièce sont mes points de patrouille
« TrolPt »).
Deuxième étape , vous aller créer la ronde
en vous référant aux leçons de David dans son « Introduction à Dromed » et
notamment la leçon 7 « Animer le niveau ».
Normalement à ce stade, vous obtenez un garde qui patrouille et passe devant
une statue pendant sa ronde. Si vous allez dans le jeu, ce garde doit s’énerver
quand il vous voit et ça n’est pas très sympa pour nous l’observer. Nous allons
le calmer le temps de finir notre préparation.
Pour çà, il faut sélectionner notre garde et éditer ses propriétés. Puis cliquer
sur Add/MetaProperty/AI_Behaviors/AI_B_m2/M-Front Gate Guard. Ca nous
donne un garde qui ne nous embête pas tant qu’on ne va pas le chatouiller.
Troisième étape, nous allons régler les
caractéristiques de la pause du garde. Pour cette étape, il faut absolument
passer la configuration de votre PC en résolution 1024x768 pour voir les boites
de dialogue en entier.
Sélectionnez votre garde et cliquez sur le
bouton Links en bas de la fenêtre Dromed puis cliquez sur Add.
Une boite de dialogue s’ouvre,
Dans cette boite de dialogue, dans le menu
déroulant Flavor selectionnez AIWatchObj, dans le menu From
entrez le Numéro de votre garde et dans le menu To entrez le Numéro
de la statue puis cliquez OK,
Dans la fenêtre que vous obtenez, sélectionnez
la ligne que nous venons de créer et cliquez sur Data. Une longue
fenêtre s’ouvre, c’est ici que nous allons déterminer nos paramètres pour
la pause du garde.
• A la première ligne, sélectionnez Self
entry. Ceci signifie que l’action se déroulera quand le personnage pénétrera
dans la zone définie plus loin (cette zone correspond à un cylindre)
• La ligne Trigger Radius permet de définir le diamètre de la zone dans
laquelle l’action prend effet. Dans le cas de l’observation d’une statue, une
valeur de 7 me semble correcte (à vous d’ajustez en fonction du rendu)
• La ligne Height permet de définir le hauteur de la zone dans laquelle
l’action prend effet. Une valeur est nécessaire sinon le script ne se déroulera
pas mais une trop grande valeur peut occasionner des soucis en cas de pièce
à plusieurs étages. Une valeur de 10 me semble judicieuse
• Les lignes Required awareness et Line requirement déterminent
le niveau d’attention que le personnage doit apporter à l’objet (ou au personnage)
qui déclenche l’action ainsi que le mode de perception qu’il a de cet objet
(ou personnage). A utiliser surtout quand on a coché Player intrusion
à la première ligne. Pour notre part, nous les laisserons à None
• La ligne Exit : Link kill option permet de déterminer si l’action se
répète chaque fois que le personnage entre dans le périmètre de la statue ou
s’il faut détruire le lien que nous avons créé après qu’il se soit déroulé.
Pour une répétition pendant toute la ronde, sélectionnez Don’t kill
• La case Kill like links permet de supprimer tous les liens AIWatchObj
qui peuvent exister entre le personnage et l’objet en lien. Nous le laissons
décoché
• La case No test once triggered signifie que l’action continue de se
dérouler jusqu’au bout même si le personnage n’est plus dans la zone définie,
sauf s’il est interrompu par quelque chose de plus important comme un combat.
Nous le laisserons décoché
• La ligne Reuse delay détermine le temps que le personnage passera avant
de revérifier s’il est dans la zone définie (en millisecondes). S’il est encore
dans la zone, il relance l’action. Dans notre situation, il faut fixer un temps
qui permette à notre personnage de faire son observation et de quitter la zone
définie, sinon il se retournera de nouveau et recontemplera la statue. Un valeur
de 5 secondes sera suffisante, nous tapons donc 5000
• La ligne Reset delay d"termine le temps à attendre pour réinitialiser
le script si la zone est quittée. Si le personnage rentre à nouveau dans la
zone avant que ce délai ne soit expiré, l’action ne redémarre pas mais se termine
ou elle a été abandonnée. Nous la laisserons à 0
Quatrième étape, nous allons définir ce qu’est
la pause de notre garde Pour cela, nous restons dans la fenêtre précédente
(Data du lien du garde à la statue) Les actions à exécuter se définissent
dans les rubriques Response.
Sans toutes les décrire, nous pouvons estimer que nous allons d’abord nous
mettre face à la statue, puis observer une pause avant de reprendre notre
ronde :
Dans Response Step1 nous allons sélectionner
Face. Dans Argument 1 nous pouvons définir une angle par rapport
auquel nous voulons nous tourner (angle calculé d’après la droite garde/statue).
Dans Argument 2 nous pouvons spécifier l’objet à regarder. Dans notre
cas, ces 2 cases resteront vide pour que le garde regarde la statue en face,
Dans Response Step2 nous allons définir
l’attente en sélectionnant Wait. Dans Argument 1 nous allons
définir le temps en millisecondes soit 2000.
La boite de dialogue doit se présenter comme ceci :
Vous n’avez plus qu’à cliquer sur Ok ou taper la touche « Entrée » si le
bouton n’est pas visible et voir l’effet rendu. Si des interférences apparaissent,
il faut régler au niveau des paramètres de la zone définie (Trigger Radius,
Height) ou des temps alloués aux actions (Argument 1) ou au délai
(Reuse delay).
Bien entendu, si vous préférez que votre garde s’arrête sans regarder d’objet
spécifique, il suffira de remplacer la statue par un marqueur quelconque que
vous trouverez dans le menu Editors/Object Hierarchy/Archetypes/fnord/marker.
A noter également que le lien AIWatchObj permet d’induire toutes sortes
d’actions autres que faire une pause (éveiller la méfiance, ajouter une métaproperty,
agir sur un objet etc.)
Il vous faudra tester votre ronde sur plusieurs tours pour vérifier son bon
fonctionnement et apporter les réglages éventuels. Ensuite, pourquoi ne pas
mettre en place une patrouille aléatoire avec pauses comme décrit dans la
leçon de David ?
Il ne reste plus qu’à retirer le MetaProperty du garde pour le rendre
vigilant en éditant ses propriétés, en sélectionnant la ligne M-Front Gate
Guard et en cliquant sur Delete.