lampes.png

Aujourd'hui, petit tuto sur la réalisation d'une belle lampe. Mais attention... pas n'importe quoi ! Parce qu'on va la munir d'un interrupteur variable, comme les vraies.

Comment faire ?

Il nous faut :

  • Une lampe (ou plusieurs...);
  • Un interrupteur.

On va commencer par fabriquer la lampe, avec dedans un petit script qui va servir à faire varier son intensité en fonction des signaux reçus de l'interrupteur.

La lampe...

Vous pouvez donner à votre lampe l'apparence qui vous convient. Je vais tout de même vous guider pas à pas pour construire une petite lampe de jardin cylindrique pas trop vilaine en deux prims : le pied, et la partie lumineuse.

Pour faire le pied de la lampe :

  • Rezzez un simple cube;
  • Dans l'onglet objet, changez le type de bloc de construction en Cylindre;
  • Donnez à ce cylindre la taille suivante : X=0.250, Y=0.250, Z=2.000;
  • Remontez légèrement ce cylindre de façon à ce qu'il ne reste pas planté dans le sol...;
  • Changez la texture de ce cylindre en Vierge via l'onglet Texture. Donnez-lui une couleur gris métal et une brillance élevée;

A ce stade, votre réalisation devrait ressembler à peu près à ceci :

step1.png

Maintenant, la partie lumineuse :

  • Faites une copie du pied de la lampe :
    • Appuyez sur shift, gardez le doigt dessus...;
    • Tout en maintenant cette touche enfoncée, faites-le remonter via l'axe des Y (flèche bleue du haut) suffisamment haut pour qu'un deuxième cylindre apparaisse, aligné au dessus de l'autre;
    • Lâchez la touche shift. Voilà !
  • Donnez à cette nouvelle partie la taille suivante : X=0.260, Y=0.260, Z=0.750;
  • Changez la texture de cette nouvelle partie en Vierge, à l'aide de l'onglet Texture, puis donnez lui une couleur jaune pâle;
  • Dans l'onglet Attributs, Activez la case Lumière, puis donnez les valeurs Rayon=20.00, Fallof=0.000. La propriété Intensité n'a pas d'importance pour le moment.
  • Descendez ce prim sur le pied de la lampe à la hauteur qui vont convient !

Voilà, vous y êtes presque :

step2.png

A présent, créez un nouveau script dans la partie lumineuse, et copier/coller-y le code suivant :

// Lampe - Auteur: http://lslblog.free.fr

// Canal de communication entre l'interrupteur et la lampe
integer gCanal = -1500;

// Adresse d'écoute de l'interrupteur
integer gListener;

// Donne à la lampe l'intensité lumineuse passée en paramètre
AllumeLampe(float intensite)
{
    llSetPrimitiveParams([PRIM_POINT_LIGHT] + llListReplaceList(llGetPrimitiveParams([PRIM_POINT_LIGHT]), [intensite], 2, 2));
}

default
{
    state_entry()
    {
        // Active l'écoute de l'interrupteur
        gListener = llListen(gCanal, "", NULL_KEY, "");
    }
   
    // Ecoute et analyse les messages reçus
    listen(integer channel, string name, key id, string message)
    {
        AllumeLampe((float) message / 100.);
    }
}

Voilà, la lampe est prête à fonctionner. Il nous faut à présent fabriquer l'interrupteur.

L'interrupteur ! L'interrupteur !

Pour le fabriquer, un prim suffit amplement. Il faudra simplement toucher ce prim pour faire varier la luminosité de la lampe.

  • Rezzez un prim, donnez lui la taille et l'apparence que vous voudrez;
  • Ajoutez un nouveau script à ce prim, et copier/collez à l'intérieur le code qui suit :
// Lampe - Auteur: http://lslblog.free.fr

// Canal de communication entre l'interrupteur et cette lampe
integer gCanal = -1500;
integer gIntensite;

default
{
    // Quand on touche, on fait varier l'intensité lumineuse...
    touch(integer count)
    {
        gIntensite += 25;
        if (gIntensite > 100)
            gIntensite = 0;

        // On affiche l'intensité de l'éclairage
        llSetText("Luminosite: " + (string) gIntensite + "%", <0,0,1>, 1);

        // ... et on envoie l'information à toutes les lampes à 100 mètres à la ronde
        llShout(gCanal, (string) gIntensite);
       
        llSetTimerEvent(2);
    }    
   
    // Ce timer ne sert qu'à effacer l'intensité affichée au bout de deux secondes
    timer()
    {
        llSetText("", <0,0,0>, 1);
        llSetTimerEvent(0);
    }
}

Je crois que c'est tout bon, vous voilà fin prêt !

Et maintenant ?

Faites un test : forcez le soleil en mode Minuit (Monde / Forcer le soleil / Minuit), puis touchez l'interrupteur plusieurs fois.

lampes.png

C'est beau, non ? (Oui : le gros truc orange, c'est l'interrupteur : j'avoue que je ne me suis pas foulé...)

A présent, vous pouvez lier la lampe et son pied, la copier autant de fois que vous le souhaitez et agrémenter ainsi vos extérieurs !