Animationen in OpenSim, Teil 2: „Sitzanimationen“

Avatare müssen ja so einiges können und brauchen dafür auch, wie ich hier schon geschrieben habe, so einiges an Animation. Ein besonderer Fall ist dabei das Sitzen. Es fing damit an, daß man einen Avatar einfach auf ein Sitzmöbel oder ein anderes Objekt pflanzen können wollte, und es sollte gut aussehen. Aber es führte letztlich dazu, daß das Sitzen vielfach zweckentfremdet wurde, damit Avatare mit ihrer Umgebung, also mit Objekten oder anderen Avataren, animiert interagieren können.

Ohne Hilfsmittel

Wie gesagt: Am Anfang war das ganz einfache Sitzen. Man kann Avatare auf so ziemlich alle Objekte setzen. Im allgemeinen starten sie dann die (bzw. mit Animation Override eventuell eine) Animation, die den Avatar in eine sitzende Position bringt.

Das ist in seiner Funktionsweise allerdings noch ausgelegt auf die guten alten Prim-Zeiten. Die Position des Avatars bestimmt sich aus dessen Shape und der Größe des Objekts, auf dem er sitzt, und die Ausrichtung des Avatars aus der des Objekts. Wer also Sitzmöbel aus mehreren Prims zusammenbaute, mußte aufpassen: Die Sitzfläche mußte korrekt ausgerichtet sein und beim Zusammensetzen des Möbels als letztes ausgewählt werden.

Animationen in Objekten

So startete der Avatar also immer die Standard-Sitzanimation oder eine der Sitzanimationen im gerade aktiven AO. Das war aber doof, wenn der Avatar im Sitzen irgendetwas Spezifisches tun sollte, z. B. Klavier spielen.

Hier kam nun erstmals Scripting zum Zuge: Es entstanden Skripte, die zusammen mit einer Animation in ein Objekt eingebaut wurden und die Kontrolle über den Avatar übernahmen, der sich auf das jeweilige Objekt setzte. Ein Skript, eine Animation, schon hatte man viel mehr Möglichkeiten. Ausgefuchstere Skripte haben in vorprogrammierten Abständen mehrere Skripte nacheinander durchgeschaltet.

Diese Vorgehensweise hatte noch einen weiteren Vorteil: Über das Skript konnte die Position des Avatars relativ zum Objekt eingestellt werden. Nun wurden auch Sculpt-Sitzmöbel als solche nutzbar, und auch dem Sitzen auf Mesh stand nichts mehr im Wege.

Soweit ich weiß, wurde dies erst mit OpenSim 0.7.3 möglich.

Line Dancing, Poseballs & Co.

Dieses Prinzip wurde alsbald noch weitergedacht. Wer sagte denn, daß Avatare damit nur tatsächlich im wahrsten Sinne des Wortes sitzen können sollten? Im Prinzip konnte man in solche Objekte doch jede x-beliebige Animation einbauen. Dann hätte man gleich noch mehr Möglichkeiten.

So entstanden immer neue Anwendungsgebiete. Beispielsweise konnten zum ersten Mal animierte Fahrstühle gebaut werden, die auch wirklich Avatare mitnehmen konnten bzw. zunächst natürlich nur jeweils einen: Er wurde einfach „auf“ die Fahrstuhlkabine „gesetzt“, nur eben mit einer Stehanimation, und bewegte sich dann mit der Kabine mit.

Die häufigste Verwendung dieser Sitzskripte war der Poseball. Im Prinzip ist das eine kleine Kugel, die man irgendwo verbaut, auf die sich ein Avatar setzen kann, um eine gewisse Animation oder eine ganze Reihe davon zu starten. Wenn ein Avatar auf einem Poseball sitzt – auch das ist Teil des Poseball-Skripts –, wird der Poseball unsichtbar, um nach Benutzung wieder sichtbar zu werden.

Die Anwendungsgebiete waren vielfältig: Hinter Tresen wurden Poseballs verbaut, damit ein Avatar sich als Barkeeper betätigen konnte. Hinter DJ-Pulten wurden Poseballs verbaut, damit man dem jeweiligen Party-DJ seine oder ihre Tätigkeit auch ansehen konnte. Poseballs wurden zum Posieren für Fotos oder zum Animieren von Avataren hinter Musikinstrumenten verwendet. Paaranimationen wurden mit jeweils einem blauen und einem rosa Poseball möglich, die entsprechend zueinander angeordnet wurden.

Auch Tanzen wurde einfacher. Bis dahin mußte man Tanzanimationen noch per Hand starten oder zumindest dafür ein Menü oder HUD starten. Nun konnte man Paartänze mit jeweils zwei Poseballs realisieren. Und ein naher Verwandter der Poseballs sind die Tanzpads: von der Funktionsweise her identisch, aber rund, flach und dutzendweise – je nach Platz natürlich – pro Tanzfläche verteilt. Außerdem bleiben sie dauerhaft sichtbar.

Multi-Love-Pose (MLP)

Poseballs hatten aber drei gravierende Nachteile. Erstens waren sie immer sichtbar und verschandelten einem damit optisch die Sim. Wer Fotos machen wollte, mußte immer erst vorher rumlaufen und die Poseballs entweder unsichtbar machen oder vorübergehend ganz rausschmeißen. Zweitens lagen sie immer an derselben Stelle, ob das jetzt paßte oder nicht. Verschieben konnte sie nur, wem sie gehörten, und auch das nur durch Bearbeiten. Und drittens konnten sie immer nur dieselben Animationen in derselben Reihenfolge, meist sogar nur eine einzige.

Irgendwann haben die Leute nämlich angefangen, mit Poseballs außer Tanzen auch noch andere Sachen darzustellen, die Paare miteinander machen konnten, vor allem im Bett. Es war besser als nichts, aber nicht wesentlich besser. Es gab meist nur zwei Poseballs, womöglich jeweils nur mit einer Animation drin. Die Bewegungen hatten im Endeffekt noch mehr nur symbolischen Charakter als heute, und Vorspiel mußte man im Chat „emoten“.

Als Lösung dieser Probleme entstand in den späten 2000ern MLP, kurz für Multi-Love-Pose, eine Erfindung des Second-Life-Users Miffy Fluffy. Daß es vor allem eine Lösung für den vorigen Absatz war, sollte anhand des Namen auf der Hand liegen. Zunächst gab es MLP nur in Second Life und nur in-world. Aber es war unter die extrem lockere BSD-Lizenz gestellt worden und konnte problemlos nach OpenSim gebracht werden. Es dauerte allerdings eine Weile, bis es sich dort einigermaßen auszubreiten begann, weil statische Poseballs in der Handhabung einfacher waren.

MLP funktioniert so, daß das System ganz zuerst ein Menü öffnet, über das man eine Position oder einen Satz davon auswählt. Dann erscheinen ein oder mehrere Poseballs, auf die man sich setzen kann. Wer neuere Systeme kennt, muß sich erst daran gewöhnen, daß man erst das Menü per Hand öffnet und sich erst dann hinsetzen kann. Noch dazu werden dann alle Avatare, die sich auf die Poseballs setzen, gefragt, ob das System sie animieren darf oder nicht. Und am Ende muß man alles per Hand wieder schließen, damit der oder die Kugeln wieder verschwinden.

Revolutionär war nicht nur, daß man die Poseballs nur sieht, wenn man sie braucht. Dazu kam, daß über das Menü voreingestellte Kombination aus Poseball-Positionen und eingebauten Animationen aufgerufen werden können. Eine weitere Besonderheit von MLP ist, daß es je nach gewählter Animation Objekte rezzen und derezzen kann, z. B. ein Buch, wenn ein Avatar in eine Leseposition gebracht wird.

Gerade aus heutiger Sicht nachteilig ist neben dem immensen serverseitigen Leistungsbedarf von MLP die komplizierte Handhabung. Das System startet nicht, wenn man sich auf ein Möbelstück setzt, sondern man muß es erst händisch starten und sich erst dann auf den bzw. einen daraufhin erschienenen Poseball setzen. Die Positionen inklusive Winkel sind einstellbar, aber nur im Zusammenspiel mit der Menüsteuerung und der viewerseitigen Bearbeiten-Funktion – und nur durch den Eigentümer. Aber MLP war erst der Anfang von Möbeln mit variablen Sexanimationen, und man ging bezüglich Verwendungszweck vermutlich davon aus, daß solche Möbel eh vornehmlich an privaten Wohnorten in festen Partnerschaften verwendet würden. An öffentliches Sexmobiliar war noch nicht zu denken.

Im Hypergrid findet man trotz allem heute noch Mobiliar mit MLP, und zwar sowohl in Möbelläden auf Freebie-Sims als auch – so widersinnig das auch ist – öffentlich nutzbar. Linda Kellie, die ihre Simdeko generell möglichst funktional gestaltete, stattete sowohl Prim-Möbel als auch Clutterfly-Mesh-Objekte mit MLP aus. Die Super Sex Bed Mattress arbeitet auch mit MLP und wird manchmal der Einfachheit halber in ungeskriptete Betten eingebaut. Es ist davon auszugehen, daß viele, die so etwas tun, die Matratze selbst nie getestet haben.

Paramour Multi-Animation Controller (PMAC)

PMAC (Github-Mirror) kam im Frühjahr 2015 auf. Entwickelt wurde es von der 2019 verstorbenen Skripting-Großmeisterin Áine Caoimhe (wie der Name ausgesprochen wird, erkläre ich euch vielleicht ein anderes Mal). Die kennt man ja ganz besonders für ihre zumeist golden glitzernde „Tanzkugel“, die Clubmaster Dance Machine, die erstmals gleichermaßen Einzel- wie auch Paartänzern individuelles, menügesteuertes Tanzen ermöglichte und heutzutage fast überall hängt, wo getanzt wird. Die basiert nämlich auch auf PMAC, genau wie Áines neuer Line-Dancing-Boden, der nur noch ein einzelnes Objekt ist, auf dem dutzendweise Avatare synchron zueinander tanzen können. Zusammen mit dem Clubmaster hat er Tanzpads weitgehend verdrängt.

Wie es zu der Zeit mit Animationssteuerung in Second Life jenseits von MLP aussah, gerade in Möbeln, kann ich nicht sagen. So durch und durch amerikanisch und kommerziell, wie Second Life ist, vermute ich, daß jeder Möbelhersteller, der nicht mit MLP herumkrücken wollte, seine eigene proprietäre und streng geheime Lösung für seine teuren Payware-Möbel hatte. Das dürfte auch erklären, warum auf den vielen Sitzmöbel, die schon vor einigen Jahren aus Second Life gecopybottet wurden, überwiegend gar nicht gesessen werden kann: Das ginge nur mit einem Skript, da ist aber keins eingebaut, weil man das ursprünglich vorhandene Skript nicht mitkopieren konnte.

In dieser Hinsicht war PMAC eine Riesensensation und meines Erachtens etwas, was OpenSim – oder zumindest das Hypergrid – Second Life ganz klar voraus hatte: PMAC war nicht nur kostenlos, sondern quelloffen, und es war von vornherein unter eine freie Lizenz gestellt worden. Jeder konnte diese Technologie nutzen – und sie wurde auch fleißig genutzt.

Was PMAC so sensationell machte, war, daß es fast keine Poseballs mehr brauchte. Weder waren irgendwo Kugeln angebracht, die sichtbar waren, sofern keiner drauf saß, noch mußte man diese Kugeln erst per Menü generieren und sich dann draufpflanzen. Man setzt sich auf etwas drauf, und PMAC tritt praktisch sofort in Aktion. Natürlich kann es auch über Menüs gesteuert werden, und wenn mehrere Avatare involviert sind, kann jeder die Animationen gleichzeitig steuern. Noch dazu startet PMAC selbsttätig, sobald man sich auf ein Objekt setzt. Last but not least hat PMAC einen geringeren Leistungsbedarf als MLP.

So etwas wie Poseballs gibt es eigentlich nur noch beim Clubmaster: jeweils eine glitzernde rosafarbene und blaue Kugel, weil die Ansteuerung von Tanzpaaren und die Positionierung der beiden Avatare zueinander anders nicht lösbar war. Sie müssen dafür ja auf irgendetwas „sitzen“. Das heißt, PMAC verwendet weiterhin unsichtbare Objekte zum Positionieren der Avatare, setzt diese aber automatisch auf diese Objekte. Sichtbar werden die Objekte erst dann, wenn die Position der Avatare eingestellt werden muß – und das kann wie in MLP weiterhin nur der Eigentümer und auch das nur mit Viewer-Hausmitteln.

Ein weiteres neues Feature von PMAC ist, Animationen mehrerer Avatare zueinander synchronisieren zu können. Falls sie nicht gleichzeitig gestartet sein sollten, gibt es eine Schaltfläche, mit der alle Animationen zeitgleich neu gestartet werden können.

Obendrein arbeitet PMAC nicht nur mit tatsächlichen Avataren, sondern auch mit NPCs – es kann sogar eingebaute NPCs rezzen und derezzen. Das bekannteste Beispiel dafür ist wieder der Clubmaster: Wer keinen Tanzpartner hat, kann sich einfach einen rezzen.

Natürlich wäre es einfach gewesen, den Code von PMAC zu kopieren und nach Second Life mitzunehmen. Da hätte er aber nicht funktioniert. Das liegt daran, daß PMAC nicht auf der Second-Life-Skriptsprache LSL basiert, sondern auf der mächtigeren OpenSim-Skriptsprache OSSL. LSL läuft auch in OpenSim, aber OSSL läuft umgekehrt nicht in Second Life.

AVsitter

AVsitter erscheint mir wie eine Art Versuch, PMAC mit den eingeschränkten Möglichkeiten von LSL in Second Life nachzubauen, um auch dort MLP durch etwas ohne Poseballs ersetzen zu können. Es ist meines Wissens tatsächlich jünger als PMAC. Seit dem 31. Juli 2017 ist AVsitter quelloffen und steht unter der Mozilla Public License, um auch in kommerziellen Produkten verwendet werden zu können.

Bei der Entwicklung hatte man OpenSim übrigens nicht im Sinn – vielleicht auch, weil OpenSim ja schon PMAC hatte. Dennoch ist es in OpenSim vorhanden. Ich sehe da zwei Einfallstore: Zum einen haben Leute wie Purple Swan aus dem Quellcode Referenzimplementationen für OpenSim gebaut, so z. B. auch „Sitzkissen“ oder „Matratzen“, die man unsichtbar in ungeskriptete Möbel einbauen kann. Zum anderen wurden wohl auch AVsitter-Möbel aus Second Life ohne ihre Skripte gecopybottet und dann in OpenSim mit den sowieso immer ziemlich gleichen AVsitter-Skripten nachgerüstet.

Ein Nachteil von AVsitter gegenüber PMAC ist, daß immer nur ein Avatar die Kontrolle über die Animationen hat. Demgegenüber stehen die Vorteile, daß die Position aller Avatare ohne irgendwelche Edit-Krücken direkt per Menü justierbar ist und AVsitter als bislang einziges System darauf eingehen kann, ob ein Avatar männlich oder weiblich ist.

Obwohl OpenSim seine eigenen Animationssteuerungen hat, hat AVsitter seinen Platz: An einigen Orten werden auf Wohn- oder Geschäftssims Parzellen vermietet, in denen OSSL abgeschaltet ist, PMAC also nicht funktioniert. Damit soll die Serverauslastung reduziert werden. Das liegt nicht etwa daran, daß AVsitter weniger Serverleistung braucht als PMAC, sondern damit soll verhindert werden, daß sich jeder zweite einen Clubmaster aufhängt. Außerdem war AVsitter vor dem Erscheinen von SFposer die einzige Animationssteuerung mit Positionseinstellung per Menü für alle Avatare.

SFposer

Zu guter Letzt sei noch SFposer erwähnt. Dahinter steckt Satyr Aeon, Betreiber von OpenSimWorld und Schöpfer vor allem der SatyrFarm. Von der SatyrFarm kommt auch das SF, aber mit der eigentlichen SatyrFarm hat SFposer nichts zu tun. Es ist erst 2020 erschienen und bisher nur in einer Beta-Version verfügbar und steht unter der GNU GPL 3.0.

SFposer basiert auf PMAC, braucht also auch wieder OSSL, und verwendet dasselbe Notecard-Format wie PMAC. Existierende PMAC-Objekte können also ziemlich einfach nach SFposer konvertiert werden. Gleichzeitig ist SFposer aber ein ganzes Stück mächtiger. So unterstützt es bis zu 99 Avatare, was es interessant für Tanzsysteme macht. Wie MLP kann auch SFposer Objekte rezzen – aber es kann obendrein sowohl vorübergehend Objekte an den Avatar hängen als auch dem Avatar Objekte geben. SFposer kann die Mimik von Avataren über entsprechend ausgestattete Animationen hinaus mit den Standard-Gesichtsausdrücken steuern. Es kann nicht nur genau wie PMAC NPCs verwenden und rezzen, sondern weil es optional fernsteuerbar und automatisierbar ist, kann es auch als reines NPC-Animationssystem verwendet werden.

Einen Vorzug, den SFposer sonst nur mit AVsitter gemeinsam hat, ist, daß auch hier jeder die Position seines Avatars selbst steuern kann. Dies ist erstmals mit den Vorzügen von MLP und PMAC zusammen möglich.

Für Objektbauer und -modifizierer hat SFposer gleichzeitig den Vorteil, sehr mächtig zu sein, und den, dennoch relativ einfach in der Handhabung zu sein, insbesondere im Vergleich mit AVsitter. Außerdem stammt es aus OpenSim selbst – auch wenn MLP und AVsitter aufgrund ihrer freien Lizenzen nicht illegal importiert wurden – und kann daher auf den erweiterten Befehlswortschatz von OSSL zurückgreifen. Noch dazu bietet Satyr Online-Konverter von MLP, PMAC und AVsitter nach SFposer an. Nachteilig ist allenfalls, daß durch die Lizensierung von SFposer unter der GPL in Objekten eingebaute SFposer-Skripte zwingend les- und bearbeitbar sein müssen, no-modify also nicht erlaubt ist.

Für Endnutzer hat SFposer bis auf seine noch geringe Ausbreitung nur den Nachteil, daß es genau wie PMAC nicht da verwendet werden kann, wo OSSL nicht erlaubt ist, insbesondere also auf gewissen Mietparzellen.

Von den genannten Systemen hat nur SFposer eine größere Zukunft, zumindest in OpenSim. Angesichts der anderen Systeme ist MLP hoffnungslos veraltet. AVsitter scheint „fertig“ zu sein; es wird nicht mehr weiterentwickelt. Die Entwicklung von PMAC wiederum kam zum Erliegen mit dem Ableben der Erfinderin. SFposer bekommt auch nicht oft Updates, aber das bisher letzte kam im Sommer 2021, und es ist davon auszugehen, daß SFposer keine ewige Beta-Version bleibt. Noch dazu kann SFposer sich seit Anfang 2021 sogar mittels eines Update-Skript selbst aktualisieren.

#OpenSim #FürAnfänger #FürFortgeschrittene #FürSecondLifeUmsteiger #Animationen