Dernière mise à jour : 28/10/2019 à 13h35

Current Project : Who knows?

Index des tutoriaux

Conditions Météo

Pour recréer les conditions météorologiques, on peu utiliser un emitter, mais il sera très dur à configurer, peu réaliste, et demandera beaucoup de ressources : il fera en effet tomber de la pluie sur TOUTE la carte, ce qui demandera à votre machine non seulement de calculer la map, mais en plus, de calculer à chaque instant la position de chaque particule créée.
Il existe un actor pour résoudre ce problème : le XWeatherEffect, qui se trouve dans l'actor browser : c'est le dernier actor de la liste :

XWeatherEffect dans l'actor browser

Placez cet actor dans votre carte, sa position n'a aucune importance, mais essayez de le placer dans un endroit où vous serez sur de le retrouver plus tard : Il apparaît sous la forme d'une tête de vautour :

Le XWeatherEffect Tel qu'il apparait dans l'éditeur

Une fois placé, allez dans le Texture Browser et dans le package "EmitterTextures", Groupe "MultiFrame", choisissez la texture "FinalBlend RainFB" :

Texture de pluie

Maintenant, ouvrez les propriétés du XWeatherEffect :

Propriétés de l'actor

Nous allons voir quelles sont les propriétés importantes :

Bien, maintenant, il est temps de s'attaquer à notre temps.
Comme nous allons faire tomber de la pluie, la première chose à faire est de changer WeatherType en WT_Rain.

La première chose à faire est de choisir la texture des particules qui tomberont en tant que pluie. Pour cela, je vous ait conseillé d'utiliser la texture "FinalBlend RainFB" du groupe "MultiFrame" du package "EmitterTextures".

Rappel de la texture

Pour utiliser cette texture, allez dans les propriétés du XWeatherEffect, et dans l'onglet display, cliquez sur le champ vide nommé "Skin", puis sur le bouton "ajout" qui apparait, et ajoutez votre texture :

texture spécifiée dans le XWeatherEffect

Des... "Choses" commencent déjà à tomber sur votre map, mais c'est loin d'être convaincant : en effet, il s'agit de petits bouts de la texture que vous avez choisis, qui ne tombe pas à la bonne vitesse, ni dans la bonne direction, et si vous bougez votre vue un peu vite, vous verrez que vous pouvez "semer" la pluie.

En effet, voici le principale avantage du XWeatherEffect par rapport à un emitter : au lieu de faire apparaitre des particules sur toute l'étendue de la carte, il ne génère de la pluie que dans un cube autour du joueur : ainsi, le joueur à l'impression qu'il pleut car il est environné de pluie, et l'oeil humain ne percevant pas, en général, la pluie très loin, l'illusion est parfaite : chaque joueur est entouré d'un cube de pluie et ne voit que le sien, pas celui des autres. Comme un schéma vaut mieux qu'un long discours, voici un exemple :

la zone dans laquelle est générée la pluie.

Le joueur est au centre d'un cube invisible. La pluie n'est générée que dans ce cube, qui, s'il est assez grand, permet au joueur d'avoir l'impression réelle qu'il pleut sur toute la map. Comme le moteur ne génère des particules QUE dans ce cube, le gain de performances est non négligeable. Si plusieurs joueurs sont dans la partie, le moteur générera de la pluie dans un cube autour de chaque joueur, mais chaque joueur ne verra que "sa" pluie, et pas celle qui entoure les autres, l'illusion est conservée et chaque joueur peut en profiter.

Pour l'heure, revenons à notre carte :

L'effet n'est pas vraiment au point

La première chose que nous allons devoir faire, c'est corriger, ce problème de la texture. Dans l'onglet XWeatherEffect des propriétés du XweatherEffect, changez "num Rows" et "num cols" à 2 chacun. La raison ? Simple : regardez la texture que nous avons choisie :

Division de la texture utilisée

Il y a deux images par lignes et deux par colonnes.
Quand ceci sera réglé, les particules auront une forme plus normale. Pour continuer, nous allons régler la vitesse, ce qui règlera aussi la forme. En effet, la forme des particules générées par le Xweather effect est influencée par la vitesse : plus la vitesse de chute est grande, plus les particules seront étirées vers le haut pour simuler l'étirement des gouttes de pluie causé par les frottements de l'air. Dans le monde d'Unreal, la gravitée est égale a une vitesse de -950 sur l'axe Z : une chute d'environ dis mètres à la secondes. Comme la pluie est ralentie par l'air et pour se donner une marge d'erreur à peu près normale, dans "Speed", mettez Min et Max à 800.

la pluie commence à prendre forme

Le résultat à déjà une allure à peu près convenable. Il reste tout de même plusieurs problèmes. Tout d'abord, la pluie ne tombe jamais tout à fait droite à cause du vent qui la pousse. Aussi, nous allons dévier légèrement sa trajectoire pour qu'elle tombe obliquement. Dans "Spawnvel", mettez 0.1 à X pour que la pluie soit déviée sur l'axe correspondant.

Ensuite, les particules sont un peu grosses et pourraient convenir à une averse de grêle, mais pas à une fine pluie. Aussi, dans "Size", mettez min à 1 et max à 2, les particules sont presque réduites à un simple trait qui correspond mieux à ce que nous cherchons à faire. Enfin, le gros problème qui subsiste est qu'au moindre déplacement de la caméra, la pluie ne suit pas et on se retrouve éloignée du "cube de pluie" qui met un certain temps à venir. Pour compenser cela, il va falloir agrandir le cube, et augmenter le nombre de particules. Dans "Positions", réglez X et Y de cette manière : Max 1000, Min -1000, et Z à max 500 min -200. Ensuite, plusieurs choix s'offrent à vous : -Soit vous désirez une grosses averse, un véritable déluge, et vous changez "NumParticles" à 10 000, soit vous voulez une fine pluie de dimanche matin, et vous laissez à 1024. Optant pour une solution intermédiaire, j'ai choisis d'utiliser "3000" :

Effet finale d'une pluie légère

Tout est pour le mieux. Enfin presque, car la pluie sera effective dans TOUTE votre carte. Pour pouvoir garder des zones au sec (l'intérieur des bâtiments, ou les lacs, sous la surface de l'eau), il faut encore effectuer une petit manoeuvre très simple : créez un volume là où la pluie ne doit pas tomber (dans mon cas, le lac), et faites le trop large de 32 à 64 unités : en effet, la pluie ne s'arrête pas d'un coup au contact du volume mais y pénètre sur quelques unités, ce qui oblige à prévoir large. Ensuite, changez le tag du volume en "NORAIN" (sans les guillemets), et placez la même chose dans l'event du XWeatherEffect. Note : il vous faudra peut-être rebuildez, et si vous avez plus d'un volume anti-pluie dans votre map, il faudra fermer l'éditeur et le relancer pour que les nouveaux volumes soient pris en compte.

Notez aussi que si vous essayez de copier le Xweather effect d'une autre map (comme CTF-DE-Elecfield), vous aurez droit à un plantage en règle de l'éditeur. J'ignore dans quelle mesure certains paramètres empêchent ce genre de manipulation.

2005-2022, by Hellkeeper.

Valid XHTML 1.1 CSS 2.1