Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les tutoriels > Officiels > Modélisation 3D > Une map avec Hammer ! > Entités et effets spéciaux > Les déclencheurs (A : simples) > Lecture du tutoriel

Les déclencheurs (A : simples)

Avatar
Auteur : M@teo21
Visualisations : 58 763

Plus d'informations Plus d'informations
En voilà un thème qu'il est important !

A la fin de la lecture de ce thème, vous manierez à la perfection les déclenchements dans Half-Life et Counter-Strike. Vous saurez comment gérer les évènements, allumer une lumière grâce à un bouton etc..

Ce que vous allez apprendre va vous sembler un peu abstrait. Il va falloir que vous assimiliez pas mal de trucs sans savoir à quoi ça sert. Jouez le jeu : vous verrez après que vous n'aurez pas appris tout ça pour rien, bien au contraire ;)
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Appels d'entités

Nous allons tout d'abord étudier quelques généralités. En effet, on peut retrouver certains attributs dans la plupart des entités. La liste d'attributs que je vais vous donner est donc valable pour beaucoup d'entités que vous étudierez dans les autres thèmes.

Ce que vous allez apprendre est très important pour la suite, alors redoublez de concentration :)


Name



L'attribut "Name" est très courant. C'est le nom de l'entité. Par défaut, l'entité n'a pas de nom, ce qui ne pose pas de problème étant donné qu'on n'est pas obligé de lui en donner un.

Pourquoi lui donner un nom alors ?


La réponse est simple : pour l'appeler. Beaucoup d'entités ont la possibilité d'être appelées à distance pour déclencher une action à distance. Cette action varie en fonction de l'entité appelée.
Je prends un exemple que nous venons de voir : la lumière. Si on appelle une entité light, celle-ci s'éteint si elle était allumée, et vice-versa : elle s'allume si elle était éteinte.

Les possibilités sont très nombreuses : on peut casser un objet, déclencher une explosion etc... Vous saurez faire cela lorsque vous connaîtrez les entités appropriées, bien sûr ;)

Dernier détail : il n'est pas interdit de donner le même nom à plusieurs entités. Ces entités seront appelées en même temps, ce qui peut s'avérer pratique.


Global Entity Name



C'est la même chose que pour "Name", sauf que certaines entités ont la possibilité de fonctionner sur plusieurs niveaux (dans le cas d'une aventure solo qui se déroule sur plusieurs maps).

Il faut lui donner un nom global, qu'on pourra réutiliser dans une autre map. Par exemple, si une porte est bloquée dans la map A, et que pour l'ouvrir il faut appuyer sur un bouton dans la map B, on donnera un nom global à la porte. On pourra ainsi l'ouvrir à partir de la map B.

Target



Lorsqu'une entité est appelée, elle a la possibilité d'en appeler une autre. On peut ainsi créer une chaîne d'appels d'entités...

Bon, en clair cet attribut sert à appeler une entité. Vous devez simplement rentrer son nom (attribut "Name" de l'entité à appeler).

"Target" signifie "Cible" : c'est l'attribut le plus important de cette section puisque c'est lui qui commande l'appel d'entité.

Delay before trigger



C'est le temps en secondes que va patienter Half-Life avant d'appeler l'entité (avec "Target"). Par exemple, si vous voulez attendre 4 secondes avant d'éteindre la lumière, rentrez la valeur "4".

Le séparateur décimal est le point (.) : il remplace la virgule. Pour patienter 3 secondes et demi, il faut donc rentrer "3.5".


Kill target



Un peu spécial : cet attribut permet de détruire une entité. Il fonctionne comme "Target", mais il permet de retirer l'entité du jeu et non pas de l'appeler.

La disparition de l'entité est un peu brutale, alors évitez que l'entité disparaisse sous les yeux du joueur ou alors il risque de se croire victime de phénomènes paranormaux :p

Master



Là ça devient compliqué : vous devez indiquer dans le champ le nom d'un "multisource". Cela permet de verrouiller une entité tant que plusieurs autres entités n'ont pas été activées. On aura l'occasion d'en reparler :)

Au premier passage dans une zone

Entité concernée : trigger_once
Type d'entité : entité-bloc
Difficulté : assez facile

Pour appeler une entité, on doit se servir d'un évènement. Le passage du joueur dans une zone en est un. Par exemple, si le joueur rentre dans une salle la lumière s'allume automatiquement !
Pour utiliser cette entité, transformez un bloc en entité-bloc (avec la texture AAATRIGGER car il n'est pas visible quand on joue).

Le trigger_once permet d'appeler une entité la première fois que le joueur rentre dans une zone. La seconde fois, il ne se passera plus rien.

Par exemple, le joueur marche dans un couloir et traverse une sorte de porte. J'ai placé un trigger_once (invisible) au niveau de la porte et deux entités light éteintes (flag "Initially dark"). L'attribut "Target" du trigger_once pointe vers l'entité nommée "lumiere". Il y a deux entités light nommées "lumiere" : elles seront donc allumées en même temps.

Image utilisateur


Si le joueur repasse dans la zone du trigger_once, les lumières ne s'éteindront pas puisque le trigger_once ne fonctionne qu'une seule fois.

Pour ce qui est des attributs, vous les connaissez tous pour la plupart. Vous les avez vu plus haut. Il en reste toutefois 2 qui peuvent être intéressants :

Quant aux flags (eh oui il ne faut pas les oublier), les voici :

A chaque passage dans une zone

Entité concernée : trigger_multiple
Type d'entité : entité-bloc
Difficulté : assez facile

Si vous savez utiliser les trigger_once, alors vous n'aurez aucun problème avec les trigger_multiple.
C'est exactement la même chose sauf que l'action est répétée à chaque passage dans la zone.

Je ne vais pas par conséquent tout réexpliquer, tout a été dit plus haut.
Reste cependant un nouvel attribut :

Après plusieurs passages dans une zone

Entité concernée : trigger_counter
Type d'entité : entité-bloc
Difficulté : assez facile

C'est encore très simple. Ca fonctionne comme les autres trigger, mais il faut passer plusieurs fois dans la zone pour que l'entité soit appelée.

Au chargement de la map

Entité concernée : trigger_auto
Type d'entité : entité-point
Difficulté : moyen

Cette entité se déclenche au chargement de la map. Elle permet d'appeler des entités dès que le jeu commence. Cela peut s'avérer parfois très pratique !

Cette entité ne fonctionne que si vous mettez son attribut "Trigger State = On".

Voici tous les attributs de cette entité :

A noter aussi un Flag qui pourrait vous être parfois utile :

Les boutons simples

Entité concernée : button_target
Type d'entité : entité-bloc
Difficulté : plutôt facile

Les boutons sont le moyen le plus simple (et le plus courant) qu'on utilise pour appeler une entité. Le joueur doit appuyer sur la touche "Utiliser" pour appuyer sur le bouton.

Il existe plusieurs types de boutons. Nous étudierons ici le cas le plus simple : le button_target. Voici les étapes à suivre dans l'ordre pour créer un bouton :

  1. Choisissez pour commencer une texture de bouton. Je vous rappelle que celles-ci commencent en général par +A ou +0 (elles changent en fonction de l'état du bouton).
  2. Créez un bloc ayant la même taille que la texture. S'il n'est pas correctement aligné, désactivez le "Texture Lock" , déplacez le bloc jusqu'à l'alignement, puis réactivez le "Texture Lock".
  3. Transformez le bloc en entité-bloc de type button_target.
  4. Modifiez enfin ses attributs pour appeler l'entité que vous voulez. Seul "Target" devrait vous intéresser.

Cette entité possède d'autres attributs que vous ne connaissez pas (les FX). Je ne vous en parle pas pour le moment car ils n'ont pas d'intérêt avec les boutons. Ils servent à rendre l'entité transparente, ou partiellement transparente.


Passons aux flags de cette entité...


Bon, pour bien terminer voici un petit exemple avec un interrupteur de lumière :

Image utilisateur


Quand même, ne me dites pas que c'est dur le mapping ! :p

Les boutons translatifs

Entité concernée : func_button
Type d'entité : entité-bloc
Difficulté : moyen

Ces boutons sont plus utilisés car ils permettent l'accès à un plus grand nombre de paramétrages que les button_target.
On peut par exemple faire déplacer le bouton ou jouer un son lorsqu'on l'active.


Là, histoire de bien tout récapituler, je vais vous dresser la liste de tous ses attributs :


Reste à voir les flags (importants pour cette entité) :



Les boutons n'ont plus de secrets pour vous maintenant ;)

Les boutons rotatifs

Entité concernée : func_rot_button
Type d'entité : entité-bloc
Difficulté : assez difficile

Aïe aïe aïe ! Comme tout ce qui est rotatif, c'est assez dur à paramétrer quand on n'a pas l'habitude... Au début, on est assez dérouté par ce principe de rotation, alors qu'en fait ce n'est pas si dur que ça.

Si vous débutez en mapping, vous devriez laisser tomber les boutons rotatifs pour le moment. Vous vous ferez la main lorsque vous apprendrez à créer des portes rotatives.

Bon, pour ceux qui sont déterminés, suivez-moi :p

Image utilisateur


A quoi sert le bloc recouvert de la texture ORIGIN ?


Il définit l'axe de rotation de l'objet. Sans lui, Worldcraft ne sait pas comment faire tourner votre bouton.
Comment savoir quel est l'axe de rotation de votre objet ? C'est bien là l'éternelle question que tout le monde s'est posée. Où dois-je placer ce $%$##%$#%# de bloc ORIGIN ?

En fait, c'est très simple (une fois que l'on a compris, comme d'habitude ;). L'axe de rotation est la partie autour de laquelle votre objet tourne. Cette partie reste pratiquement immobile.
Un exemple avec une vanne :
Un bouton rotatif est une entité constituée de 2 blocs : le bouton en lui-même et un bloc recouvert de la texture ORIGIN :

Image utilisateur


Comme vous pouvez le voir, le bloc ORIGIN (en vert) est situé sur l'axe de rotation, la seule partie qui ne se déplace pas. Le reste (en rouge) est une association de blocs qui tourneront autour du bloc ORIGIN. Bien entendu, le bloc ORIGIN est invisible lorsqu'on joue.

L'association de ces deux éléments doit être convertie en func_rot_button. Sélectionnez le bloc ORIGIN et le reste de la vanne puis cliquez sur "To Entity". Choisissez enfin l'entité func_rot_button.

En ce qui concerne les attributs, on retrouve pas mals de choses qu'on connaît. Voici les nouveaux attributs qui peuvent vous intéresser :


Les flags, et puis après on arrête c'est promis ;)


Nous avons donc vu pratiquement tous les moyens que l'on avait pour appeler une entité... mais pas tous !

Mais pour l'instant, vous ne pouvez appliquer ce que vous avez appris qu'avec les entités "light". Lorsque vous découvrirez de nouvelles entités, vous verrez qu'il est possible de les appeler elles aussi : par exemple, si on appelle un funk_breakable, l'objet se casse à distance !

Rassurez-vous, je vous signalerai à chaque fois ce qui se passe lorsqu'on appelle l'entité.

Allez, on ne s'arrête pas en si bon chemin... On a encore du boulot :)
Chapitre précédent Sommaire Chapitre suivant
Retour en haut Retour en haut


Créé : le 06/07/2005 à 22:28:23
Modifié : le 13/09/2008 à 12:55:52
Avancement : 0%
Licence : Copie non autorisée

0 commentaire

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 88 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.0329s (0.0173s)