• 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.

Drehpunkt per Script verschieben?

Wenn du mir sagst, was ein Pivotpunkt ist, damit ich nicht danach googlen muss, kann ich dir scriptseitig bestimmt antworten.
 
ist der Punkt um den ich einen Körper rotieren kann

Objekte werden in 3D Programmen meist über dem Mittelpunkt x=0, y=0, z=0 gebaut. Doch man kann den Drehpunkt beliebig versetzen.

Nicht so in SL ! .. dort befindet sich der Drehpunkt immer im Mittelpunkt.
Bei Türen zum Beispiel musst Du den Prim halbieren, damit du den Drehpunkt (Pivotpoint) aus der Mitte weg bekommst.


EDIT//
Danke Hannibal
hatte es schon befürchtet ...
 
Glatt noch vergessen!

Wenn man per Script rotieren lassen möchte, geht das doch auch irgendwie um das Massezentrum alternativ zum Zentrum des Rootprims, mir fällt gerade zwar nicht genau ein wie, aber möglich ist das.
Wenn man also ein Objekt aus mehreren Prims so baut, das das Massezentrum an der gewünschten Stelle liegt ... mmmh ... ganz schön aufwändig fällt mir gerade auf, aber naja, das wäre vielleicht noch ne Möglichkeit.

MfG
Hannibal
 
Mir geht es aber um ein einzelnes Prim.. genauer gesagt um Sculpties.

Beim Erstellen der SculptieMaps habe ich Einfluss auf den Drehpunkt.... leider aber nicht in der Art, dass ich es kontrollieren kann. Deshalb meine Frage, ob es nach dem Hochladen in SL per Script zu richten ist?
 
Takeshi Newman schrieb:
mach ein linkset draus, einen kleinen rootprim dran an dem du dann dein sculptie platzierst.

leider nicht möglich, denn es handelt sich um den Sculptie_Oldtimer. Alle Prims sind fest verplant.

Hab gestern mal wieder den Wald vor lauter Bäumen nicht gesehen, deshalb der Versuch es "einfacher" per Script zu lösen.

Timmi hatte es schon einmal geschrieben...
http://www.slinfo.de/phpbb/viewtopic.php?p=191043#191043
 
es ist möglich bei sculpties !

in jedem 3d programm das gut ist kannst du dass komplette sculptie auf der achse verschien.
verschiebst du das scukptie auf der achse, so wird nach dem import in sl auch der schwerpunkt des sculpties verschoben. (quelle sind meine tests mit wings 3d und rokuro pro)
 
Aus der LSL wiki:

"Hinweis: Ein Objekt kann um einen beliebigen Punkt gedreht werden, indem man einen Vektor mit einer Rotation in der eben beschriebenen Weise multipliziert. Dieser Vektor muß der Abstand zwischen der gegenwärtigen Position des Objekt und dem gewünschten Mittelpunkt der Rotation sein. Wenn man das Resultat dieser Multiplikation zum dem Mittelpunkt der Rotation addiert erhält man einen neuen Vektor, der die Position angibt an die man das Objekt verschieben muß um die gewünschte Rotation zu erreichen."

Ein Beispielscript ist auch dort.
 
ich stell mich jetzt mal ganz doof und probier das einfach mal aus

folgender script:
Code:
ausg() {
    llSay(0,"Position: "+(string)llGetPos());
    llSay(0,"Drehung : "+(string)(llRot2Euler(llGetRot())*RAD_TO_DEG));
}    

default
{
    state_entry()
    {
        ausg();
    }

    touch_start(integer total_number)
    {
        rotation x_45 = llEuler2Rot( <45, 0, 0>* DEG_TO_RAD ) ; // 45 Grad um x
        
        vector aktuellePosition = llGetPos();
        vector mittelpunkt = llGetPos() + <1, 1, 1>; // in globalen Koordinaten
        
        vector abstand = aktuellePosition - mittelpunkt;
        vector newpos = mittelpunkt + ( abstand * x_45);
        
        llSetPos(newpos);   
        ausg(); 
    }
}

gibt mir folgende Ausgabe:

  • Position:<28.00000, 200.00000, 62.00000>
    Drehung : <-0.00000, 0.00000, -0.00000>
jetzt touche ich, und bekomme:
  • Position: <28.00000, 201.00000, 61.58578>
    Drehung : <-0.00000, 0.00000, -0.00000>


Was stimmt denn nicht?
 
Die rotation sieht gut aus, nur die Drehung muss auch gesetzt werden.

Code:
...       
        llSetPos(newpos);    
        llSetRot(x_45);
        ausg(); 
    } 
...
 

Users who are viewing this thread

Zurück
Oben Unten