Créer des Effets naturels

Écrit le 24/12/2004 par Bl@de
Dernière mise à jour : 30/01/2006

Introduction

Bonjour à tous, dans ce tutorial je vais vous parler des différents effets naturels qu'on peut utiliser dans HL². Servant essentiellement à ajouter de l'ambiance et du réalisme à vos maps !

Les tremblements de terre

Commencez par créer une petite map d'extérieur :

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement00.jpg

Ensuite placez une entité env_shake: c'est l'entité qui va vous permettre de faire un tremblement de terre, par la suite il faudra la déclencher à l'aide d'un trigger.

Les propriétés de l'env_shake :

Name : le nom de l'entité ;
Amplitude : la force du tremblement (de 0 à 16) ;
Effect Radius : le nombre de mètres alentour où le tremblement est ressenti ;
Duration : le nombre de secondes que dure le tremblement ;
Frequency : 0.1 = petites secousses, 255.0 = gros tremblement ;

Pour mon exemple, j'ai mis comme nom « tremble1 », une amplitude de 8, un radius d'origine, une duration de 10 et une frequency de 120.

Les Flags de l'env_shake :

GlobalShake : le tremblement est ressenti dans tout le niveau ;
In Air : le tremblement est ressenti même si on ne touche pas le sol ;
Physics : le tremblement fait bouger les éléments physiques (prop_physics) ;
Rope : le tremblement fait bouger les câbles.

Pour ma part j'ai tout coché :p

Le trigger_once :

Le trigger_once est un bloc entité qui déclenche un événement une seule fois quand on passe au travers ; créez donc un bloc avec la texture toolstrigger, la texture ni changera rien, mais elle vous permettra de distinguer un bloc entité trigger d'un brush normal, comme ci-dessous :

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement01.jpg

Sélectionnez ce bloc puis faites ToEntity et sélectionnez trigger_once: il n'y a pas grand-chose à régler dans les propriétés, allez plutôt dans Outputs et cliquez sur add.
Dans My output named, sélectionnez OnStartTouch, ce qui signifie que quand vous traverserez le bloc, l'entité sera déclenchée.
Dans Targets entites named sélectionnez le nom de votre env_shake, pour notre cas, « tremble1 ».
Et dans Via this input sélectionnez StartShake.

After a delay in seconds of sert à déclencher l'entité durant un nombre de seconde défini après avoir traversé le trigger_once.

Voilà le tour est joué, il ne vous reste plus qu'à compiler votre map et la tester.

Vous pouvez télécharger la map d'exemple ici : shake.vmf

Light_environment

Le Light_environment va nous permettre de simuler l'éclairage du soleil; placez donc cette entité où vous voulez dans votre map (à l'extérieur ça sera mieux), dans Hammer, c'est votre soleil. Il vous faudra régler la direction de la lumière, sa couleur, et éventuellement son ambient.

Pitch Yaw Roll (Y Z X) : La direction de la lumière du soleil. Ce réglage peut être automatiquement effectué avec le bouton Point At, très pratique. De préférence, pointez-le quelque part sur le sol ;
Pitch : Réglez automatiquement avec le Point At du Pitch Yaw Roll ;
Brightness : La couleur de la lumière du soleil ;
Ambient : La couleur ambiante, pas très pratique pour cette entité.

Voilà ce que ça donne avec une couleur un peu orangée façon coucher de soleil :

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement02.jpg

Astuce : Pour faire une map dans la nuit, mettez une couleur de Light_environment bleue foncée.

Le soleil

L'env_sun sert à afficher un soleil dans votre skybox, encore un petit truc pour ajouter du réalisme à vos maps d'extérieur.
Cette entité peut être placée n'importe où dans votre map; ce sont les réglages qui définissent l'endroit où il apparaîtra.
Choisissez de préférence un skybox sans soleil.

Pitch Yaw Roll (Y Z X) : Mettre les mêmes valeurs que dans le Pitch Yaw Roll (Y Z X) du light_environment ;
UseAngles : A mettre sur Yes ;
Sun Color (R G B) : La couleur du soleil ;
Size : La taille du soleil, d'origine 16, paraît correcte.

Voilà ce que ça donne in-game :

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement03.jpg

Voici une map d'exemple utilisant le Light_environment et le Env_sun :

env_sun.vmf

La pluie

Pour simuler la pluie dans hl2, il faut créer un bloc entité func_precipitation.

Commencez par créer une petite map en extérieur.
Puis créez un bloc dans la moitié de la map, pour bien voir par la suite où il y a de la pluie et où il n'y en a pas !

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement04.jpg

J'ai appliqué la texture nodraw mais n'importe quelle autre texture fera l'affaire.

Sélectionnez ce bloc et faites ToEntity :

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement05.jpg

Ensuite dans Class : choisissez func_precipitation.

Name : Le nom de l'entité bloc ;
Density (0-100%) : La densité de la pluie ;
Color (R G B) : La couleur de la pluie ;
Precipitation Type : Le type de précipitation, Rain ou Snow, mais pour la neige nous allons utiliser une autre entité, donc pour la pluie sélectionnez rain.

Pour la Density j'ai mis 75, et la Color 0 85 125.
Ca devrait donner un bon résultat !

Dans les flags, il y a StartOff qui vous permet de ne pas activer la pluie dès votre entrée dans la map.
Compilez donc votre map, et testez-la.

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement06.jpg

Sacrebleu, la pluie est violette, elle ne marche pas, on dirait qu'il manque la texture « rain » à en croire le message de la console : « material "particle/rain" not found ».
En fait cette entité ne marche qu'avec Counter-Strike:Source, dans HL² et HL²DM, il manque la texture.
Pour remédier à ce problème, allez dans D:\Jeux\Steam\SteamApps, ouvrez Counter-Strike Source shared.gcf à l'aide de GCFScape, puis allez dans root\cstrike\materials\particle, dans ce dossier il y a les fichiers rain.vmt et rain.vtf.

Sélectionnez ces deux fichiers, puis faites clic-droit et extract, puis décompressez-les dans D:\Steam\SteamApps\....\half-life 2\hl2\materials\particle

Relancez votre map et là, miracle ! plus de texture qui manque, vous avez devant vous une belle pluie !

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement07.jpg

Vous pouvez télécharger la map d'exemple ici : rain.vmf

La neige

Pour la neige, c'est un peu comme pour la pluie, sauf que le bloc entité ce n'est plus func_precipitation mais env_embers !

Reprenez donc votre petite map en extérieur, créez à nouveau un brush sur la moitié de votre map.
Sélectionnez ce bloc puis faites ToEntity, et dans class, choisissez env_embers.

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement08.jpg

Keys :

Pitch Yaw Roll (Y Z X) : C'est la direction de la neige, pointez un endroit vers le sol et faites quelques tests.
Ember type : Le type de neige: Normal, Smooth Fade ou Pulled ;
Density (particles per second) : Le nombre de flocons par seconde affichés à l'écran ;
Particle Lifetime (seconds) : La durée de vie d'un flocon (en seconde) ;
Particle Speed (units per second) : La vitesse d'un flocon ;
Ember Color (R G B) : La couleur des flocons (dans les teinte blanc/bleu clair de préférence).

Pour ma part j'ai réglé comme ça, ça donne un assez bon résultat :

Ember type : Normal ;
Density (particles per second) : 100 ;
Particle Lifetime (seconds) : 6 ;
Particle Speed (units per second) : 128 ;
Ember Color (R G B) : 166 226 255.

Lancez votre map et le tour est joué !

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement09.jpg

Vous pouvez télécharger la map d'exemple ici : snow.vmf

Les nuages

Pour faire de jolis nuages, c'est encore une fois une entité bloc qu'on va utiliser. Cette entité est func_dustcloud.

Créez donc un petit bloc, toujours avec la texture nodraw, puis sélectionnez ce bloc et faites ToEntity, et enfin choisissez func_dustcloud.

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement10.jpg

Name : Le nom du bloc entité ;
Start Disabled : « No » pour que l'entité marche dès le démarrage de la map ;
Particle Color (R G B) : La couleur du nuage ;
Particle Per Second : Le nombre de particules par secondes ;
Maximum Particle Speed : La vitesse maximum de la particule ;
Minimum Particle Lifetime : La durée de vie minimum de la particule ;
Maximum Particle Lifetime : La durée de vie maximum de la particule ;
Maximum Visible Distance : La distance la plus éloignée d'où on pourra voir le nuage ;
Frozen : Gèle le nuage, c'est à dire qu'il ne bougera pas si vous mettez « Yes » ;
Alpha : La transparence alpha du nuage ;
Minimum Particle Size: La grosseur minimum d'une particule ;
Maximum Particle Size: La grosseur maximum d'une particule.

Après tout ça de réglé, il ne vous reste plus qu'à lancer votre map.

http://www.game-lab.com/images/tuts/hl2_effets_naturels/effet_environnement11.jpg

Conclusion

Voilà, vous avez encore appris quelques petits trucs pour rendre vos extérieurs un peu plus réalistes sur ce magnifique moteur !