Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Non-Officiels > Mapping > [HL2] Général > Une map avec Hammer 4 > Entités et effets spéciaux > Les déclencheurs [1] > Lecture du tutoriel

Les déclencheurs [1]

Vous vous apprêtez à lire un tutoriel rédigé par un membre de ce site. Malgré tout le soin que ce membre a pu apporter au tutoriel, nous ne pouvons pas garantir que les informations contenues sur cette page sont exactes à 100%. Merci de garder cela en tête lorsque vous lirez cette page ;o)
Avatar
Auteur : Thunderseb
Note : 20 / 20 (2 votes)
Visualisations : 10 969

Plus d'informations Plus d'informations
Nous allons maintenant voir comment déclencher des actions. Nous allons, pour cela, un peu voir comment se servir des <gras>outputs</gras>. Si vous n’aviez pas bien compris ce que c’était, vous allez comprendre :) .
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Le trigger_once

Entité étudiée
EntitésTypeDescription
trigger_once Bloc Déclenche un output, une seule fois, au passage du joueur


Dans ce premier exemple, le joueur passera dans une zone, et la lumière s'allumera. La zone dans laquelle le joueur passera sera ce que l'on appelle, en mapping, un trigger. Trigger veut dire déclencheur en anglais.

Un trigger_once est une zone de déclenchement. Elle a comme particularité de ne pouvoir appeler qu'une seule fois une ou plusieurs entités.

Dans mon exemple, j'ai placé le trigger_once entre les 2 grilles, et le light_spot se trouve au dessus des barils explosifs. Le light_spot a son flag Initialy Dark coché. La lumière sera donc éteinte au démarrage de la map.

Image utilisateur


Pour créer un trigger, c'est très simple. Il vous suffit de créer un bloc normal, avec la texture toolstrigger. Ensuite, sélectionnez le bloc, et cliquez sur le bouton ToEntity, et choisissez trigger_once, comme je vous l'avais déjà expliqué.


La première fois que le joueur passera dans le trigger_once, le spot s'allumera. Si le joueur repasse par après, il ne se passera rien.

Donnez un nom à votre light_spot. Je l'ai appelé super_lampe (la propriété Name). Maintenant, nous allons créer votre premier output :) .

Allez dans l'onglet Outputs, des paramètres du trigger_once. Cliquez sur Add, et rentrez ces valeurs :

Output namedTargets entitiesVia this inputParameterDelay
OnStartTouch super_lampe TurnOn <none> 0.00


Ca veut dire : quand le joueur touchera le trigger_once (OnStartTouch), il appellera l'entité nommée super_lampe en lui disant de s'allumer (TurnOn).

Image utilisateur


Si on avait voulu éteindre super_lampe, il aurait fallu mettre TurnOff (et ne pas cocher son flag Initialy Dark ^^ ).


Ah oui, en parlant de flags, les triggers ont ceux-ci :


Le trigger_multiple

Entité étudiée
EntitésTypeDescription
trigger_multiple Bloc Déclenche un output au passage du joueur


Le trigger_multiple s'utilise comme un trigger_once. La seule différence est que le trigger_multiple peut être déclenché plusieurs fois.

Mais attention, dans ce cas, nous n'allons plus utiliser TurnOn pour le Via this input. En effet, si la lumière vient d'être allumée et que le joueur repasse dans le trigger, la lumière ne s'éteindra pas (normal, puisqu'on va demander à super_lampe de s'allumer).

Mais alors, comment faire ?


Il suffit de mettre Toggle à la place de TurnOn. Ca veut dire qui si la lumière était allumée, elle s'éteint, et si elle était éteinte, elle s'allume.

Le trigger_multiple possède une propriété utile : Delay before reset. C'est le temps, en secondes, avant que l'on puisse réutiliser le trigger_multiple. Par exemple, si on met "4", et qu'on traverse le trigger une première fois, il ne se passera rien pendant 4 secondes si on retraverse la zone.

Le logic_auto

Entité étudiée
EntitésTypeDescription
logic_auto Point Déclenche un output au chargement de la map


Vous vous attendiez à voir encore un trigger_machin ? Eh ben non, ici, c?est d?un logic_auto dont on va parler. Mais on ne va pas en parler beaucoup.

Logic_auto est une entité qui se déclenche au chargement de la map. Grâce à celle-ci, nous allons pouvoir appeler, toujours via des outputs, des entités lors du chargement de la map.

Je n?ai pas d?exemple à vous montrer (il n?y en a aucun qui me vient à l?esprit en fait ^^ ) sur l?utilisation de ceci. Ah si, je peux vous dire que ça sert à initialiser certaines entités comme les monstres (les NPC), qui par défaut ne sont pas actifs dans une map.

Le compteur

Entité étudiée
EntitésTypeDescription
math_counter Point Compte le nombre de fois que quelque chose est exécuté


Est-ce possible de déclencher quelque chose après par exemple 2 passages dans une zone ?


Ben, oui, c'est possible. Pour cela, nous allons utiliser un trigger_multiple et un math_counter. Cette dernière entité permettra de compter le nombre de passages.

Commencez par faire votre trigger_multiple. Ensuite, créez un math_counter et réglez-lui ses propriétés comme ceci :

Citation : math_counter
Name : compteur
Initial Value : 0
Minimim Legal Value : 0
Maximum Legal Value : 2


Je pense que les 4 propriétés se passent de commentaire. Comme vous le voyez, le math_counter peut déclencher à 2 moments : quand une valeur minimale est atteinte, et quand une valeur maximale est atteinte. Dans mon cas, je n'ai besoin que d'une des deux, j'ai choisi de passer par la valeur maximale.

Maintenant, un petit output :

Output namedTargets entitiesVia this inputParameterDelay
OnHitMax escalier_sadique Toggle <none> 0.00


Voilà. Donc, quand le math_counter arrivera à sa valeur maximale (OnHitMax), il appellera super_lampe en lui disant de s'allumer (Toggle). Si vous aviez choisi de passer par la valeur minimale, vous auriez utilisé OnHitMin comme output.

Comme output de votre trigger_multipe, mettez :

Output namedTargets entitiesVia this inputParameterDelay
OnTrigger compteur Add 1 0.00


Donc, quand on touche le trigger (OnTrigger (j'aurais pu mettre OnStartTouch, mais si je mets OnTrigger, il faut que le joueur soit bien dedans pour déclencher, c'est mieux)), il appellera compteur en lui disant d'ajouter (Add) 1 à sa valeur.

Mais après, le compteur est inutilisable ? Si je repasse encore 2 fois dans le trigger_multiple, ça ne fera plus rien ?


Effectivement. En fait, il faut remettre la valeur initiale du compteur à 0, après 5 passages. Pour cela, le math_counter va s'auto-appeler (on va lui faire un output à lui-même).

Prenez votre math_counter, et créez cet output :

Output namedTargets entitiesVia this inputParameterDelay
OnHitMax compteur SetValue 0 0.00


Ce qui veut dire : "Quand il arrivera à sa valeur maximale, il appellera compteur (c'est à dire lui-même) en lui disant de redéfinir sa valeur initiale (SetValue) en la mettant à zéro (With a parameter override of)".

Voilà, je pense qu’avec ce premier mini-tuto portant sur les déclencheurs et les outputs vous avez compris ce que c’est. Vous avez aussi compris ce que sont les inputs. Ce sont donc les méthodes qui permettent d’agir sur l’entité cible (Allumer la lampe, compter…).
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 28/10/2006 à 10:08:34
Modifié : le 05/11/2008 à 17:12:14
Avancement : 100%
Licence : Copie non autorisée

4 commentaires

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 421 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0655s (0.0487s)