Mis à jour le mercredi 30 octobre 2013
  • Facile
Connectez-vous ou inscrivez-vous gratuitement pour bénéficier de toutes les fonctionnalités de ce cours !

Introduction du cours

Bonjour à tous !

Beaucoup de gens souhaitent ajouter des éclairs à leurs maps pour améliorer l'ambiance, mais ne savent pas comment s'y prendre.
Je vous propose un petit tutoriel vous expliquant et vous montrant comment faire.

Édition : j'avais oublié un « t » à lightning.vmt pour le sprite... Forcément, ça ne marchait pas.

Un éclair, du tonnerre...

Voici donc comment réaliser un éclair apparaissant à des endroits différents de votre map et à des intervalles aléatoires (c'est tout de même plus marrant qu'un éclair qui apparaît toutes les cinq secondes et au même endroit à chaque fois, n'est-ce pas ?! ^^ ).

I - L'éclair en lui-même

Pour l'éclair, nous allons tout simplement utiliser un env_sprite.
Bien, c'est ici qu'arrive la première mauvaise nouvelle... Il n'y a aucun sprite d'éclair dans Half-Life 2 ni dans ses mods...

Mais ? Mais ? Mais que faire ?!

Du calme ! Je vous donne ce sprite (gratuitement en plus... tsss, déjà que les tutoriels c'est bénévole... je suis trop gentil ! :p ). Vous pouvez le télécharger ici.

Placez donc un env_sprite dans le ciel à la hauteur où vous souhaitez que votre éclair figure, puis configurez-le comme moi.

Citation : Configuration du premier env_sprite

Name : eclair_sprite.
Sprite name : sprites/lightning.vmt (et on n'oublie pas le « .vmt » à la fin s'il vous plaît).

Voilà, vous avez fait 50 % de l'éclair en lui-même ! Il reste encore 50 %... (Nooooooon ?! o_O )

Vous aurez remarqué que dans la nature, quand il y a un éclair, il y a une « lueur » autour (la lumière sur les nuages sûrement ^^ ) et un flash. Eh bien allons-y !
Encore une fois, nous allons utiliser un env_sprite.
Eh eh, c'est là qu'on a le droit à la 2nde mauvaise nouvelle (c'est la dernière, promis !)... Encore une fois, pas de sprite pour ça ! Mais moi, dans mon extrême générosité :p , je vous avais déjà fourni le sprite nécessaire dans le téléchargement précédent.

Placez le second env_sprite juste à côté du premier et configurez-le comme suit :

Citation : Configuration du second env_sprite

Name : glow_sprite.
Sprite name : sprites/lightningglow.vmt (et s'il vous plaît, encore une fois on n'oublie pas le « .vmt » à la fin !).

Voilà, ça, c'est fait !

II - Le son

Un orage sans son, ce n'est plus un orage ! Alors voici la partie la plus simple : celle où l'on rajoute un son de tonnerre.
On utilisera pour cela un ambient_generic...
...
...
Bah ? Allez ! Je ne devrais pas avoir à vous le dire ! Placez un ambient_generic dans votre map, proche des deux env_sprite (c'est plus simple pour se repérer).

Allez, on me configure tout ça !

Citation : Configuration du ambient_generic

Name : tonnerre_son.
Sound Name : cliquez sur Browse, mettez Sound type: Raw, tapez « thunder » dans le champ Filter, et choisissez parmi la liste qui s'offre à vous.

Image utilisateur

Citation : Configuration des FLAGS de l'ambient_generic

Laissez tout par défaut + [x] play everywhere (permet de jouer le son partout dans la map).

Bon c'est bien, on avance vite. ^^

III - Le timing

Aaaaah, le « timing », un mot qui fait peur, mais qui ne devrait pas ! Bon d'accord, cette partie est la plus dure du tutoriel, mais tout est relatif (retenez ça au passage pour vos cours de physique / chimie : « tout est relatif » ! Hum bref, désolé, on passe).

On va utiliser un logic_timer, placez-en un où vous voulez dans votre map (encore une fois c'est plus simple pour se repérer si vous le placez près des env_sprite et du ambient_generic).

Configurons, mes amis, configurons !

Citation : Configuration du logic_timer

Name : eclair_timer.
Start disable : no.
Use random time : yes.
Min Random interval : 5.
Max Random interval : 60.

Allez, maintenant, on se dirige vers l'onglet Outputs de ce logic_timer. C'est ici que l'on va réellement configurer le timing. Cliquez sur Add pour ajouter un Output.

Citation : Configuration des Outputs du logic_timer

My output named : OnTimer.
Target entity name : eclair_sprite.
Via this Output : ShowSprite.

My output named : OnTimer.
Target entity name : glow_sprite.
Via this Output : ShowSprite.

My output named : OnTimer.
Target entity name : eclair_sprite.
Via this Output : HideSprite.
Delay : 0.50.

My output named : OnTimer.
Target entity name : glow_sprite.
Via this Output : HideSprite.
Delay : 0.50.

My output named : OnTimer.
Target entity name : tonnerre_son.
Via this Output : PlaySound.
Delay : 0.50.

Pfffiou ! Voilà ! Ça c'est fait !!! Non ? Pas vous ? Vous êtes perdus ? Bon, voilà une petite image pour vous repérer :

Image utilisateur

Bon, à ce stade, vous avez un éclair qui apparaît à des laps de temps aléatoires mais toujours au même endroit, ce qui est dommage tout de même ! C'est pour ça qu'il y a une 4e partie. Allez on attaque !

IV - Déplacement de l'éclair

Très simple, cette partie ! Une seule entité, deux petits réglages et on a fini ! Très bien, allons-y : créez un bloc avec la texture invisible ou nodraw et transformez-le en func_rotating.

Citation : Configuration du func_rotating

Name : eclair_rotation.

Citation : Configuration des FLAGS du func_rotating

Laissez par défaut + [x] Start ON.

Retournez dans les propriétés des deux env_sprite et dans le champ Parent, mettez « eclair_rotation ».

Voici deux schémas du positionnement des différentes entités pour éviter tout problème :

Image utilisateur
Image utilisateur

Non non, pas la peine de tourner la tête comme ça ! Mes schémas sont bien dans le bon sens, c'est juste que mes talents de graphiste sont aussi peu développés que mes talents de mappeur ! Eh oui, le petit truc étrange dans le 2nd schéma est bel et bien un arbre... (mon Dieu, j'ai honte !) :-°

Sur ce, bravo cher Zéro ! Tu y es arrivé !

Plus de réalisme...

I - Pluie ou neige

Un orage sec ? Ça existe, mais c'est très rare !

Comment ajouter de la pluie ou de la neige à mon orage ?

Créez un bloc avec la texture invisible sur toute la surface sur laquelle vous voulez qu'il pleuve ou qu'il neige.

Bon, reprenons. Vous avez créé un bloc en texture invisible. Transformez-le maintenant en func_precipitation. Rendez-vous dans les propriétés de ce bloc.

Citation : Configuration du func_precipitation

Density (0 - 100 %) : densité de pluie ou neige voulue entre 0 et 100 %.
Precipitation Type : Rain (pluie) ou Snow (neige).

Voilà, rien de plus, rien de moins !

II - Le vent

Et le vent ? Pourquoi pas ? Une violente bourrasque par-ci par-là !?

Eh bien à vous de jouer ! Oui, oui, vous avez bien lu ! Je ne vous dis rien (ou presque), c'est à vous de vous dépatouiller. ^^ Vous maîtrisez tous les éléments nécessaires, alors allez-y. Utilisez votre petite matière grise !

Quelques pistes (c'est bien parce ce que c'est Noël au moment où j'écris) :
Le but est de faire des rafales de vent à intervalles aléatoires (logic_timer mon amiii !) qui, à leur déclenchement, lancent un son de vent... Après, libre à vous d'améliorer tout ça en changeant la direction du vent et autre...

Bon courage !

Et voilà ! In-game, vous obtenez cela :

Image utilisateur

C'est pas beau, ça ? :p

Exemple de certificat de réussite
Exemple de certificat de réussite