14.06.2015Magnus Brockschmidt - 15.1.20031 Vortrag über Animationen zum Seminar Computergrafik WS...

Preview:

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

Recommended