Publié par
Tha Doggfather
sauf que les termes c'est pas trop sa ...
genre Root , enfants , mere etc ...
Je test ton script cet aprem et jte dit si c'est opérationnel .
Le script collégial..
Root Child:
Quand il y a 1 seule prim elle est root d'office.
Quand tu assembles des prims ensemble la prim référence est appelée Root et les autres enfants ( child).
Lors de l'assemblage la root a ses lignes de contours jaunes et les childs beues.
La prim ROOT est LA réference ABSOLUE. Quand tu édites un objet TOUTES les infos sont celles de la ROOT exemple position.
Les instructions LSL prennent comme référence la ROOT ( sauf spécifiques).
Position/rotations sont l'exemple le plus démonstratif.
Les positions des childs sont RELATIVES... c'est à dire par rapport à la ROOT.
Exemple simple:
llSetPos( < 100.0,100.0,100.0 >; positionne la root à ces coordonnées ( donc TOUT l'objet.
Si on veut bouger un child de 10 en Z alors on devra penser à faire
llGetPos()( Position de la Root) + < 0.0, 0.0, 10.0 > (deplacement de la child) mais comme il doit s'appuyer sur la rotation de la ROOT prim.... alors la formule magique devient:
llGetPos() + < 0.0, 0.0, 10.0 > * llGetRot();
Ce qui pourrait se traduire par je bouge en de 10 mètres en Z prenant comme référence la position et la rotation actuelle de la ROOT.
Pourquoi mettre cette rotation??
Simple comme bonjour...
Prenons 2 cubes l'un au dessus de l'autre la root dessous le child dessus.
Si je bouge verticalement, en hauteur ( Z) pas de problème....
Si mon objet est incliné de 45 degré alors là j'ai besoin de décider si le child doit avoir un axe de mouvement verticale pur ou rester dans l'axe de 45 degrés...
Pas simple je sais... cela rebute souvent les scripteurs mais bon...