Upload
stefan-beyer
View
218
Download
0
Embed Size (px)
Citation preview
26.04.23 Magnus Brockschmidt - 15.1.2003 1
Vortrag über Animationen zum Seminar Computergrafik WS 02/03
Animiation: Bewegung von Objekten zeit- oder ereignisgesteuert realistischer Eindruck
15. Januar 2003 Magnus Brockschmidt 2
Animation Interpolatoren Bewegung starrer Körper Pfadanimation Gelenkstrukturen / Skelettanimation Inverse Kinematik Forward Kinematik Lippensynchrone
Charakteranimation
15. Januar 2003 Magnus Brockschmidt 3
Interpolatoren Gegensatz zu Motion Capture:
keine aufgezeichnete Bewegung Einfügen von Schlüsselbildern Bewegungsfunktion durch
Schlüsselbilder (z.B. Beziér) Mehr Schlüsselbilder
realistischer Eindruck
15. Januar 2003 Magnus Brockschmidt 4
Lineare Interpolation Sinnvoll, da feste Framerate Interpolationsfunktion abhängig
von der verstrichenen Zeit Einfaches Beispiel:
Öffnen einer Schiebetür Objekte als starre Körper
15. Januar 2003 Magnus Brockschmidt 5
Interpolationsfunktion der Zeit Position des i-ten Punktes zur Zeit t
P(i,t) = ( P(i,te) – P(i,ta))
ta die Anfangszeit te die Endzeit dt die Zeit zwischen zwei Bildern
dt ta - te
_____
15. Januar 2003 Magnus Brockschmidt 6
Verstrichene Zeit dt dt < 10 ms Bild nicht zeigen Vermeidung von Rundungsfehlern Zu viele Bilder pro Sekunde dt > 1 s Bild nicht zeigen ?
15. Januar 2003 Magnus Brockschmidt 7
Animation durch Interpolation
Darstellung durch 2 Punktlisten 1. Liste Anfangspunkte 2. Liste Endpunkte
15. Januar 2003 Magnus Brockschmidt 8
Komplexere Interpolation
Viele Schlüsselbilder großer Aufwand
15. Januar 2003 Magnus Brockschmidt 9
Interpolationsprobleme Transformation durch Matrix
Weitere Bewegungen (z.B. Rotation)
M(t) =
0 0 0 tx (t) 0 0 0 ty (t) 0 0 0 tz (t) 0 0 0 1
M(t) =
a13 (t) a13 (t) a13 (t) tx (t) a13 (t) a13 (t) a13 (t) ty (t) a13 (t) a13 (t) a13 (t) tz (t) a13 (t) a13 (t) a13 (t) 1
15. Januar 2003 Magnus Brockschmidt 10
Beliebige Bewegungen
Problem 1: Nicht zwangsweise in Orthonormalform
Folge: Verformung des Körpers Problem 2:
Alle Animationen in einer Matrix Folge: kein Zugriff auf einzelne BewegungLösungsansatz: Pfadanimation
M(t) =
a13 (t) a13 (t) a13 (t) tx (t) a13 (t) a13 (t) a13 (t) ty (t) a13 (t) a13 (t) a13 (t) tz (t) a13 (t) a13 (t) a13 (t) 1
15. Januar 2003 Magnus Brockschmidt 11
Pfadanimation
Ursprünglich: Reine Offline Entwicklung Teilung in 2 Bereiche Offline: Definition des Pfades Laufzeit: Berechnung der
Transformationen an Hand des Pfades
15. Januar 2003 Magnus Brockschmidt 12
Pfad und Charakteristische Kurve
Weitere Teilung in 2 Kurven (z.B. Bézier) Pfad, der Bewegung definiert Charakteristische Kurve
(z.B. Wippen des Oberkörpers beim Laufen,
Geschwindigkeitsverlauf) Vorteil: Zugriff auf einzelne Bewegungen
15. Januar 2003 Magnus Brockschmidt 13
Beispiel Pfadanimation
Q(u) Pfad in 3D (durch Interfaceansicht) V(u) Geschwindigkeitsverlauf
15. Januar 2003 Magnus Brockschmidt 14
Bestimmung der Transformationen
1. Für ein Bild zu Zeit t finde Abstand s von V(u). 2. Gehe s Einheiten an dem Pfad Q(u) entlang um das
zugehörige u zu finden. 3. Substituiere dieses u in den Gleichungen Q(u) um die
Position des Objektes (x, y, z) zu finden. 4. Füge Objekt in die Szene ein.
15. Januar 2003 Magnus Brockschmidt 15
Reparametrisierung
V(u) parametrisierter Schreibweise V(t,s) t und s Funktionen von u Aus 1. Schritt: nenne Wert abhängig von u: T(u) T(u) durch Substituierung von u mit s=S(u) an Q(u) abtragen Pfad abh. von u und nicht s Neu substituieren (Reparametrisierung) u=T-1(t) und u=Q-1(s) Annähernugsmethode
15. Januar 2003 Magnus Brockschmidt 16
Annäherung durch Aufsummierung
Teilen des Pfades in möglichst kleine Abschnitte u1,u2, ...
merken der Abstände l1 ,l2 , ... in einer Tabelle (aufsummiert)
Finde u bezüglich s Nehme nächsten aus Tabelle Anzahl der Abschnitte Genauigkeit des Wertes
15. Januar 2003 Magnus Brockschmidt 17
Reparametrisierung an Hand eines Verfolgungsjagdbeispiels
Unterschied zwischen kleiner und großer Geschwindigkeit des grauen Punktes, der von Auto verfolgt wird
15. Januar 2003 Magnus Brockschmidt 18
Rotation bei Interpolatoren Zur Direktionsänderung eines Objektes R (1 ,2 ,3 )
Beispiele: Einfache Rotation: R (0 ,0 ,0 ), ... , R (π t ,0 ,0), ... , R (π ,0 ,0 ) Doppelte Rotation: R (0 ,0 ,0 ), ... , R (0 ,π t ,π t), ... , R (0 ,π , π )
Komplexere Drehungen mit Hilfe von Quaternionen
15. Januar 2003 Magnus Brockschmidt 19
Gelenkstrukturen / Skelettanimation
Bestehen allerdings aus starren Elementen Verbunden über Gelenke Frei bewegliche Enden Gelenke geben ein Bewegungsfeld der Enden und
Elemente an
Ebenfalls: Gegensatz zu Motion Capture kein Aufzeichnen
Generieren einer Körperbewegung
Körper nicht starr
15. Januar 2003 Magnus Brockschmidt 20
Menschliches Bein
3 Elemente (Oberschenkel, Unterschenkel, Fuß) 3 Gelenke (Hüfte, Knie, Hacke) Oberschenkel und Unterschenkel sind fest Fuß frei (Strukturende) Vordefinierte Bereiche (z.B. Knie nur Winkel in eine
Richtung)
15. Januar 2003 Magnus Brockschmidt 21
Forward Kinematik (FK)
naiver Ansatz: Bewegungen hierarchisch die Elemente hinunterwandern
Bewegungen zum Gehen: Hüftgelenk Hüfte ganz oben Translation der Hüfte Verbundene Hüft Knie Bewegung um Hüftgelenk
Rotation als Winkelfunktion der Zeit Also wenn der Unterschenkel starr „Goose Step“, Deswegen:
Knie Winkel-Rotation Kniegelenk Winkel verändern
15. Januar 2003 Magnus Brockschmidt 22
Inverse Kinematik (IK)
High-Level Ansatz: Definition von Ausgangs- und Endsituation
IK: Bildung eines Scripts Transformationen durch
auslesen des Scripts
15. Januar 2003 Magnus Brockschmidt 23
FK versus IK
Kompliziertere Struktur FK: mehr Aufwand IK: schwierigerer Ansatz, eventuell unmöglich
Möglichkeiten für den Modellierer FK: elementarere Bewegungen IK: begrenzte Anzahl an Bewegungsabläufen
Komplexität für den Modellierer FK: prinzipiell simple IK: nur Stellung der Endpunkte
15. Januar 2003 Magnus Brockschmidt 24
Walzer und Ballett Vorgegebene Schrittfolge Unwichtig ob Schritt zu gleicher
Position gleiche Bewegung Inverse Kinematik
Jede Bewegung eigene Charakteristik Wenig wiederholende
Schrittfolgen Forward Kinematik
15. Januar 2003 Magnus Brockschmidt 25
Einfache Gelenkstruktur 2 Elemente und 2 Gelenke Ein Ende frei Bewegungsraum in einer Ebene Bewegung des freien Endes:
X sei Bewegungsfunktion des Endes sei Vektor, der Stellung der Struktur angibt X abhängig von Längen und Winkeln:
X = ( l1 cos1 + l2 cos(1+2) ,
l1sin1 + l2 sin(1+2) )
X = f( )
15. Januar 2003 Magnus Brockschmidt 26
Gelenkstruktur in FK/IK FK: naiverweise
= ( 1 , 2 ) IK: Lösung folgender Gleichung
= -1 ( X )
arccos( x² + y² - l1² - l2² ) 2 l1 l2
Daraus folgt: 2 =
1 = arctan (
)
__________________________________-(l2 sin2 ) x + ( l1 + l2 cos2 ) y (l2 sin2 ) y + ( l1 + l2 cos2 ) x
____________________________
15. Januar 2003 Magnus Brockschmidt 27
Lippensynchrone Charakteranimation
Ziel: Nachahmung der Lippenbewegung Einerseits bei Originalaufnahme Ebenfalls bei synthetischer Stimme
Pulse3D Beispielpräsentation im Web
15. Januar 2003 Magnus Brockschmidt 28
Realitätsbezug Wenn Offline Animation
möglich Zurückgreifen auf
Motion Capture Zukunft
Entwicklung von AI Spiele Robotik