La torture des Prims dans Second Life: Mur d'images
Note des utilisateurs: / 2
MauvaisTrès bien 
Construction d'objets
Écrit par Garmin Kawaguichi   

Voici une manière agréable (et économique) d’afficher plein d’images sur un panneau comme on le voit couramment pour les murs d’images. Il s’agit ici de 25 images affichées prises au hasard dans la totalité des images qui se trouvent dans l’inventaire du panneau.
En fait pour afficher les 25 images on n’utilise que 5 prims ; chaque ligne de 5 images ne faisant qu’une prim.

Voici le Mur d’Images en état de fonctionnement:

Voici les emplacements ou vous pouvez trouver le scripts ainsi que le mur d'image gratuit:

Marché Furvata + freebies

France3d Marseille AVATARS-3D QG

twisting prim, torsion de prim second life

Il affiche 25 images prises aléatoirement parmi les 91 images fournies. De plus il affiche une grande image à l’arrière, prise elle-même parmi les 91 images.

Pour supprimer, ajouter, remplacer des images :
Il faut effectuer la même opération DANS LES  5 PRIMS ; le paramétrage actuel du mur est prévu pour des images ayant un rapport de format de 1.3333 (1024 x 768 ; 640 x 480 ; 320 x 240 etc.)

Pour changer le délai d’affichage, cela se fait dans le script Display 5 Faces de chacune des 5 prims.
Pour changer les paramètres de l’image arrière, cela se fait dans le script Back Master de chacune des 5 prims (attention aux caractéristiques de chaque script dans chacune des prims, un commentaire en début de script indique pour quelle prim le script est affecté).

Pour changer les caractéristiques des images, cela se fait dans chacun des 3 scripts des 5 prims ; il est recommandé de s’intéresser d’abord à la prim de base et à y effectuer les tests.
Voilà, bonne utilisation du Mur d’Images !
La brique de base
Afficher 5 images de face et à plat sur une seule prim (ou comment pousser à donf la torture d’une prim)
Il y a une technique à peine complexe pour obliger une simple et unique prim à montrer 5 faces à plat alignées et de tailles égales, ce qui la rend intéressante pour un affichage multiple. Mais comme la recette à appliquer pour  atrocement torturer cette prim est difficile à retenir et nécessite une grande précision, j’ai jugé plus utile d’en faire un script.

tutoriaux torture prims second life twisting

 

 

Mode d’emploi :
poser un cube, le « Modifier » (Editer):

 

 

Type de construction:
PRISME

Début et fin de découpe du Prim (path)
D: 0.200     F : 0.800

 

Creux : 65.0

 

Taille du prim:

X = 0.010

Y = 8.000

Z = 1.000

 

 

 

 

 

 

 

 

  

 

jpgtutoriaux torture prims second life twisting

Ensuite : choisir l’onglet Contenu (Content), y glisser le script Flat 5 Faces, attendre 1 second et le travail se fait tout seul. Les couleurs sont faites exprès pour que l’on puisse distinguer les faces.

Script 5 Faces: Flat 5 Faces V1.5

 

//From an original idea of Johanna Hyacinth (see profile in world and her web site : http://johannahyacinth.blogspot.com but by script.

//Droits et propriété intellectuelle
//Tout le contenu du script est au-delà du domaine public. Vous pouvez le copier, l'offrir et le donner et même, si vous en avez le fantasme, le mettre carrément à la poubellle.
//Si vous y apportez des modifications, faites-en profiter la communauté.
//Et je dirais même plus, si vous voulez faire croire que vous en êtes l'auteur, ça ne m'empêchera pas de dormir.

//Rights and intellectual property.
//All the script content is beyond the public property.  You can copy it, offer it, and give it and even, if you have a fantasy, throw it to the bin.
//If you modify it, let take advantage to the community.
//And, to be more specific, if you want to take somebody in you are the author, I won't lose any sleep over it.
//Garmin Kawaguichi

//This script transforms a prim standard box into a flat 5 faces panel; it uses the llSetPrimitiveParams function with specific parameters.
// The followings are the successive steps to obtain this result:
//1.- PRIM_TYPE, PRIM_TYPE_PRISM, 0, <0.2, 0.8, 0.0>, 0.65, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>: a prism with Path Cut B = 0.2 and E = 0.8; Hollow to 65; Taper X and Y = 0; Size X and Y = 1.0
//2. - PRIM_SIZE, <0.01, ((float)imgWidth / (float)imgHeight) * 6.0, 1.0>: the prim size sets to X = 0.01, Y = Z * 6 * (image width / image height), Z = line of screens height; but keep in memory that Y and/or Z are limited to 10 meters, if the rate between width and height is 1.333333 (for a 640x480 picture), the maximum value for Z is 1.25
//3. -  From left to right the face numbers are: 3, 7, 4, 6, and 1; but the texture parameters for faces 3, 4, and 1 need to be adjusted: (the texture UUID 5748decc-f629-461c-9a36-a35a221fe21f is the white standard one)
//Face 3 - PRIM_TEXTURE, 3, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <-0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5; vert repeat = 1.0; hor offset = -0.250
//Face 4 - PRIM_TEXTURE, 4, "5748decc-f629-461c-9a36-a35a221fe21f", <-15.4, 1.0, 0.0>, <-0.2, 0.0, 0.0>, 0.0 => Hor repeat = 15.4 flipped; vert repeat = 1.0; hor offset = -0.200
//Face 1 - PRIM_TEXTURE, 1, "5748decc-f629-461c-9a36-a35a221fe21f1", <2.5, 1.0, 0.0>, <0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5; vert repeat = 1.0; hor offset = 0.250

//Faces coloring; to return to white for a normal use
//PRIM_COLOR, 5, <1.0, 0.0, 1.0>, 1.0 => the RGB colors are chosen from the face number (5 = 101, 7 = 111 etc)
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Ce script transforme une prim boîte standard en un panneau plats à 5 faces ; il utilise la fonction llSetPrimitiveParams avec des paramètres spécifiques.
// Voici les étapes successives pour obtenir ce résultat :
//1.- PRIM_TYPE, PRIM_TYPE_PRISM, 0, <0.2, 0.8, 0.0>, 0.65, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0> : un prisme avec Path Cut B = 0.2 et E = 0.8 ; Hollow à 65 ; Taper X et Y = 0 ; Size X et Y = 1.0
//2. - PRIM_SIZE, <0.01, ((float)imgWidth / (float)imgHeight) * 6.0, 1.0> : la taille de la prim est forcée à X = 0.01, Y = Z * 6 * (largeur de l'image / hauteur de l'image), Z = hauteur de la ligne d'écrans ; mais tenez compte que Y et/ou Z sont limité à 10 mmètres, si le rapport entre largeur et hauteur est de 1.333333 (cas d'une image en 640x480), la valeur maximum pour Z est de 1.25
//3. -  De gauche à droite les numéros de face sont : 3, 7, 4, 6, et 1 ; mais les paramètres de textures pour les faces 3, 4, et 1 doivent être ajustés : (la texture dont l'UUID est 5748decc-f629-461c-9a36-a35a221fe21f est la texture standard blanche)
//Face 3 - PRIM_TEXTURE, 3, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <-0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5 ; vert repeat = 1.0 ; hor offset = -0.250
//Face 4 - PRIM_TEXTURE, 4, "5748decc-f629-461c-9a36-a35a221fe21f", <-15.4, 1.0, 0.0>, <-0.2, 0.0, 0.0>, 0.0 => Hor repeat = 15.4 flipped ; vert repeat = 1.0 ; hor offset = -0.200
//Face 1 - PRIM_TEXTURE, 1, "5748decc-f629-461c-9a36-a35a221fe21f1", <2.5, 1.0, 0.0>, <0.25, 0.0, 0.0>, 0.0 => Hor repeat = 2.5 ; vert repeat = 1.0 ; hor offset = 0.250

// Coloriage des faces; à remettre en blanc lors de l'utilisation normale
//PRIM_COLOR, 5, <1.0, 0.0, 1.0>, 1.0 => les couleurs RGB sont choisies en fonction du muméro de face (5 = 101, 7 = 111 etc)
//\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//Global data
//The width of the pictures displayed on a face (in pixels for example)
//La largeur des images affichées sur une face (en pixels par exemple)
integer imgWidth = 640;

//The height of the pictures displayed on a face (in pixels for example)
//La hauteur des images affichées sur une face (en pixels par exemple)

integer imgHeight = 480;

//The height of line of faces
//La hauteur de la ligne de faces
float fscreenHeight = 1.0;
default
{
    state_entry()
    {
        llSetPrimitiveParams([PRIM_TYPE, PRIM_TYPE_PRISM, 0, <0.2, 0.8, 0.0>, 0.65, <0.0, 0.0, 0.0>, <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, PRIM_SIZE, <0.01, (((float)imgWidth / (float)imgHeight) * 6.0 * fscreenHeight), fscreenHeight>]);
        llSetPrimitiveParams([PRIM_TEXTURE, 3, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <-0.25, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 7, "5748decc-f629-461c-9a36-a35a221fe21f", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 4, "5748decc-f629-461c-9a36-a35a221fe21f", <-15.4, 1.0, 0.0>, <-0.2, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 6, "5748decc-f629-461c-9a36-a35a221fe21f", <1.0, 1.0, 0.0>, <0.0, 0.0, 0.0>, 0.0, PRIM_TEXTURE, 1, "5748decc-f629-461c-9a36-a35a221fe21f", <2.5, 1.0, 0.0>, <0.25, 0.0, 0.0>, 0.0]);
        llSetPrimitiveParams([PRIM_COLOR, 0, <0.0, 0.0, 0.0>, 1.0, PRIM_COLOR, 1, <0.0, 0.0, 1.0>, 1.0, PRIM_COLOR, 2, <0.0, 1.0, 0.0>, 1.0, PRIM_COLOR, 3, <0.0, 1.0, 1.0>, 1.0, PRIM_COLOR, 4, <1.0, 0.0, 0.0>, 1.0, PRIM_COLOR, 5, <1.0, 0.0, 1.0>, 1.0, PRIM_COLOR, 6, <1.0, 1.0, 0.0>, 1.0, PRIM_COLOR, 7, <1.0, 1.0, 1.0>, 1.0]);
    }
}

 

 


La lecture du script donne tous les détails sur la technique employée ; au passage admirer la redoutable complexité de l’instruction llSetPrimitiveParams et de l’usage que l’on peut en faire.
Il peut arriver, si vous modifier le script, que les proportions des faces ne correspondent pas à celles attendues ; n’oubliez pas que la largeur maximum d’une prim est de 10 mètres. Si le rapport largeur/hauteur déclaré pour une image que multiplient la hauteur de la prim que multiplie 6 est supérieur à 10 mètres alors le résultat ne sera pas conforme.
Exemple : pour des images de 1.3333 de rapport (ex : 640 x 480) et une hauteur de 1.25, la largeur de la prim sera pile poil 10 mètres alors que pour une hauteur de 1.2, la largeur sera de 9m60. Mais pour une hauteur de 1.5, la largeur de la prim sera toujours de 10 mètres, donc un mauvais rendu des images.
A vous maintenant de découvrir les applications utiles de cette prim. Sans oublier de nous en informer !

Garmin Kawaguichi

 

Ajouter un Message

Si vous ne voyez pas vos messages c est que vous n êtes pas enregistré sur Avatars-3d en tant que membre. Ils seront examinés par un administrateur avant d être publié! Si vous désirez publier rapidement vos messages enregistrez vous ici

Code de sécurité
Rafraîchir