Forums

Tuto Puppeteer by Josiane on Wednesday, 01.February 2012 13:34
Transparence de la tenue by hani amaterasu on Friday, 27.January 2012 22:50
Ajouter des faces, où des arêtes by brucie on Thursday, 26.January 2012 16:02
IP from Comercial Bot will banished by Surfaqua Oh on Friday, 02.December 2011 22:38
CLUB 80' LA DERNIERE... by manureva joyce on Thursday, 24.November 2011 23:07

Problème de rotation
User Rating: / 0
PoorBest 
Librairie Scripts
Written by Garmin K   
Un petit problème de rotation qui laisse perplexes ceux qui abordent pour la première fois les rotations dans les objets de plus d'une prim
Si l'on modifie la rotation de la prim parent de l'objet, tout l'objet tourne ; il arrive qu'il ne faut faire tourner qu'une prim enfant, le reste de l'objet demeure immobile

 

//Soit une prim enfant ayant au départ une rotation : <90.0,295.0,0.0>, en degrès
//On doit lui ajouter une rotation de <-59.7,31.95,17.65>, en degrès
//Comment le faire sans faire pivoter tout l'objet, seule la prim enfant doit tourner

vector vRot_Dep = <90.0, 295.0, 0.0>; // rotation de départ de la prim
vector vRot_Add = <-59.7, 31.95, 17.65>; //rotation additionnelle
default
{
    state_entry()
    {
        //Donner à la prim enfant sa rotation de départ
        llSetLocalRot(llEuler2Rot(vRot_Dep * DEG_TO_RAD));
    }

    touch_start(integer total_number)
    {
        //Relever la rotation actuelle
        vector vRot_Actuelle = llRot2Euler(llGetLocalRot()) * RAD_TO_DEG;
       
        //Additionner les rotations à faire
        //il y a différente manière de le faire
        //1) on additionne élément par élément
        vRot_Actuelle.x = vRot_Actuelle.x + vRot_Add.x;
        vRot_Actuelle.y = vRot_Actuelle.y + vRot_Add.y;
        vRot_Actuelle.z = vRot_Actuelle.z + vRot_Add.z;
       
        //2) On fait une addition de vecteur
        vRot_Actuelle = vRot_Actuelle + vRot_Add;
       
        //3) on incrémente le vecteur d'origine
        vRot_Actuelle += vRot_Add;
       
        //Version pro : incorporer l'addition à la mise en oeuvre de la rotation
        llSetLocalRot(llEuler2Rot((vRot_Actuelle + vRot_Add) * DEG_TO_RAD));
    }
}

 

 


Créer un premier cube, le teindre en rouge
Créer un deuxième cube, le teindre en vert
Sélectionner et lier les 2 cubes en sélectionnant le rouge en dernier
Le cube rouge est la prim parent, la cube vert est la prim enfant
Placer le script dans le contenu de la prim verte
Donner une rotation quelconque à l'objet et cliquer
A chaque click, la prim verte tourne indépendamment de la prim rouge

 

 

Add comment

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

Security code
Refresh