Prims ruckelfrei bewegen
4 Jahre 5 Monate her - 4 Jahre 3 Monate her #13
von Jules Dreki
Prims ruckelfrei bewegen wurde erstellt von Jules Dreki
Die folgenden Funktionen findet man sehr oft in Beispielen und fertigen Scripten.
llSetPos()
SetPrimitiveParams() - script sleeps 200ms
llSetLinkPrimitiveParamsFast() - script sleeps 0ms (nicht implementiert in den Opensims)
osSetPrimitiveParams() - script sleep 0ms
Leider haben diese Befehle alle den Nachteil das die neue Position unmittelbar gesetzt wird. Man sieht den Prim nur springen und sich nicht bewegen. Will man eine Bewegung sehen muss man den Prim mit diesen Befehlen regelrecht animieren. Mit dem folgenden Befehl setzt man nur das Ziel, und der Prim bewegt sich passend zur übergebenen Zeit dort hin.
llSetKeyframedMotion()
Detektiert am besten das Ende der Bewegung mit dem Ereignis moving_end(). Mit den Ereignis not_at_target() hatte ich in den Opensims Probleme. Wie dass in SL sich verhält, kann ich nicht sagen. Aber in OS wird dieses Ereignis permanent ausgelöst, solange sich der Prim nicht am Ziel befindet. Irgendwann hat dann ein Ereignis gefehlt und die nächste Bewegung starte nicht. Meine Vermutung ist das die Ereignis-Warteschlange mit mehr als 64 Ereignissen überlief und so dann Ereignisse ignoriert wurden.
llSetPos()
SetPrimitiveParams() - script sleeps 200ms
llSetLinkPrimitiveParamsFast() - script sleeps 0ms (nicht implementiert in den Opensims)
osSetPrimitiveParams() - script sleep 0ms
Leider haben diese Befehle alle den Nachteil das die neue Position unmittelbar gesetzt wird. Man sieht den Prim nur springen und sich nicht bewegen. Will man eine Bewegung sehen muss man den Prim mit diesen Befehlen regelrecht animieren. Mit dem folgenden Befehl setzt man nur das Ziel, und der Prim bewegt sich passend zur übergebenen Zeit dort hin.
llSetKeyframedMotion()
Detektiert am besten das Ende der Bewegung mit dem Ereignis moving_end(). Mit den Ereignis not_at_target() hatte ich in den Opensims Probleme. Wie dass in SL sich verhält, kann ich nicht sagen. Aber in OS wird dieses Ereignis permanent ausgelöst, solange sich der Prim nicht am Ziel befindet. Irgendwann hat dann ein Ereignis gefehlt und die nächste Bewegung starte nicht. Meine Vermutung ist das die Ereignis-Warteschlange mit mehr als 64 Ereignissen überlief und so dann Ereignisse ignoriert wurden.
Letzte Änderung: 4 Jahre 3 Monate her von Jules Dreki.
Bitte Anmelden oder Registrieren um der Konversation beizutreten.
Ladezeit der Seite: 0.173 Sekunden
Forum Login