• Bitte schaltet eure Ad Blocker aus. SLinfo kann nur betrieben werden, wenn es durch Werbung Einnahmen erzielt. Vielen Dank!!
  • Wir freuen uns, wenn du dich in unserem Forum anmeldest. Bitte beachte, dass die Freigabe per Hand durchgeführt wird (Schutz vor Spammer). Damit kann die Freigabe bis zu 24 Stunden dauern.
  • Wir verwenden Cookies, um Inhalte und Anzeigen zu personalisieren, Funktionen für soziale Medien anbieten zu können und die Zugriffe auf unsere Website zu analysieren. Sie geben Einwilligung zu unseren Cookies, wenn Sie unsere Webseite weiterhin nutzen.

Rotation per llSetPrimitiveParams

Hallo zusammen
ich habe folgendes Problem. Ich möchte einen Avatar, der sich auf ein Object setzt (also letztes Link wird) per llSetPrimitiveParams an verschiedene Positionen (poses) anpassen.

llSetLinkPrimitiveParams(7, [ PRIM_POSITION, <0.0, -0.2, 1.15> , PRIM_ROTATION, llEuler2Rot(<-2, 0, -90>*DEG_TO_RAD) ]);

Mit der Position geht das auch wunderbar. Mit der Rotation auch gut, solange ich das Objekt(Rootprim) nicht im Raum drehe. Dann passiert nämlich folgendes. Wenn ich das Object zB um 10° um die vertikale (z) Achse drehe wird der Avatar ,nach dem obigen Aufruf um 20° (relativ) gedreht (sieht zumindest so aus).
Hab schon mit llGetRot() die Drehung vorher ausgelesen und multipliziert, das hat die Situation aber noch mal verschlechtert (Abweichung verdoppelt). Aber die Rotation soll ja sowieso relativ zum Rootprim sein, wie es mit der Position ja auch wunderbar klappt.
So, hoffe ich hab mich nicht zu kompliziert ausgedrückt. Falls jemand eine Idee oder Lösungsvorschlag hat währe ich dankbar.

gruß Jacky
 
mal ohne zu testen würde ich sagen

llSetLinkPrimitiveParams(7, [ PRIM_POSITION, <0.0, -0.2, 1.15> , PRIM_ROTATION, llEuler2Rot(<-2, 0, -90>*DEG_TO_RAD*llGetRot) ]);
 
Danke für die Antwort Selina
Hat leider nichts gebracht. Unterscheidet sich erstaunlicherweise gar nicht ob das *llGetRot()
(an dieser Stelle) multipliziert wird oder nicht. Vorne multipliziert
llSetLinkPrimitiveParams(7, [ PRIM_POSITION, <0.0, -0.2, 1.15> , PRIM_ROTATION, llGetRot()*llEuler2Rot(<-2, 0, -90>*DEG_TO_RAD) ]);
verdoppelt es die Abweichung.

gruß Jacky

PS. Titel muss natürlich heissen

Rotation mit llSetLinkPrimitiveParams statt llSetPrimitiveParams
 

Users who are viewing this thread

Zurück
Oben Unten