Aller au menu - Aller au contenu

Icône Monter et descendre

Mise à jour : 22/07/2009
1 414 visites depuis 7 jours, dont 20 sur ce chapitre classé 94/786
L'objectif de ce thème est de vous apprendre à créer des étages dans vos niveaux et à créer des échelles, escaliers, ascenseurs... pour s'y rendre.

Les mappeurs qui débutent ont tendance à oublier que Worldcraft permet de créer des maps en 3 dimensions. Qu'est-ce que je veux dire par là ? Qu'ils n'exploitent pas tout l'espace disponible pour la map. En effet, si on se contente de faire une map plate (sur un étage), elle sera peut-être grande mais pas très variée, alors qu'elle pourrait être déclinée sur plusieurs étages.

Complexifiez vos maps ! Créez des immeubles à 6 étages, des égouts, des souterrains etc etc... L'intérêt tactique n'en sera que meilleur :)

Bon, je ne vous explique pas comment créer un étage :-p Vous avez juste besoin de créer un second bloc, qui fera à la fois office de plafond pour le niveau 1, et de sol pour le niveau 2.
Pour ce chapitre, j'ai créé une salle à deux étages. Le joueur commence en bas, et a envie d'un petit rafraîchissement de l'étage du dessus.

Pour monter au second étage, on a plusieurs solutions. Nous allons commencer par l'escalier.
Sommaire du chapitre :
Icône du chapitre
Chapitre précédent Sommaire Chapitre suivant

Les escaliers

Entité concernée : aucune ;)
Type d'entité : aucun ;)
Difficulté : facile

Ca vous laisse perplexe ? Pourtant, c'est vrai : un escalier n'est pas une entité.

Bon nombre de débutants (moi notamment) se creusent la tête pour créer un escalier. Lorsqu'ils demandent à quelqu'un de plus expert comment faire, celui-ci leur répond souvent : "Ben, il suffit de créer un escalier !". Et c'est vrai en plus :p

Si je vous parle des escaliers dans un thème d'entité, c'est parce que je sais que c'est là que vous irez chercher en premier.
Bon trève de bavardages, on va créer ce %$#$%!# d'escalier :)

De quoi est constitué un escalier ?
Un escalier est en fait une succession de blocs de plus en plus grands. Chaque bloc correspond à une marche. Si les blocs sont proches les uns des autres et que la hauteur qui les sépare n'est pas trop importante, alors le joueur monte de l'un à l'autre naturellement, sans avoir à sauter.

Concrètement, vous devez créer des blocs et les superposer comme ceci :
Image utilisateur

C'est la vue de côté. On peut donc voir ici comment sont positionnés les blocs pour former l'escalier.

La vue 3D donnera le résultat suivant :
Image utilisateur

Notez que j'ai auparavant fait un petit carving dans le toit pour créer un "trou", afin que le joueur puisse passer :p

Lorsque le joueur arrivera à l'escalier, il "montera" naturellement, comme si de rien n'était.

Le joueur peut monter un escalier tant que les blocs (marches) ne sont pas espacées de plus de 8 unités de hauteur. Au-delà, c'est un obstacle le joueur ne montera pas.
Sur cet exemple, c'est déjà très raide. Essayez de faire des marches assez peu espacées pour être tranquilles.
Entraînez-vous à créer des escaliers vous aussi. Ca paraît un peu bizarre au début, mais c'est en fait très simple vous verrez ;)

Les échelles

Entité concernée : func_ladder et func_wall
Type d'entité : entité-bloc
Difficulté : facile

Seconde possibilité pour monter à l'étage : créer une échelle. Les échelles sont des éléments très courants dans les maps pour Counter et Half-Life. En effet, elles permettent de monter rapidement une hauteur importante, tout en occupant un minimum d'espace.
C'est donc pour cela que les mappeurs préfèrent en général les échelles aux escaliers (qu'il ne faut pas oublier toutefois).

De plus, la création des échelles est vraiment simple (comparé à ce qui nous attend plus bas pour les ascenseurs), à condition de bien suivre dans l'ordre la démarche que je vais vous donner.

Pour créer une échelle :



  1. Créer un premier bloc avec une texture d'échelle ("ladder").
  2. Appliquer à ce bloc l'entité func_wall, pour le rendre transparent. Les échelles contiennent du bleu dans leur texture, que l'on peut faire disparaître comme nous l'avons appris dans le chapitre précédent.
    Mettre les valeurs suivantes à ces attributs :

    Render Mode = Solid
    FX Amount (1 - 255) = 255


  3. Créer un second bloc ayant la même taille que l'échelle, mais cette fois avec la texture AAATRIGGER. Placez-le juste devant le premier bloc.
  4. Appliquez à ce nouveau bloc l'entité func_ladder. Vous n'avez pas besoin de renseigner son attribut ("Name") qui ne sert a rien. Laissez tel quel.
C'est tout ! L'échelle est prête !
Au cas où vous n'auriez pas bien compris, le site du Zér0 vous fait le dessin en bonus :)

Image utilisateur

Testez votre map et vous verrez que ça marche parfaitement !

Comment ça fonctionne ce charabia ???
Oui, ça doit vous paraître bizarre. Il est important que vous compreniez ce que je viens de vous montrer...

Pour créer une échelle, on se sert de 2 blocs :
  • func_wall est un simple bloc transparent. Il ne sert qu'à montrer la présence d'une échelle, mais il n'a pas la fonction d'une échelle. Si vous vous approchez d'un tel bloc, vous verrez que vous ne pourrez pas monter.
  • func_ladder a la fonction d'une échelle. C'est lui qui indique au moteur de Half-Life qu'il faut faire monter le joueur.
Le func_ladder est invisible (on lui applique la texture AAATRIGGER pour se rappeler dans Worldcraft que ce bloc est invisible). On l'associe toujours avec un bloc visible : si on ne le faisait pas, il y aurait une échelle invisible et le joueur monterait sans savoir pourquoi ;)

Elémentaire, non ? :p

Bon, si vous avez mal compris je vous conseille de relire et de prendre des forces avant d'attaquer la suite. Les escaliers et les échelles, c'était du pipeau par rapport à ce qui vous attend :soleil:

Les ascenseurs automatiques

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

Pour monter à l'étage, on peut aussi se servir des ascenseurs. Ils sont plutôt pratiques si vous voulez que plusieurs personnes montent en même temps (toute une team). Et puis, ça met de l'ambiance dans la map !

Le problème, c'est que faire un ascenseur c'est pas vraiment facile. Déjà, on a le choix entre 2 types d'ascenseurs :
  • Les ascenseurs automatiques : ils se mettent en marche dès que vous êtes dedans.
  • Les ascenseurs manuels : il faut appuyer sur un bouton pour les mettre en route (plus sympa mais un peu plus difficile).
On commence donc par les ascenseurs automatiques.

Dans un premier temps, vous devez créer l'architecture de votre ascenseur. Ca peut être un simple bloc, ou un ensemble de blocs (porte d'entrée, acoudoir etc...). Pour commencer, on va faire quelque chose de simple, avec un seul bloc, mais vous verrez qu'on peut obtenir un bien meilleur effet avec un ascenseur constitué de plusieurs blocs.

Pour créer un ascenseur, utilisez des textures du groupe ELEV par exemple, comme {ELEV_FLR.

Voici par exemple un ascenseur très simple. Notez que seul le bloc en bas sert d'ascenseur (entité func_plat), le reste n'est que du décor.

Image utilisateur


Après avoir sélectionné le bloc et cliqué sur "ToEntity", choisissez l'entité func_plat et renseignez ses attributs. Voici les attributs qui sont susceptibles de vous intéresser :
  • Render FX, Render Mode, FX Amount et FX Color : pour la transparence (voir le thème d'entité approprié). Ici par exemple, on en a besoin pour rendre le bleu de la texture transparent.
  • Move Sound : choisissez le son qui sera joué lorsque l'ascenseur sera mis en marche.
  • Stop Sound : son qui sera joué lors de l'arrêt de l'ascenseur. Choisissez un son du même groupe de préférence (tech, freight, squeek...).
  • Sound Volume : volume sonore. Mettez un valeur entre 0 et 1 (1 étant la valeur maximale).
  • Le séparateur décimal est le point (.). Au lieu d'écrire 0,85 vous devrez taper 0.85.
  • Travel altitude (can be negative) : très important, c'est la hauteur (en unités de Worldcraft) dont montera ou descendra votre ascenseur.
  • Si le bloc se trouve initialement en bas et que vous voulez qu'il monte, vous devez mettre un nombre négatif tel que -100.
  • Speed : vitesse de mouvement de l'ascenseur. Ne rentrez pas une valeur trop élevée ou vous risquez de faire bugger Half-Life...
Par ailleurs, cette entité possède 1 seul flag, "Toggle", qui permet d'éviter que l'ascenseur retourne automatiquement à son position de départ.

Testez votre map : lorsque vous vous approcherez de l'ascenseur, il se mettra en marche tout seul.

Les ascenseurs manuels

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

Pour créer un ascenseur manuel, vous avez besoin de 2 entités. Créez dans un premier temps le bouton qu'il faudra actionner pour mettre en marche l'ascenseur (func_button). Ensuite, créez votre ascenseur (généralement constitué de plusieurs blocs), sélectionnez ces blocs et transformez-les en entité func_door.

Dans le func_button, renseignez l'attribut Target, on inscrivant le nom de l'ascenseur. Par exemple :

Target = "mon_ascenseur"

Ensuite, vous devez renseignez les attributs de l'ascenseur (func_door). Voici les plus utiles :
  • Name : nom de l'ascenseur. Donnez le même nom que celui que vous avez écrit pour le bouton. Ici, on aurait :

    Name = "mon_ascenseur"
  • Speed : vitesse de déplacement de l'ascenseur.
  • Move Sound : son joué lors du déplacement.
  • Stop Sound : son joué à l'arrêt de l'ascenseur.
  • Delay before close, -1 stay open : temps en secondes avant que l'ascenseur ne revienne àa sa position de départ. Mettez -1 si vous voulez que l'ascenseur ne revienne pas tout seul à sa position de départ.
  • Lip : hauteur du déplacement. Mettez obligatoirement une valeur négative.
Il y a d'autres attributs, mais pour la plupart ils ne sont pas intéressants si on fait un ascenseur.

Ensuite, vous devez modifier l'angle de déplacement (en haut à droite de la fenêtre). Sélectionnez "Up" pour que l'ascenseur monte, et "Down" pour qu'il descende.

Enfin voici les flags à cocher (ou à ne pas cocher) :
  • Starts Open : l'ascenseur commence dans sa position finale. Ca permet de faire l'inverse, en quelque sorte. Ne le faites pas, ça va encore plus vous compliquer la vie ;)
  • Don't link : aucune idée :(. Si quelqu'un sait ce que c'est...
  • Passable : on peut passer à travers l'ascenseur. Il n'est pas matériel. Ca n'a aucun intérêt pour l'ascenseur.
  • Toggle : coché, ce flag permet de faire en sorte que l'ascenseur monte s'il est en bas, et qu'il descende s'il est en haut. Utile si vous avez mis la valeur -1 à "Delay before close".
  • Use only : cochez ce flag ! Ainsi, l'ascenseur ne démarrera que si on a appuyé sur le bouton (c'est ce qu'on voulait faire non ?).
  • Monster Can't : les monstres ne peuvent pas se servir de l'ascenseur (dans le cas d'une aventure solo bien entendu).
  • Not in deathmatch : l'ascenseur n'apparaîtra pas dans une partie multijoueur. On coche très rarement ce flag...

Les ascenseurs rotatifs

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

Ce type d'ascenseur fait monter le joueur tout en effectuant une rotation. C'est un peu tordu et assez difficile à réaliser, de plus on n'en voit pas beaucoup dans la campagne de Half-Life...

Si vous tenez à en mettre un dans votre map, alors créez l'ascenseur puis ajoutez un bloc ORIGIN au niveau de l'axe de rotation de l'ascenseur (généralement au centre).
Sélectionnez l'ascenseur et le bloc ORIGIN , et convertissez-les en entité func_platrot.

Vous connaissez maintenant la plupart des attributs d'un ascenseur, cependant il y en a quelques nouveaux :
  • Speed of rotation : c'est la vitesse à laquelle l'ascenseur tourne sur lui-même tout en montant (je vous raconte pas les calculs que doit faire le moteur de Half-Life pour concilier tout ça ;)
  • Spin amount : distance de rotation en degrés (ex : 180).
Les flags vous permettront notamment de changer le plan de la rotation (qui est par défaut de Z, mais vous pouvez mettre X ou Y).
Voilà, à partir de maintenant vous allez pouvoir créer des étages dans vos niveaux, des escaliers, des ascenseurs, des échelles... Votre niveau sera bien meilleur, je vous l'assure :)
Chapitre précédent Sommaire Chapitre suivant

Partager

Il n'y a pas encore de commentaire pour ce tuto.