This forum uses cookies
This forum makes use of cookies to store your login information if you are registered, and your last visit if you are not. Cookies are small text documents stored on your computer; the cookies set by this forum can only be used on this website and pose no security risk. Cookies on this forum also track the specific topics you have read and when you last read them. Please confirm whether you accept or reject these cookies being set.

A cookie will be stored in your browser regardless of choice to prevent you being asked this question again. You will be able to change your cookie settings at any time using the link in the footer.

Animationen selber erstellen mit QAVIMATOR
#1
In diesem Beitrag wideme ich mich der Erstellung von eigenen Animationen mit QAvimator.
Stand ist 08.07.2021


Hallo zusammen,

wer eigene Animationen erstellen will, für den gab es schon lange das relative einfach zu bedienende Tool QAvimator. Es ist kostenlos und schlicht, reicht aber für viele Anwendungsfälle.

Der Download war nur lange Zeit nicht mehr beim Ersteller verfügbar. Nun habe ich eine aktualisierte (nicht Bento) Version gefunden, die leichter zu bedinen ist.

https://bitbucket.org/QAvimator_Team/qav...downloads/

Stand 08072021 findet sich da die Version 1.1.450 für Linux und Windows


Begriffsklärung:
 
Für Animationen lege ich folgende Begriffe fest, ums sie im Artikel eindeutig benennen zu können:
 
Animation: bezeichnet das gesamte Gebilde an Informationen die in einer Opensim / SL Datei zum Einsatz kommen. Eine Animation wird im Viewer per Aufruf, oder per Script gestartet und gestoppt.
 
Timeline:  Zeitstrahl aus statischen Einzelpositionen. Bezeichnet den gesamten Zeitlichen Ablauf der Animation in Einzelschritten. Zwischen den statischen Einzelschritten erfolgt automatisch eine Interpolation.
 
Pose /Frame: Einzelschritt einer Timeline / eines Zeitstrahls
 
Rigg: Skelett / Knochengerüst mit hierarchischer Abhängigkeit und dazwischenliegenden Gelenken.



Grundlagen zu Animationen:

Animationen dienen der gezielten Bewegung von geriggten Avataren und NPCs.
Dabei spielt das jeweilige Rigg eine entscheidende Rolle.
 
Es gibt 2 in OpenSim und SL verwendete Riggs für humane Avatare (speziell geriggte Tiere und Animesh lasse ich außen vor).
 
Dies ist das „alte“ Standard Rigg sowie das neuere BENTO Rigg.
Letzteres ist eine kompatible Erweiterung des Standard Riggs, die zusätzliche Beweglichkeiten im Bereich Gesicht, Hände, und Gliedmaßen für Fantasy Figuren und 4-Beiner.
 
Für Humane Avatare werden aber nur die Hände und das Gesicht eine Rolle spielen.


Hierarchische Abhängigkeit:
Beispiel: Wenn man den Oberarm bewegt, werden Unterarm, Hand und Finger mitbewegt, ohne jedoch ihre relative Position und Drehung in Bezug zum Oberarm zu verändern.
 
 
Beweglichkeit:
Jedem Gelenk sind minimal und maximal Werte für Drehbarkeit zugeordnet damit es nicht zu unnatürlichen Verrenkungen kommt. Beispiel: Ellenbogen läßt sich nur bis zur Streckung nach hinten drehen.
 
 
Absolute Positionierung:
Bezogen auf das oben gesagte gibt es eine „Root“ – also den Master Knochen.
Dieser ist der: „hip„ also das Becken. Bewegt oder rotiert man dieses, so bewegt sich der gesamte Avatar.
 
 
Dieser weist eine Besonderheit auf: Man kann zusätzlich den gesamten Avatar in 3 Achsen verschieben – also den Ursprung oder auch Nullpunkt festlegen.
Da man diese Funktion auch in der Zeitachse nutzt, ist damit zum Beispiel eine Animation erzeugbar bei der der Avatar auf einen Baum klettert und wieder herab kommt, und zwar ohne dafür per Script den Avatar tatsächlich bewegen zu müssen. Faktisch wird der Avatar also wo anders dargestellt als er sich laut Simulator Position befindet.

Gleichzeitig ist der Ursprung auch essentiell um Störungen beim Umschalten auf andere Animationen zu vermeiden.
 
Damit man zwischen verschiedenen Animationen störungsfrei umschalten kann sind folgende Voraussetzungen nötig:

1. Ursprung, Startpose und Schlußpose müssen in allen beteiligten Animationen gleich sein. Dies werden wir später dadurch erreichen das wir Animationsgruppen bauen bei denen die zweite und die vorletzte Pose innerhalb aller Animationen gleich ist, und die Schleife zwischen diesen 2 Posen läuft.
2. Das Umschalten muss zum richtigen Zeitpunkt synchronisiert stattfinden wenn alte und neue Animation genau diese identischen Posen spielen.
 
 
Wer also zufallsmäßig zwischen verschiedenen Animationen umschalten will, wie das zum Beispiel bei einem Tanzball der Fall wäre, sollte lauter gleich lange Animationen nehmen und den Ursprung bei 0,0,0 belassen. Die vorgesehene Bewegung des Avatars erzeugt man dann per Bewegungs-Script, was eine Animations-Umschalten ohne Störung zulässt.
 
Damit kann man zum Beispiel einen Eiskunstlauf mit Animationswechel scripten.
 
 
Addition von Animation:
 
Der Simulator erlaubt mehre Animationen additiv zu spielen.
Was zum Bespiel erlaubt „nicht Bento sitz Animationen“ mit „Bento Hand und Fingeranimationen„ zu verknüpfen.
Auch reine Bento Animationen lassen sich überlagern:
Dies wird auch standardmäßig gemacht: AOs kombinieren Lauf / Sitz / Tanzanimationen mit Augenblinzeln oder Gesichtsanimation.
 
Dabei hängt das Ergebnis von der Priorität von Animationen ab.
Zudem sollen nicht die gleichen Gelenke angesprochen werden. Je nach Aufrufzeitpunkt und Priorität kann es komische Ergebnisse geben.
 
Außerdem gibt es unschöne Verrenkungen wenn am Ende einer Animation vergessen wird alle gemachten Änderungen wieder auf den Ursprungs Zustand zu stellen. Wer kennt das nicht das  plötzlich der Kopf auf dem Hals das rotieren anfängt.

 
Priorität von Animationen
 
Die Priorität dient der Überlagerung von Animationen- ist also nur relevant wenn 2 Animationen gleichzeitig gespielt werden.
Die Priorität einer Animation wird während des Upload Vorgangs im Viewer eingestellt.
Zulässige Werte 1 bis 4. Wobei 4 ist die Höchste Prio ist.
Werden mehrere Posen gleichzeitig abgespielt setzt sich die höchste Prio durch.

Anwendung: Prio 3 Stehen und Prio4 Glas heben und trinken. Ergebnis: Der stehende Avatar trinkt zwischendurch.



Technischer Aufbau von Animationen:

Eine Animation besteht (immer) aus 3 Teilen.

Der erste Frame ist die T-Pose, die nicht angezeigt wird, ebenso ist der letzte Frame der Animation die gleiche T-Pose.

Die Frames dazwischen enthalten den eigentliche Nutzdatenbereich der Animation.

Dieser Nutzdatenbereich kann unterschiedlich aussehen.

Einmalig laufende Animation:

Zunächst kommt es darauf an ob die Animation nur einmalig abzuspielen ist, oder als endlos Schleife laufen soll.

Beispiel einer Animation mit 10 Frames die nur einmalig laufen soll:

   

Exportsetting in diesem Falle: Loop IN 1, Loop Out 10. Die Daten spielen hier beim Export keine Rolle.
Import Setting: Loop nicht ankreuzen.
 
Endlos Schleifen Animation:
 
Bei einfachen Schleifen nutzt man die gesamten Nutzdaten als Schleife:
 
Beispiel einer Animation mit einer 8Frame Schleife ohne Vorspann und Abspann:

   

Bei Schleifen sollen der letzte Loopframe (hier 9) als logischer Vorgänger des 2. Frame (hier 2) passen damit es keine Störungen gibt. Behelfsweise macht man Frame 2 und 9 identisch.

Exportsetting in diesem Falle: Loop IN 2, Loop Out 9
Diese müssen beim Import exakt so eingegeben werden.
Loop ankreuzen.


Endlos Schleifen Animation mit Vorspann und Abspann:

Nur bei endlos Schleifen gibt es einen optionalen Vorspann und einen optionalen Abspann. Der Vorspann dient um aus der Start T-Pose in eine Ausgangslage für die Schleife zu kommen. Entsprechend dient der Abspann diese Lage wieder zu verlassen und zur T-Pose zurück zu kehren.
Praxisbeispiel: Eine Skydiver Loop Animation bei der der Avatar mit der Vorderseite nach unten fliegt.

Ablauftechnisch gesehen habe wir es mit 3 separaten Animationsteilen zu tun, wobei Vorspann und Abspann einer „einmalig laufenden“ Animation gleichkommen. Inmitten dieser ist die Schleife/Loop dann eingebettet.

Beispiel einer Animation mit einer 8Frame Schleife mit 4 Frames Vorspann und 4 Frames Abspann:

   


Erläuterung:

Bei Start der Animation wird zunächst in Frame 1 die T-Pose (ausgeblendet) gespielt um den AVA in eine definierte Grundposition zu bringen. Dieses Frame wird NICHT angezeigt!

Mit dem Frame 2 fängt der Simulator an die Anzeige sichtbar zu machen.
In den Frames 2 bis 5 ist eine kurze einmalig gespielte Sequenz die den AVA in die gewünschte Ausgangs Position vom Schleifenbeginn bringt (Frame 6)

Nun wird die eigentliche Schleife (Frames 6 bis 13) mehrfach durchlaufen- so lange bis ein Befehl abgesetzt wird die Animation zu beenden.

Nach diesem Abbruch Kommando werden die noch ausstehenden Frames bis 13 fertig gespielt, danach wird der Abspann (Frames 14 bis 17) einmalig durchlaufen, und im Anschluß (wieder ausgeblendet) die T-Pose abgespielt.


Animations Lauflänge:

Die Animations-Lauflänge ist laut mehrerer Quellen in SL auf 60 Sekunden beschränkt. Die Zeit ergibt sich aus Anzahl gespielter Frames und der eingestellten FPS Rate. Aber dies Bedarf einer Überprüfung, besonders in Opensim.
Die einzige Stelle wo diese Beschränkung zuschlagen könnte ist der Upload im Simulator.

Reicht einen die 60 Sekunden nicht so gibt es an der gleichen Quelle ein Tool „BHV Splitter“ um Animationen in 60 Sekunden Blöcke aufzuteilen.


Framezahl:

Die Anzahl der Frames einer Animation kann man in QAvimator unten rechts einstellen, hinter dem „of“.
Dies muss man unbedingt vor der Arbeit machen, da es sonst zu unschönen Verschiebuns Effekten kommen kann.
In der Realität richtet sich die Frameanzahl nach der gewünschten Laufzeit der zu erstellenden Animation.

Dabei spielt die Framerate eine wichtige Rolle damit es nicht ruckt.
15 fps sind absolutes Minimum, gut sind 30fps.
Mehr bringt nur was wenn hochwertige Grafikkarten tatsächlich eine höhere Bildrate darstellen.
Über 60fps sind sinnlos da dies vom Menschen nicht mehr als Rucken wahrgenommen wird.

Eine typische 30 Sekunden Animation hat bei 30fps also 30 * 30 + 2 Frames. 
Die 2 extra Frames sind die oben beschriebenen Start und Stopframes.


EXPORT aus QAvimator:

Loop in und Loop Out sowie FPS in QAvimator (rechte untere Ecke) einstellen und testen.
Klappt das Vorschauen mit dem Play Button in QAvimator, so gehts an den Export.
Die Daten sich heraus notieren, weil sie für den Import gebraucht werden, dabei auch die Gesamt Framezahl aufschreiben

Zunächst save as datei.bhv machen, dann wird Export to Secondlife freigeschalten. ( ist ein Bug der Version 0.1.1.450)


IMPORT im SIMULATOR:

im Viewer mit  (Bauen- Hochladen- Animation) zum Upload gehen.

Hier sind folgende Einstellungen nun wichtig:

Priorität:  zulässige Werte 1 bis 4. Wobei 4 ist die Höchste Prio ist.

Der richtige Wert ist abhängig von der geplanten Nutzung.

Macht man zum Beispiel eine Basispose die von jedem Sitzposer oder AO überschreiben werden soll, so ist 1 richtig.
Für AO macht 2 oder 3 Sinn.
Mache ich einen Sitzposer der AOs überschreiben soll muss ich zwangsweise hoch gehen auf 3 bis 4.

Das Problem dabei: Es gibt keine Regel nach den sich jeder richtet. Somit kommt es immer wieder dazu das man die AO ausziehen muss um Sitzposer oder Tänze wirken zu lassen.

Ideal wäre ein einheitliches System:
1 Basisanimation
2 AO
3 Poser Grundanimation( Sitzen, Tanzen, ..)
4 Bento Gesichtsanimation und Handanimation.

Schleife: wird genutzt wenn die Animation mehr als einmal in Folge abgespielt werden soll. 
Dann müssen die Animationen aber auch so wie oben beschrieben erstellt werden.

Ein (frame) - in meinem Beispliel: 1.    dies ist die nicht in der Schleife liegende Einführungs Sequenz. Minimal ist dies der 1. Frame der T-Pose.

Aus (frame) - in meinem Beispiel: wird von dem angezeigten Wert eines abgezogen. Also N-1, für die T-Pose am Ende

Der Rest kann so belassen werden.

Mit dem Kamera Knopf kann man die Sequenz vorschauen- und falls sie ruckt in QAvimator verbessern.

Probiert erst was Einfaches aus: Zum Beispiel nur Kopf Nicken.

Was manchmal zum Fehler führt, ist wenn Gelenken kein Start und Endwert zugewiesen wird.
Dann ergeben sich Situationen wo die falsche vorangehende Posen zu Verrenkungen des Bodys führen weil Zufallswerte abgespielt werden.

Also immer schön alles am Anfang initialisieren, und am Ende auf den Wert zurückstellen.

Eine gute deutschsprachige Anleitung für die Einstellung der Gelenke findet sich hier:

http://almut-brunswick.de/20_QAvimator/qav_index.html

Daher verzichte ich darauf dieses hier auch zu schreiben


Übersicht Bedienelemente in Qavimator:

ANSICHT ÄNDERN:
Scrollen mit Mausrad: ZOOM IN/OUT der Ansicht
Bei gedrückter linker Maustaste Maus bewegen:   Drehen und Wenden des AVAs
F9: SICHT von RECHTS OBEN
F10: SICHT von LINKS OBEN
F11: SICHT von HINTEN
F12: SICHT von OBEN
ESCAPE:   SICHT von VORNE und Sprung in Grundskalierung. Gleiche Wirkung hat der hellblaue Reset Knopf ganz Rechts in der Obere Leiste

TIMELINE BEARBEITEN:
1POS: Sprung zum Anfang der Timeline
Ende: Sprung zum Ende der Timeline
BILD AUF/ BILD AB: Bewegung auf der Timeline um einen Frame
Cursortasten AUF/AB: Bewegung auf der Timeline um einen Frame
Cursortasten LINKS/RECHTS: Bewegung auf der Timeline um einen Frame
Auswählen von Bearbeitungs-Punkten in der Timline einzeln durch linke Maustaste.

KNOTEN BEARBEITEN:
Mehrfachauswahl mit gedrückter String Taste
Auswahl Kopieren mit EDIT-COPY  oder Control+C
Auswahl Einfügen mit EDIT-PASTE  oder Control+V

AUSWAHL:
Mit Linker Maustaste auf zu wählendes Körperteil klicken aktiviert dieses, und schaltet im rechten Seitenbereich auf die Parameter dieses Körperteils, in Bezug zum aktuellen Timecode Frame.

WERTE EINGEBEN:
zunächst Frame auswählen für den der Wert gelten soll,
danach das Körperteil anklicken das eingestellt werden soll.
Nun erfolgt die Anzeige der Manipulationsachsen in 3 Farben (Rot, Grün Blau)
Rechts im Kontext Menü können nun in den Feldern die Parameter eingestellt werden.



Viel Spaß beim Animationen machen


Tron


LINKS:


Link zum download QAvimator für Standard RIGG :  https://bitbucket.org/QAvimator_Team/qav...downloads/

Die Bento Version scheint (stand 07.2021) verschwunden zu sein. Ich hätte sie aber noch….

Englische Anleitung:   https://qavimator.bitbucket.io

Deutsche Anleitung:   http://almut-brunswick.de/20_QAvimator/qav_index.html
Zitieren
#2
Hallo Tron Mcp,

willkommen im Forum!

Handshake

Animation ist keine leichte Aufgabe. Dein Beitrag ist vom Gesamtumfang, Inhalt und Lernaufgabe schon gewaltig. Für mich selbst ist der Eigenbau einer Animation komplettes Neuland.

Gern möchte ich mich diesbezüglich auch einarbeiten! Bis zu einen kompletten Bericht incl. Animation werden wir noch etwas warten müssen.

Habe die Version für Linux geladen:

   

Coffee
Zitieren
#3
Wow Tron,
super. Das führe ich mir auch mal in Ruhe zu Gemüte. Alles, was uns hier unabhängig von anderen Erstellern macht, ist mehr als gut.
Liebe Grüße
Loru
Zitieren
#4
Klasse. Danke, aber irgendwie tut es die Mac Version nicht und will eine BVH und lim datei haben. Es öffnet erst gar nicht das Programm.
Mein Zuhause ist hier:
decadence.ddns.net:8002:big city life
decadence.ddns.net:8002:decadence
Zitieren
#5
Hallo Cheryl,

Nun das ist eine Opensource Software die wohl zum Start von Sl geschrieben wurde, sprich älter. Das Projekt scheint auch nur auf der Arbeit einer einzigen Person zu beruhen. Wie fast alle Projekte dieser Art werden zunächst Opensource Betriebssystemem unterstützt- also Linux.
Das es auch was für Windows gibt ist schon ein netter Zug. In den beiden Systemem kenne ich mich auch aus, aber mit Apple habe ich keine Berührungspunkte.

Was dir aber fehlt sind die Vorlagedateien die in der Windows Verison als Unterordner bei der Installation mitkommen.
Die enthalten je eine Default .bhv Datei für Männchen und Weibchen sowie die Limits (lim Datei) für die Gelenke- damit du deinen Kopf nicht dreimal herumdrehen kannst. Es sind auch noch weitere Vorlage Elemente in dem Ordner, zum Beispiel ein Würfel um den Ava für Sitzposen drauf zu setzen. Sicher reicht es aus die aus der Windows Version zu kopieren und bei dir an die richtige Stelle einzusetzten. Aber wie die bei deinem Betriebssystem integriert werden, kann ich nicht sagen. In Windows hätte ich das als Arbeitsverzeichnis für den Programmaufruf angegeben.

Wenn alles klemmt, bleibt dir die Option ne Virtualisierung aufzuspielen um darin Linux oder Windows zu fahren.

Es gibt auch andere Lösungen für Animationen. Heutzutage macht man das am schönsten mit Motion Capture Anzügen + Positionstrackern + Software.
Aber das braucht einiges Geld und Wissen für den Einstieg. Und dafür brauchst eh noch einen zusätzlichen performanten Rechner. In der Arbeit machen wir das mit einer AMD Threadripper Pro 16 Core Workstation und NV GTX3080 GPU.

Es gibt auch viele weitere kommerzielle Lösungen die aber genau so händisch zu bedienen sind wie QAvimator. Da ist dann kein Vorteil ersichtlich.
Kostenlos wäre noch Blender.
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste