Entités |
Type |
Description |
---|---|---|
Bloc |
Permet de créer une zone de pluie ou de neige |
Les maps dans lesquelles il pleut ou il neige ne sont pas fréquentes. Pourtant, ça peut donner un bel effet .
Pour mettre de la pluie ou de la neige dans votre map, vous devez utiliser l?entité-bloc func_precipitation (le nom est très en rapport avec la fonction ). Vous devez créer un bloc, avec la texture toolstrigger qui recouvre toute votre map. La pluie sera ajoutée dans ce bloc. Transformez le bloc en func_precipitation.
Et les maisons ?
Ce n?est pas grave, remplissez tout. Vous verrez qu?il ne pleuvra ou ne neigera pas dans les maisons .
Density : c?est la densité de la pluie. Ne vous ennuyez pas et laissez la valeur par défaut, c?est très bien
Color : couleur de la pluie. Laissez blanc, je n?ai jamais vu de pluie verte
Precipitation Type : mettez Rain. Vous pouvez aussi mettre Snow si vous voulez de la neige.
Je vous ai dit de créer un gros bloc qui recouvre votre map. Si votre map est parfaitement carrée, c'est une bonne solution. Mais si elle ne l'est pas, vous pouvez bien évidemment créer plusieurs blocs func_precipitation. Si vous mettez plusieurs blocs, essayez de faire en sorte qu'ils aient tous plus ou moins la même taille car la densité des précipitations est calculée en fonction du volume du bloc. Donc pour essayer d'avoir la même densité de pluie ou de neige partout, faites des blocs de la même taille, ce sera plus simple.
Valve donne quelques recommandations à propos de l'utilisation des func_precipitation. Je vais vous les lister ici.
Vous devez éviter de mettre des précipitations si votre map contient de l'eau. Ou tout du moins, vos précipitations ne doivent pas entrer en contact avec l'eau. Ça peut provoquer des crashs de la map et ou du jeu
Evitez aussi de mettre une densité trop élevée. C'est possible de le faire, mais risqué. Ça peut provoquer des ralentissements ou même un crash.
Les précipitations ne peuvent en aucun cas sortir de la map ! Pour cela, évitez de coller vos func_precipitation aux murs de limite de votre map. En effet, les précipitations peuvent sortir légèrement hors de l'espace du bloc func_precipitation, et elles pourraient se retrouver hors de la map. Prudence donc .
Valve dit aussi que les précipitations ne doivent pas entrer dans un func_smokevolume. Je vous expliquerai cette entité plus bas dans cette partie. Il faut donc laisser un "trou" au milieu de vos func_precpitation pour y placer le func_smokevolume.
Entité |
Type |
Description |
---|---|---|
Point |
Permet de mettre en place une propagation constante de fumée |
Rien de tel que de mettre une cheminée sur vos maisons et d'en faire sortir un nuage de fumée. Un entité se prêt particulièrement bien pour créer cette fumée : env_smokestack.
Cette entité produit un nuage de fumée à partir de son origine (l'emplacement de l'env_smokestack) et qui se disperse tout doucement dans l'air, exactement comme la fumée qui sort d'une cheminée. Regardez ce que ça donne :
Mais pour que ce soit réaliste, il s'agit de bien placer l'entité. Sur le screen ce-dessous, je place l'entité "dans la buse" de la cheminée, pour qu'il n'y ait pas d'espace entre le début de la fumée et la sortie de la cheminée :
Voici les quelques propriétés utiles :
Initial State : mettez On pour que la fumée soit émise par défaut
Spread at the base : vitesse de dispersion de la fumée à la base du smoketrack
Spread Speed : vitesse de dispersion de la fumée
Speed Speed : vitesse de propagation de la fumée à la base du smoketrack
Particle start size : taille des particules lors au début de l'émission (à la base du smoketrack donc)
Particle end size : taille des particules à la fin de l'émission, au moment où elles commencent à disparaître
Emission rate : particules émises par seconde. C'est la densité d'émission
Length of smoke trail : longueur de l'émission de fumée. Laissez la valeur par défaut, comme sur mon screenshot.
Wind X/Y Angle : c'est l'angle démission. Mettez 10 ou 15 pour incliner légèrement
Wind Speed : la force du vent qui fera dévier la fumée. Ici encore, une valeur de 10 ou de 15 est acceptable.
Twist : vitesse de rotation des particules autour de l'origine. C'est pour faire un effet tornade. Mettez une valeur faible comme 2 ou 5 ; vous faites de la fumée, pas un cyclone
Base Color (R G B) : couleur de la fumée. Dans mon exemple j'ai pris 129 129 129
Translucency : transparence de la fumée. Mettez 150 ou 180 pour un rendu plus ou moins opaque
Entité |
Type |
Description |
---|---|---|
Point |
Permet de paramétrer le vent ambiant d'une map |
|
Bloc |
Permet de créer un volume dans lequel souffle le vent |
|
Bloc |
Permet de créer un volume dans lequel évolue de la poussière dense |
Par défaut le vent ne souffle pas. Mais pour créer un ambiance et ajouter du réalise, il peut-être utile de le faire souffler pour, par exemple, faire balancer légèrement des câbles.
La méthode traditionnelle pour faire souffler le vent est d'insérer un env_wind qui va servir à paramétrer le vent qui soufflera sur toute la map. La deuxième solutions consiste à utiliser un trigger_wind. C'est un volume dans lequel le vent va souffler. Ça vous permet de faire des petits effets par-ci par-là sans toucher à la configuration du vent qui souffle sur la totalité de la map (paramétré avec l'env_wind).
L'env_wind possède moins d'inputs que le trigger_wind. Il n'est par exemple pas possible d'activer ou de désactiver le vent. Je vais vous donner les propriétés de l'env_wind. Puis dans un exemple je vous introduirais le trigger_wind pour faire des rafales avec une envolée de particules.
Min normal speed : vitesse minimale du vent
Max normal speed : vitesse maximale du vent
Min gust speed : vitesse minimal des rafales
Max gust speed : vitesse maximale des rafales
Min gust delay : délai minimum entre deux rafales
Max gust delay : délai maximum entre deux rafales
Gust Duration : durée des rafales
Max gust dir change (degrees) : nombre de degrés dont les rafales font changer la direction du vent
Deux outputs intéressants ont été implémentés avec Half-Life² Episode 1 :
OnGustStart : quand une rafale commence
OnGustEnd : quand une rafale se termine
Le vent va souffler par rafales et à chaque rafale on va faire comme si le vent faisait se soulever des particules, comme du sable, de la terre. Comme ceci, le premier screen au repos et le deuxième avec une bourrasque qui provoque un soulèvement de poussière (c'est une légère bourrasque pas une tempête de sable, donc c'est assez léger) :
Avant la rafale -> Pendant la rafale
Pour faire ce genre de chose il faut :
un logic_timer qui activera les bourrasques de façons aléatoire
un func_dustcloud pour générer le nuage de particules
un trigger_wind pour souffler dans le func_dustcloud
un ambient_generic pour jouer le son du vent qui souffle
Vous pouvez utiliser le son ambient/wind/windgust_strong.wav pour l'ambient_generic.
Voici comment j'ai placé le trigger_wind et le func_duscloud. Ce dernier est
plus petit et qui est placé dans le trigger_wind :
Mettez sa propriété Start Disabled sur Yes pour ne pas qu'il soit actif dès le début, et mettez une vitesse de 120 (propriété Speed). Spécifiez aussi un point d'origine et un angle pour définir la direction du vent.
Pareil que pour le trigger_wind, mettez Yes pour Start Disabled. Spécifiez une couleur, si possible une couleur qui se rapproche de celle du sol que vous utilisez. Voici les autres propriétés :
Particle Per Second : nombre de particules par seconde. 30 semble être une bonne valeur.
Maximum Particle Speed : vitesse des particules
Minimum Particle Lifetime : temps minimum de vie des particules.
Maximum Particle Lifetime : temps maximum de vie des particules.
Maximum Visible Distance : distance maximale dans laquelle les particules sont visibles.
Frozen : laissez sur No. Si vous mettez Yes, les particules apparaîtront mais ne bougeront pas.
Alpha : valeur de transparence. Plus c'est élevé, plus c'est opaque. Mettez 30.
Minimum Particle Size : taille minimale des particules. Mettez une valeur faible genre 5 ou 10.
Maximum Particle Size : taille maximale des particules. Mettez aux alentours de 50 ou 60.
Pour le logic_timer, mettez le en position aléatoire (Use Random Time sur Yes). Définissez Minimum et Maximum Random Interval avec respectivement 7 et 14.
Puis, définissez les outputs comme ceci :
Output named |
Targets entities |
Via this input |
Parameter |
Delay |
---|---|---|---|---|
OnTimer |
dustcloud |
TurnOn |
<non> |
0.00 |
OnTimer |
ambientgeneric |
PlaySound |
<non> |
0.25 |
OnTimer |
triggerwind |
Enable |
<non> |
0.25 |
OnTimer |
dustcloud |
TurnOff |
<non> |
5.00 |
OnTimer |
triggerwind |
Disable |
<non> |
5.25 |
Tout s'arrête après 5.25 secondes. Il est donc important d'avoir choisi un Minimum Random Interval (pour le logic_timer) plus grand que 5, sinon deux rafales pourraient être déclenchées en me^me temps, ce qui provoquerait certainement autre chose que ce qui est souhaité .
Entités |
Type |
Description |
---|---|---|
Point |
Entité qui sert à gérer le brouillard |
L'env_fog_controller est une entité qui permet de mettre du brouillard et de le paramétrer. Le brouillard a en réalité deux utilisations :
pour faire joli
pour optimiser
On utilise le brouillard pour optimiser les grandes maps car il est possible de faire disparaître les zones que le brouillard masque ce qui permet de soulager le moteur graphique et de gagner de précieux FPS en plus ! En général, si on utilise un env_fog_controller pour optimiser, c'est que les autres techniques d'optimisation se sont révélées vaines.
Voici un exemple de map ou le brouillard est utilisé pour optimiser. La map dod_snowblind de Grippy est une map très vaste et le brouillard permet de réduire la profondeur de visibilité et ainsi que masquer tout ce que le brouillard cache :
Placez l'entité où vous voulez dans votre map, cela n'a pas d'importance. L'env_fog_controller possède un certain nombre de propriétés mais seules 5 sont vraiment utiles :
Fog Enable : mettez Yes pour activer le brouillard
Primary Fog Color : c'est la couleur du brouillard. Vous pouvez aussi spécifier une Secondary Fog Color mais ce n'est pas nécessaire.
Fog Start : distance à laquelle le brouillard commence
Fog End : distance à laquelle le brouillard se termine. On n'y voit plus rien, c'est totalement opaque.
Far Z Clip Plane : voir ci-dessous
Par défaut, les éléments qui sont cachés par le brouillard sont quand même affichés, ce qui fait que si vous utilisez l'entité dans le but d'optimiser, elle ne sert à rien . Pour faire disparaître les éléments masqués par le brouillard il faut spécifier la distance à partir de laquelle le jeu ne doit pas afficher les éléments. C'est à ça que sert la propriété Far Z Clip Plane. Mettez y la même valeur que la propriété Fog End, comme ça dès que le brouillard est opaque, ce qui est derrière n'est plus affiché.