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 !

). Vous pouvez le télécharger
ici.
Installer un sprite perso :
Il suffit de copier les fichiers nomdusprite.vtf et nomdusprite.vmt dans [ROOT]:\Program Files\Steam\Steamapps\nom_du_compte\half-life 2\hl2\materials\sriptes\ ICI.
Note : ici, c'est pour HL2, si vous mappez pour CS:S par exemple, remplacez \Half-Life 2\hl2\ par \Counter-Strike Source\cstrike\.
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_spriteName : 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 ?!

)
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 2
nde 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é

, je vous avais déjà fourni le
sprite nécessaire dans le téléchargement précédent.
Se référer à la note plus haut pour savoir comment installer un sprite perso.
Placez le second
env_sprite juste à côté du premier et configurez-le comme suit :
Citation : Configuration du second env_spriteName : 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_genericName : 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.
Personnellement, j'utilise ambient/atmosphere/thunder1.wav.
Citation : Configuration des FLAGS de l'ambient_genericLaissez 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_timerName : 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_timerMy 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 :
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 4
e 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_rotatingName : eclair_rotation.
Citation : Configuration des FLAGS du func_rotatingLaissez par défaut + [x] Start ON.
Retournez dans les propriétés des deux
env_sprite et dans le champ
Parent, mettez «
eclair_rotation ».
Ça y est, votre éclair se déplace. Cependant, pour éviter de bêtes erreurs de placement, voici ce que vous devez comprendre. Le func_rotating tourne sur lui-même. Étant parentés à ce func_rotating, les env_sprite vont tourner autour, en conservant la distance les séparant du func_rotating. Ils vont donc former un cercle. Ce cercle ne doit en aucun cas passer à travers une maison par exemple, sinon vous vous retrouverez avec un orage dans votre grenier ! C'est logique, mais on n'y pense pas toujours.
Voici deux schémas du positionnement des différentes entités pour éviter tout problème :
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 2
nd schéma est bel et bien un arbre... (mon Dieu, j'ai honte !)
Sur ce, bravo cher Zéro ! Tu y es arrivé !