Registerkarten

SimtippViewerServerKunstLL-BlogVideosVehikelAnleitungARC
Posts mit dem Label Skript werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Skript werden angezeigt. Alle Posts anzeigen

Donnerstag, 27. September 2018

Offener Brief gegen Anti-Rez-Skripte

Daemonika Nightfire / Quelle: SLinfo
Daemonika Nightfire hat mir vor ein paar Tagen eine Notecard mit einem offenen Brief zukommen lassen. Gleichzeitig hat sie das behandelte Thema auch in einem Thread auf SLinfo gestartet.

Es geht um Skripte für Farb- und Texturwechsel, sowie um Anti-Rez-Skripte in Second Life Objekten. Vor allem in Kleidung für Avatare. Anti-Rez-Skripte bewirken ein Löschen des Objekts unmittelbar nach dem Rezzen.

Den Brief, der in Deutsch und Englisch erstellt wurde, übernehme ich hier direkt. Allerdings nur die deutsche Version. Danach folgt noch ein Tipp aus dem erwähnten Forenthread.


Liebe Content-Ersteller, insbesondere Ersteller für Kleidung,

Seit langer Zeit beobachte ich, dass ihr im Großteil der auf dem Marketplace angebotenen Kleidungsstücke Skripte verwendet, um die Farbe bzw. Textur zu ändern. Daran ist im Grunde nichts auszusetzen, doch bitte bietet eine Möglichkeit an, die Skripte restlos zu entfernen, sobald man die Farbe oder Textur eingestellt hat. Ihr seit zunehmend mit in der Verantwortung, wenn die Skript-Belastung einer Region an ihre Grenzen stößt, sobald größere Events stattfinden.

Sehr viele Avatare sind vollgepackt mit Skripten, die sie eigentlich nicht benötigen, aber gar nicht entfernen können. Auf Regionen mit Avatar bezogenen Skript-Limits, haben diese Avatare lediglich die Wahl, das Kleidungsstück auszuziehen, wenn sie nicht selbst von der Region entfernt werden möchten.

Es kann doch nicht in eurem Sinne sein, dass die Leute eure tollen Kreationen nicht zeigen können, nur weil sie gewisse Skript-Limits überschreiten. Ihr solltet mal über euer Handeln nachdenken, schließlich ist jeder Avatar der eure Kleidung trägt, kostenlose Werbung für euch.

Nun ein Punkt, der mir sehr am Herzen liegt. Sehr viele von euch verwenden dieses dämliche Anti-Rez-Skript. Euch sollte klar sein, das dieses Plazebo absolut keinen Nutzen hat.


Es gibt in ganz Second Life kein einziges Skript, das dazu in der Lage wäre, eure Kreationen in irgend einer Weise zu schützen! Das könnt ihr mir glauben, ich skripte in Second Life nun seit über 10 Jahren und weiß genau, dass es unmöglich ist. Also lasst bitte die Finger von diesen nutzlosen Anti-Rez-Skripten.

Für Copybots ist es nicht notwendig, das Objekt auf den Boden zu rezzen. Die Schweine klauen eure Sachen direkt am Avatar wahrend des Tragens. Zudem sind sämtliche Skripte, auch das Anti-Rez-Skript, absolut nutzlos, wenn auf der Parzelle oder Region die Skripte abgeschaltet werden. Ich mache das regelmäßig und deaktiviere die Skripte der Objekte über das Estate Menü gleich vollständig.

Mit freundlichen Grüßen
Daemonika Nightfire (Content Creator, Merchant, Builder, Skripter, Customer)



Hier noch ein kleines Tutorial von Daemonika, wie man ein Anti-Rez-Skript in einem "NoMod"‑Objekt deaktiviert.

Tutorial

Zuallererst werdet ihr feststellen, dass sich euer Kleidungsstück eurer Wahl sofort in Luft auflöst, sobald ihr versucht es auf dem Boden zu rezzen. Wenn ihr es dennoch rezzen wollt, gibt es sogar zwei Möglichkeiten.

Erste Möglichkeit: Ihr schaltet einfach auf eurer Parzelle über die Land-Info die Skripte ab. Beide Haken bei "Jeder" und "Gruppe" entfernen. Wenn ihr es jetzt rezzt, löscht es sich nicht.

Zweite Möglichkeit: Ihr schaltet über das Estate-Menü, sofern ihr Estate-Rechte besitzt, im Tab "Debug" die Skripte ab und drückt auf übernehmen. Wenn ihr es jetzt rezzt, löscht es sich auch nicht.

Hier werden im offiziellen SL Viewer die Skripte in der Land-Info deaktiviert
Nun gehen wir aber einen Schritt weiter:
Sagen wir mal ihr möchtet die Skripte vollständig abschalten, was sich aber als unmöglich herausstellt, wenn das Objekt "No Modify" ist. Auch die Skripte zu löschen funktioniert nicht. Doch ihr habt die Möglichkeit die Skripte dennoch zu killen. Sie sind zwar nicht weg, dafür aber vollständig deaktiviert.

Zu diesem Zweck muss man wie folgt vorgehen:
  • Macht euch eine Kopie eures Objekts im Inventar.
  • Schaltet nun zuerst die Skripte in der Land-Info ab. Beide Haken bei "Jeder" und "Gruppe" entfernen.
  • Macht das nicht über das Estate-Menü, sonst findet ihr das Objekt nicht in der Top-Skript Liste.
  • Nun rezzt das Objekt auf dem Boden.

Na, dämmert es langsam?
Wenn die Skripte im Estate abgeschaltet werden, sind alle Skripte schon vollständig abgeschaltet. Macht ihr das aber über die Land-Info, sind die Skripte nur gestoppt, aber nicht ganz deaktiviert.

Das heißt, man kann sie über die Top-Skript Liste im Estate-Menü wieder finden. Dazu gebt nun in der Liste bei Objektname den Namen eures Objekts eurer Wahl ein und drückt auf "Filter". Sobald ihr nun euer Objekt sehen könnt, selektiert es einfach und drückt unten links auf "Auswahl deaktivieren".

Mit diesem Klick sind sämtliche Skripte im gesamten Objekt vollständig tot und geben keinen Mux mehr von sich und können auch nicht wieder aktiviert werden. Ab jetzt könnt ihr die Skripte in der Land-Info wieder aktivieren und werdet sehen, das euer Objekt nicht verschwindet. Jetzt lässt sich das Objekt immer wieder und überall rezzen, wo bauen erlaubt ist.

Übrigens, mit Skripte in der Land-Info deaktivieren, lassen sich ebenfalls diese bescheuerten 5‑Minuten‑Timer bei Demos abschalten. :p (Erst Skripte abschalten, dann die Demo anziehen.)

LG
Dae

Wer zu diesem Thema noch mehr lesen will, besucht den Thread auf SLinfo. Dort ist auch die englische Version des offenen Briefs zu finden, falls jemand einen internationalen Content Ersteller das geben möchte.

Link:

Dienstag, 1. August 2017

AVsitter2 Skripte sind jetzt Open Source

AVsitter Vendorfoto / Quelle: AVsitter
Am 31. Juli hat Code Violet, die Anbieterin des ziemlich bekannten AVsitter-Systems für Second Life, alle Skripte dieses 3.000 Linden Dollar teuren Tools als Open Source frei zur Verfügung gestellt.

Das AVsitter-System ist seit Jahren die erste Wahl für Möbel- und Vehikelanbieter, sowie Hobbybastler, wenn man in SL-Objekte verschiedene Sitzposen und Animationen für Avatare einbauen will. Das reicht von einer einzelnen Pose/Animation, bis hin zu 300 verschiedenen Posen/Animationen pro Objekt, die sich dann per Dialog-Menü auswählen lassen. Auch Posen und Animationen für Paare und Gruppen, sind mit dem AVsitter machbar.

Code Violet schreibt in ihrem Blogpost, dass die AVsitter-Skripte unter MPL 2.0 Lizenz stehen. Diese Lizenz besagt, dass man eigentlich so gut wie alles mit den Skripten machen darf, inklusive Verändern des Code auf beliebige Weise. Lediglich den Markennamen "AVsitter" darf man nicht benutzen. Und sollte man die Skrtipe verändern und anschließend an Dritte weitergeben oder in Produkten verkaufen, sind sie wieder unter Open Source für alle öffentlich zu machen.

Für Besitzer einer gekauften AVsitter Version ändert sich nichts. Sie können ihr Produkt weiterhin im Inworld-Shop auf den neuesten Stand bringen lassen. Das letzte Update wurde am 31. Juli 2017 herausgegeben, eben mit den Open Source Skripten, die damit jetzt auch in der Kaufversion lesbar und änderbar sind. Weitere Informationen zum Update gibt es hier.

Der AVsitter wird auch weiterhin für 3.000 L$ auf dem Marketplace angeboten. Man erhält dann eben ein fertiges Produkt, bekommt alle zukünftigen Updates automatisch, es gibt über 40 Beispiel-Objekte und ein Trainingstool, das die Bedienung demonstriert, sowie optimierte Skripte, die bessere Performance haben und weniger Speicher benötigen.

Die Open Source Skripte für AVsitter1 und AVsitter2 können jetzt hier auf GitHub kostenlos heruntergeladen werden. Die Bedienungsanleitungen für die beiden Systeme gibt es hier. Allerdings muss man sich schon etwas mit LSL und dem ganzen AVsitter-System auskennen, um aus den vielen Skripten ein eigenes Tool zu erstellen. Aber gerade Bastler in OpenSim, werden da sicher eine Verwendung für haben. Denn auch der Einsatz dort, ist von Code Violet ausdrücklich erlaubt worden.

Download Links:

Allgemeine Links:

Quelle: AVsitter is now open-source!

Samstag, 30. März 2013

Serverseitiger AO auf BlueSteel und LeTigre

Mein Test auf der BlueSteel Sandbox
Am letzten Mittwoch wurde auf die RC-Regionen von BlueSteel und LeTigre unter anderem eine Reihe von neuen Skriptfunktionen aufgespielt, die einen serverseitigen Animation Overrider (AO) ermöglichen. Ich hatte bereits vor einer Woche etwas dazu geschrieben.

Bei den bisher üblichen AOs werden die internen Animationen, die jeder Avatar serveseitig in SL zugewiesen bekommt, vom Skript mit neuen Animationen überschrieben. Bei jeder Änderung der Avatarbewegung muss dann zwischen Viewer und Server ein Datenaustausch durchgeführt werden, damit die entsprechende interne Animation wieder vom Skript im AO überschrieben werden kann. Laut Linden Lab befinden sich die heutigen AOs im ständigen "Kampf" mit den Standard-Animationen, um sie quasi zu unterdrücken.

Das soll nun durch die neuen, serverseitigen Animationen verbessert werden. Für jede Viewer-Sitzung muss dem Server nur ein einziges Mal gesagt werden, welche individuelle Animation eine bestimmte Standard-Animation ersetzen soll und anschließend wird diese individuelle Animation vom Server wie eine Standard-Animation behandelt. Es ist also nicht mehr nötig, dass ein AO permanent mit dem Server kommuniziert. Damit fällt weniger Netzwerklast an und die Server haben weniger Arbeit zu verrichten.

Zur Einführung des serverseitigen AO können erstmal 22 Standardbewegungen des Avatars geändert werden. Ich könnte mir aber vorstellen, dass diese Liste noch erweitert wird. Die vollständige Liste aller Standardbewegungen für Avatare gibt es hier:

Bisher können davon die folgenden Animationen genutzt werden:
"Standing", "Sitting", "Sitting on Ground", "Jumping", "Hovering", "Taking Off", "CrouchWalking", "Walking", "Running", "Hovering Up", "PreJumping", "Hovering Down", "FlyingSlow", "Flying", "Falling Down", "Striding", "Landing", "Soft Landing", "Crouching", "Standing Up", "Turning Left", "Turning Right".

Inzwischen wurden auch die Wiki-Seiten für die neuen LSL-Funktionen und -Berechtigungen online gestellt. Hier die vier neuen Einträge:
  • llSetAnimationOverride - Bestimmt, welche Animation anstelle einer Standardbewegung abgespielt werden soll.
  • llGetAnimationOverride - Damit lässt sich abfragen, wie die Animation heißt, die für eine bestimmte Standardbewegung gesetzt wurde.
  • llResetAnimationOverride - Damit lassen sich einzelne oder alle Animationen auf den System-Standard zurücksetzen.
  • PERMISSION_OVERRIDE_ANIMATIONS - Konstante zur Berechtigungsanfrage, die Standard-Animationen überschreiben zu dürfen (mit llGetPermissions).

Mit diesen Funktionen lassen sich jetzt nicht nur mit relativ wenig Code neue AOs erstellen, sondern es lassen sich auch alle bestehenden AOs damit aktualisieren, wie z.B. das bekannte Freebie ZHAO II oder die professionellen HUDs von Vista Animations.

Da ich diese Neuerung interessant finde, habe ich das gestern auf einer BlueSteel Sandbox schon getestet. Im gesamten SL-Grid werden diese Funktionen voraussichtlich am 9./10. April aufgespielt. Als Grundlage habe ich das Beispielskript zu llSetAnimationOverride genommen. Ich habe das dann erweitert auf alle Animationen, die aktuell möglich sind. Außerdem habe ich noch ein Touch Event dazugebracht, so dass man das Objekt mit dem Skript gar nicht am Avatar tragen muss, sondern einfach irgendwo auf dem Land rezzen kann.

Skriptspeicher bei serverseitigem AO
Ganz ohne Probleme läuft das Ganze allerdings noch nicht. Beim Rezzen bzw Anziehen des neuen AO erschien bei mir sporadisch ein Runtime Error im Debug Fenster. Funktioniert hat der AO aber trotzdem. Außerdem gibt es vier Animationen, bei denen man während der Bewegung stecken bleiben kann ("PreJumping", "Landing", "Soft Landing" und "Standing Up"). Das sind sogenannte Übergangsanimationen, die nicht als Loop abgespielt werden dürfen. Bei meinen verwendeten Anis ist das aber scheinbar der Fall. Also habe ich diese vier Bewegungen erstmal ausgeklammert.

Skriptspeicher beim ZHAO II
Insgesamt aber eine feine Sache. Man kann seine eigenen Animationen nutzen, ohne ein Skript oder Attachment am Avatar zu tragen. Im direkten Vergleich verbraucht der serverseitige AO nur 16kB Skriptspeicher, während der gute alte ZHAO II 256kB benötigt (siehe Bilder auf der rechten Seite). Im Augenblick kann man zwar einen serverseitigen AO nur auf BlueSteel- oder LeTigre-Regionen ausführen, aber die Animationen bleiben dann im gesamten Grid aktiv, egal wo man hinteleportiert.

Ich habe mein Skript mal auf Google Docs hochgeladen. Wer möchte, kann es ausprobieren. Dazu muss man aber seine eigenen Animationen verwenden und die Namen im Skript entsprechend ändern. Das Skript und alle verwendeteten Animationen dann in ein Prim kopieren. Dieses kann man entweder tragen, oder rezzen und anklicken. Trägt man es am Avatar, bleiben die Animationen solange aktiv, bis man das Prim wieder ablegt. Klickt man dagegen das gerezzte Prim an, bleiben die Animationen bis zum Viewer-Logout aktiv. Und wer für die vier auskommentierten Bewegungen jeweils Animationen hat, die nicht als Loop laufen, kann diese auch mal probieren durch Entfernen der "//" vor den Zeilen.

Link zu meinem Skript (lässt sich über > Datei > Herunterladen als .txt-Datei speichern):

Links:

Mittwoch, 22. Februar 2012

Pathfinding im Beta Grid

Am letzten Donnerstag hat Linden Lab in seinem Blog den Beta Start für die neuen Wegfindungsfunktionen (englisch "Pathfinding") bekannt gegeben. Dazu gab es ein Video und einen Link zur neuen Wiki-Seite, auf der die bis jetzt zur Verfügung stehenden Funktionen zusammengefasst sind.

So richtig habe ich mich damit noch nicht beschäftigt, aber ich war am Montag mal kurz auf den vier Test-Regionen im Beta Grid, die diese neuen Funktionen bereits unterstützen. Dort wuseln einige Prims durch die Gegend und vor allem die Schachbrett-Sandbox ist ganz witzig und hat den Charakter eines echten Testgeländes.

Beta Sandbox "PathTest4"

Gestern habe ich dann mal 2 von den 11 verschiedenen Skriptfunktionen ausprobiert. Einmal llPursue, was ein Objekt dazu bringt, einem anderen Objekt oder Avatar zu folgen. Und zum anderen llEvade, was genau das Gegenteil bewirkt, nämlich vor einem Objekt oder Avatar davonlaufen.

Vor allem die "Flucht"-Funktion verleiht einem stinknormalen Prim den Anschein echter Intelligenz. Da das Ganze auf Fotos nicht richtig rüberkommt, habe ich ein kleines Video erstellt. Darin sieht man ganz gut, wie kinderleicht es ist, die Grundfunktionen des Pathfinding einfach in ein Skriptfenster zu kopieren und es selbst mal zu testen. Unter dem Video habe ich die beiden kleinen Skripte eingefügt, die ich verwendet habe. Wie man sieht, wird für diese Funktion wirklich wenig Code benötigt. Und bitte keine Kommentare zur Kameraführung. Das war eine 10-Minuten Spontanaktion (mit einer Stunde Nacharbeit im Movie Maker). :o)

Maddy und die Pfadfinder:


>> Hier klicken für HD-Auflösung im neuem Fenster

Für alle, denen es im Video zu schnell geht, hier die Schritte als Kurzliste:
  • Voraussetzung ist ein Login im Beta Grid (in Gridliste unter "Aditi" geführt)
  • Würfel (oder anderes Prim) rezzen
  • Unter "Eigenschaften" die "Art der physischen Form" auf "Konvexe Hülle" umstellen
  • Unter "Inhalt" ein neues Skript erstellen
  • Skript öffnen, vorgegebenen Code löschen und Beispielskript einfügen (siehe unten)
  • Skript speichern
  • Optional: Eindeutigen Namen für das Prim vergeben
  • Optional: Textur und Farbe des Prims ändern, weil Plywood ist langweilig ;-)
  • Baufenster schließen
  • Einmal das bearbeitete Prim anklicken

Mit diesem Skript lässt sich ein Objekt dazu bringen, dem Avatar zu folgen, der es anklickt.

default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_DESIRED_SPEED, 20.0]);
    }
 
    touch_start(integer total_number)
    {
        llPursue(llDetectedKey(0), [PURSUIT_OFFSET, 
                 <-2.0, 0.0, 0.0>, PURSUIT_FUZZ_FACTOR, 0.2]);
    }
}

Quelle: LL Wiki - llPursue

Mit diesem Skript lässt sich ein Objekt dazu bringen, sich vor dem Avatar zu verstecken, der es anklickt.

default
{
    state_entry()
    {
        llCreateCharacter([CHARACTER_DESIRED_SPEED, 20.0]);
    }
 
    touch_start(integer total_number)
    {
        llEvade(llDetectedKey(0), []);
    }
}

Quelle: LL Wiki - llEvade

Das sind die vier Testregionen im Beta Grid (Link erst anklicken, wenn man mit dem Viewer bereits eingeloggt ist):

>> Teleport zur Sandbox PathTest1
>> Teleport zur Sandbox PathTest2
>> Teleport zur Sandbox PathTest3
>> Teleport zur Sandbox PathTest4

Die Sandbox mit dem Schachbrettmuster ist die PathTest4. Ich werde mir, wenn ich Zeit habe, auch noch ein paar der anderen Pathfinding Funktionen ansehen. Interessant wird es, wenn man dann mit etwas Code die verschiedenen Möglichkeiten kombiniert. Dann könnte man, je nach Koordinate innerhalb einer Region, das selbe Objekt entweder angreifen oder davonlaufen lassen. Oder ein patrouillierendes Objekt ergreift bei Annäherung zuerst die Flucht, um dann überraschend zurückzukehren.

Es bleibt auf jeden Fall interessant, was intelligente Ersteller damit alles machen werden.

Weitere Links:
>> LL-Wiki: Pathfinding in Second Life - (englisch)
>> LL-Wiki: Pathfinding Alpha - (generelle Information / englisch)
>> Blogpost von LL zur Einführung von Pathfinding

Samstag, 10. Dezember 2011

llSetKeyframedMotion: Neue LSL-Funktion mit vielen Möglichkeiten

Am 15. November wurde die neue LSL-Funktion llSetKeyframedMotion im gesamten Main Grid von Second Life eingeführt. Dieser Skriptaufruf ermöglicht es, in einer einzigen Skriptzeile ein Objekt so zu bewegen, dass es mehrere Richtungsänderungen durchführt. Aber auch einfache Punkt-zu-Punkt Bewegungen sind damit leicht machbar. Die Bewegungen werden dabei sehr weich berechnet, ganz im Gegensatz zum alten llSetPos und llSetRot.

Als Option können dem llSetKeyframedMotion-Aufruf noch einige Steuerbefehle angehängt werden, wie etwa das Ausführen als Schleife (KFM_LOOP), der Vor- und Zurück-Modus (KFM_PING_PONG), oder in umgekehrter Abfolge (KFM_REVERSE). Die Wegstrecken innerhalb des gleichen Aufrufs, sind auch über Regionsgrenzen hinweg möglich. Das ist zum Beispiel wichtig für Tour-Vehikel, die mehrere Regionen in ihrer Route haben.

Da das hier doch etwas länger wird, geht es weiter nach dem Link: