Forums

Help login failed by Plash on Jeudi, 26.Avril 2012 18:22
Second Life connection impossible by Doggy on Jeudi, 26.Avril 2012 17:25
Breedable pets et animals Second Life by aden on Samedi, 31.Mars 2012 19:13
Shapes Mesh by born Resident on Lundi, 20.Février 2012 11:20
Tuto Puppeteer by Josiane on Mercredi, 01.Février 2012 13:34
Transparence de la tenue by hani amaterasu on Vendredi, 27.Janvier 2012 22:50
Ajouter des faces, où des arêtes by brucie on Jeudi, 26.Janvier 2012 16:02

Afficheur 5 faces à plat
Note des utilisateurs: / 4
MauvaisTrès bien 
Librairie Scripts
Écrit par Garmin K   
Ce script transforme une prim boîte standard en un panneau plat à 5 faces ; il utilise la fonction llSetPrimitiveParams avec des paramètres spécifiques.

 

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

//Données globales
//La largeur et la hauteur vont permettre de calculer les proportions des faces
//La largeur des images affichées sur une face (en pixels par exemple)
integer imgWidth = 640;

//La hauteur des images affichées sur une face (en pixels par exemple)
integer imgHeight = 480;

//La hauteur de l'afficheur
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>]);
//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

        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]);
//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

        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]);
// 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)
    }
}

 


Poser un cube, le « Modifier » (Edit), choisir l’onglet Contenu (Content), y glisser le script, attendre 1 second et le travail se fait tout seul. Les couleurs sont faites exprès pour que l’on puisse distinguer les faces.
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.
Il est possible de placer des images différentes sur chacune des 5 faces ;cela peut aussi être fait par script en remplaçant l'UUID de texture blanche par l'UUID d'une image de la bonne proportion.

 

 

Messages 

 
#1 Barbidule 2009-04-28 16:59 hoo qu'il est bien ce prim a 5 faces ^^
(hé Surfaqua, fallait pas me dire que vous attendiez qu'on écrive dans vos forums :)

pour ceux qui auraient peur du script, ne vous préoccupez pas du script (sauf pour apprendre bien sur), mais utilisez le prim obtenu, il est tout bien paramétré pour y mettre ses textures à la main. Et gardez en précieusement une copie dans votre inventaire si vous avez besoin d'économiser des prims.
Ce prim devrait être obligatoire dans tout bon paquet de freebie :)
Citer
 

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