25 avril 2011

Exposition de Claudia

Je vous avais déjà présenté les splendides réalisations de Claudia222 Jewell sur parallel worlds.
Elle expose en ce moment à Pirats Art Network (SLURL) sa dernière réalisation : une sorte de ruche immense et comme toujours "lovecraftienne".
Organique, mi végétal, minéral, insectoïde, humain aussi...
Je vous conseille la visite en mode environnemental nuit (Monde > Environnement > Minuit).
La visite par ici.





















19 avril 2011

Cube Ubuntu

Je suis tombée l'autre jour sur un document bien fait : une carte de référence des principales commandes à connaitre sur Ubuntu, mais qui fonctionnent aussi sur la plupart des systèmes Linux.
Quelques temps après, je trouve tout cela mis sur un cube, à laisser sur son bureau pour l'avoir toujours sous la main.
Le cube était sympa, mais il me manquait des commandes. Donc l'idée toute bête d'en refaire un.

Je me suis donc inspirée des trois documents :
Pour me refaire un cube à mon idée avec l'aide d'un ami, Trem. Je vous livre le résultat.
Tout étant sous licence CC-BY-SA comme il se doit.
Merci à Trem, car c'est un travail d'équipe.

On imprime, on découpe, on colle et hop c'est fini.

16 avril 2011

LSL : un script giver

Pour changer un peu, et comme ça fait un bon moment que je n'en ai pas fait, voici un petit tuto de scripting. Nous allons faire évoluer notre script, d'une version simple à une version plus amusante.

Le défi du jour : réaliser une boite qui donne un objet quand on clique dessus. Pour cela, je vais devoir builder une boite (facile), mettre dedans (onglet inventaire en mode édition) le script et l'objet à donner.

Nous allons avoir besoin des fonctions suivantes :

  • llGiveInventory : c'est elle qui permet de donner ce que contient l'inventaire d'une prim.
  • llGetInventoryName : cette fonction renvoie le nom d'un objet de l'inventaire. Nous utiliserons cette fonction pour connaitre le nom de l'objet. Ainsi, notre script pourra être réutilisable avec tout objet sans avoir besoin de le modifier.

la fonction llGiveInventory prend plusieurs paramètres :
  • la key de l'avatar qui doit recevoir l'objet. Pour l'obtenir, on utilisera llDetectedKey. Lorsque l'on clique sur un objet, un évènement touch_start se déclenche et permet de récupérer des informations sur l'avatar qui l'a touché, comme par exemple son nom (llDetectedName), sa clé ou UUID (llDetectedKey), savoir s'il est de même groupe que l'objet (llDetectedGroup), sa position (llDetectedPos), etc...
  • le nom de l'objet : plutot que de l'écrire textuellement, on utilisera donc llGetInventoryName, avec la constante INVENTORY_OBJECT, pour préciser que on veut le nom d'un objet, et l'indice 0, qui signifie le premier objet de l'inventaire (de toute façon,il n'y en aura pas d'autre).
Notre script s'écrit donc :


default{

touch_start(integer total_number){
//donne l'objet de l'inventaire
llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT, 0));
}

}


Allons plus loin. Imaginons à présent qu'on veuille que notre boite donne son objet une seule fois, pas plus. Par exemple dans le cadre d'une chasse au trésor, le premier qui trouve gagne.
On peut alors envisager deux solutions :
  1. une fois donné son objet, la boite disparait
  2. la boite reste mais refuse de donner quoi que ce soit

Solution 1 : on ajoute juste dans le script un llDie, pour que la boite se dereze toute seule. Notre script devient :


default{

touch_start(integer total_number){
//donne l'objet de l'inventaire
llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT, 0));
// bye bye ! Adieu monde cruelle
llDie();
}

}


Solution 2 : poussons plus loin l'idée. La boite donnera un nombre de fois fini l'objet et se bloquera. On va donc utiliser un compteur. A chaque fois que la boite donne un objet, on augmente le compteur. Dès qu'elle a atteint la limite, on arrête. Je vais donc définir une constante (le maximum) et une variable pour le compteur. Prenons un exemple à 10.


// le nombre maximum de don de l'objet
integer MAX_GIFT = 10;
// le compteur qui est initialisé à 0
integer counter = 0;


default{

touch_start(integer total_number){
//test pour donner
if (counter < MAX_GIFT) {
//donne l'objet de l'inventaire
llGiveInventory(llDetectedKey(0), llGetInventoryName(INVENTORY_OBJECT, 0));
//incrémente le compteur
counter++;
} else {
llSay(0, "Désolé, la boite est vide !!");
}
}


}

Et voila, le travail est fini.
Pour toute idée de tuto de script, n'hésitez pas à me contacter sur le blog ou inworld. Le plus dur, c'est pas de scripter, mais d'avoir des idées de scripts.

13 avril 2011

Parallel Worlds

Mondes parallèles...
SLURL : Parallel Worlds

Une formidable réalisation de Claudia222 Jewell.
Un univers étrange et dérangeant, une sorte de mouvance immobile, dans un style sombre mais pas noir, onirique à la limite du cauchemar, angoissant, parfois lumineux.

Cela fait tout de suite penser à HP Lovecraft : les grands Anciens, le mythe de Cthulhu, les choses sombres qui rampent dans les profondeurs, ce qui se passe par-delà le mur du rêve...
Parallel Worlds, c'est ça, cet univers-là matérialisé. Beaucoup ont essayé de le dessiner, certains de le filmer, mais aucun n'a réussi : Claudia, elle, l'a fait.
Elle a su rendre cette ambiance, cette folie, ces contraires mêlés.

Elle présente son nouveau monde dans le cadre d'une expo qui durera un mois et qui s'est ouvert hier. Dans un prochain article, l'expo et la SLURL.

Commençons la visite...


Passons le portail et pénétrons dans l'un des mondes. Chacun est enfermé dans une sorte de bulle.




Tout a l'air de flotter, suspendu dans le vide...



Les trois règnes se mêlent : minéral, végétal, animal



Des créatures étranges volent autour de nous, et nous en chevauchons une pour continuer notre balade.










Parfois, au détour d'une bulle, si on y prête attention, certaines fleurs, quand on les regarde sous le bon angle, deviennent fleur-animal.


Petite pause dans la lumière pour flotter dans des étoiles-spores.



Bonne visite.
Des photos de la dernière expo de Claudia dans un prochain article.