De la pluie ou de la neige dans vos maps Multi et Solo grâce à Pedro.

retour sommaire

Salut à tous !!!

Voilà, il y a quelques temps j'ai fais un post pour demander comment on pouvait créer de la pluie, comme j'ai réussi grâce à votre aide, j'ai décidé de faire un mini tutorial pour expliquer et en faire profiter la communauté.

1/ Mapping
Tout d'abord, on va créer une petite map classique, avec un peu d'herbe au sol et une texture sky comme « m5l2 » , afin d'avoir des nuages dans le ciel et obtenir quelque chose de crédible.
Par temps orageux, on ne doit pas observer les rayons du soleil, pour cela, lorsque vous définissez les paramètre du
worldspawn, au lieu de rentrer tous
les paramètres habituels
(suncolor ; sundirection ; sunflare) , entrez juste
ce paramètre :

Key :
ambientlight
Value :
40 40 40
Ceci éclairera la map sans qu'il y ait de rayons de soleil.

Ensuite nous allons faire un petit abris au milieu de la map pour se protéger de la pluie.
Puis on va y mettre deux petites jeep pour meubler et dire que c'est un hangar.

Maintenant que notre petite map et faite nous allons faire en sorte qu'il pleuve.
Pour cela il faut tout d'abord créer des brushs dans tous les endroits de la map où l'on veut qu'il y ait de la pluie, il faut ensuite appliquer la
texture « Rain » à ces même brushs, on peut trouver cette texture avec les textures « Utility ».

Les brushs "pluie" ne doivent pas traverser les murs des bâtiments sinon il va pleuvoir à l'intérieur, cela dit , il ne faut pas non plus coller les brushs
"pluie" contre les murs des bâtiments, il faut laisser une marge d'environs quarante unité entre un brush et un mur.
En effet la pluie générée par ce type de brush tombe en biais comme quand il pleut et qu'il y a du vent, ainsi la pluie ne s'arrête pas pile à la
délimitation du brush.
Si la pluie rentre un peu à l'intérieur, écartez un peu plus le brush du mur.
Les endroits où il n'y a pas de bâtiment faites des brushs qui vont du sol au plafond.

Une fois tous les brushs faits, sélectionnez-les un à un et faites un clic droit dans la vue en 2D sur le brush sélectionné et faites « Func_Rain »

(((ATTENTION :J'insiste bien sur le fait qu'il faut faire cette manip brush par brush et non pas tous les sélectionner et faire cette manip qu'une seule
fois, sinon vous créez qu'une seule fois la fonction Rain et celle-ci englobera toute la map et il pleuvra à l'intérieur des bâtiments
)))
Voilà pour la partie mapping c'est finit !!!!!(Oufff)

2/ scripting
a/ scripting pour map multi
Passons au scripting, pour cela ouvrez
Notepad ou un autre éditeur de texte et inscrivez y ces quelques lignes :

//tutopluie
//ARCHITECTURE:Tuto_Pedro
//SCRIPTING:Tuto_Pedro

main:

        //set scoreboard messages

        setcvar "g_scoreboardpic" "none"

   level waittill prespawn

        //***Brouillard
        $world farplane_color "1 1 1"
//Ces trois lignes correspondent au brouillard
        level.fogplane = 10000
//que j'ai rajouté afin d'obtenir des éclairs de couleur blanche
        $world farplane level.fogplane
//Au lieu des éclairs bleus de base

        //*** Precache Dm Stuff
        exec global/DMprecache.scr

        //***Pluie
        exec global/ambient.scr tutopluie
//Pour créer son ambiance, il faut mettre le nom de la map
        exec global/weather.scr
//ligne de commande servant à créer la pluie

   level.script=maps/dm/tutopluie.scr

  level waittill spawn

end

Le brouillard que j'ai rajouté sur la map sert uniquement pour des raisons esthétiques (c'est un brouillard léger), car il donne une teinte blanche aux
éclairs à la place de la teinte bleue de base, si vous préférez avec des éclairs bleus, enlevez ces trois lignes.
Une fois le script terminé nommez le bien avec le nom de votre map et en *.scr , puis placez le dans le même répertoire que celui de votre map.
Compilez et voilà !!!!!)

Télécharger le fichier pk3 multi.

b/ Scripting pour map solo.

Pour cela ouvrez Notepad ou un autre éditeur de texte et inscrivez y ces quelques lignes :
Les lignes de Pedro sont les mêmes, mais l'architecture du script est différente.

//tutopluie
//ARCHITECTURE:Tuto_Pedro
//SCRIPTING:Tropheus inspiré de Pedro

exec global/ai.scr
exec global/loadout.scr maps/test_pluie.scr
main:

  level waittill prespawn

        //***Brouillard
        $world farplane_color "1 1 1"
        level.fogplane = 10000
        $world farplane level.fogplane

        //***Pluie
        exec global/ambient.scr test_pluie//pour la musique
        exec global/weather.scr

  level waittill spawn
        $player item weapons/colt45.tik
        $player ammo pistol 1000
  level.script = level.test_pluie.scr
end

Télécharger le fichier pk3 solo.

3/ Pour la neige.

Il vous suffit de rajouter ses quelques lignes dans votre script juste en dessous de la ligne " exec global/weather.scr" dans le level waittill prespawn.

level.rain_speed= "16" <=vitesse des gouttes
level.rain_length = "2" <=dimension des gouttes
level.rain_width = "1" <=dimension des gouttes
level.rain_density = ".8"
level.rain_slant = "250" <=inclinaison des gouttes
level.rain_shader = "textures/snow0" <=texture utilisé pour faire des flocons

Texte, mapping, script mulit par Pedro.
Mise en page et partie solo par Tropheus

retour sommaire

Pour une neige plus réaliste.

Voici une ammélioration apportée par Danker. Elle vous permettra de rendre plus crédible et plus belle votre neige.

level.rain_speed= "46" //<=vitesse des gouttes/flocons
level.rain_speed_vary = "16" //<=variation de vitesse des gouttes/flocons
level.rain_length = "1" //<=dimension des gouttes/flocons
level.rain_width = "1" //<=dimension des gouttes/flocons
level.rain_density = "2.8" //<=densité des gouttes/flocons
level.rain_min_dist = "1800" // ceci permettrait de limiter la zone de flocons à une certaine distance par rapport au sol. Au dessus il n'y en a pas. Je pense que ceci est fait pour alléger le moteur graphique et éviter une chute massive du fps.
level.rain_slant = "150" //<=inclinaison des gouttes/flocons
level.rain_shader = "textures/snow0"

Pour un brouillard plus esthétique.

Voici une seconde précision de la part de Danker. (brouillard de jour uniquement)

level.fogplane_color = "0.3 0.3 0.33"
level.fogplane = 2500

$world farplane level.fogplane
$world farplane_color level.fogplane_color
$world farplane_cull none

Merci à toi Danker pour toutes ces informations complémentaires.