• Nie Znaleziono Wyników

Parametryzacja animacji schematycznych

4. Wykorzystanie reguł rozmytych w animacji ruchu postaci

4.1. Dane uczące

4.1.1. Parametryzacja animacji schematycznych

Dane o ruchu szkieletu postaci zorganizowane są w sposób hierarchiczny, co przedstawiono na rys. 4.5. Szkielet podzielony jest na kości. Do kaŜdej z kości przypisana jest macierz danych zawierająca informacje o zmianach w czasie kaŜdego ze stopni swobody kości (np. obrotów wokół wszystkich trzech osi). Dane obrotu lub innego przekształcenia reprezentowane są krzywymi interpolacyjnymi ruchu z klatkami kluczowymi. Te z kolei dzielone są na segmenty, które rozpoczynają się i kończą fazami zatrzymania, między którymi występuje co najmniej jedna faza główna ruchu.

t

A f.g.

a.

segment 1 segment 2 a.

p.

p.

f.g.

Rys. 4.5. Hierarchiczny podział animacji na: kości, kanały, segmenty i fazy ruchu

Po wyznaczeniu segmentów i ich typów (typ I z jedną fazą głównego ruchu, typ II z większą liczbą faz głównego ruchu), dla kaŜdego segmentu przeprowadzana jest parametryzacja ruchu. W trakcie parametryzacji tworzone są wektory parametrów A, które opisują animacje schematyczne. Sposób wyznaczania wektorów A opisany jest poniŜej.

W pierwszym etapie animacja składa się z dowolnej liczby póz wybranych z biblioteki lub zaprojektowanych przez animatora, rozmieszczonych w czasie. ZałoŜono, Ŝe animator realizuje wskazania reŜysera, który opisał czynność, jej czas trwania, kolejność póz, interakcje z innymi obiektami lub aktorami. Klatki kluczowe takiej animacji przedstawione są na rys. 4.6. Widoczne na rysunku odcinki łączące klatki kluczowe symbolizują fazy zatrzymania, w trakcie których wartości wszystkich parametrów ruchu pozostają stałe.

Rys. 4.6. Klatki animacji wejściowej na osi czasu. Kolorem pomiędzy klatkami zaznaczono fazy, w których parametry zachowują stałą wartość – nastąpiło

zatrzymanie w pozie

W animacji schematycznej wyróŜniane są następujące fazy:

- faza główna, faza ruchu właściwego – wykonanie głównej, charakterystycznej czynności, np. skok, rzut, wyprostowanie ręki, obrót głowy. Jest to przejście między dwiema sąsiednimi pozami,

- faza zatrzymania – po ruchu, gdy osiągnięta zostaje poza docelowa, następuje jej podtrzymanie przez zadany okres czasu, będący długością fazy zatrzymania.

Na potrzeby dalszego toku rozprawy przyjęto następujące załoŜenia:

– sekwencja ruchu S wybranej kości szkieletu i wybranego przekształcenia7, podzielona jest na m segmentów Si:

S={S1, S2, ..., Si, ..., Sm} (4.1)

– segmenty typu I zawierają następujące dane ruchu:

Si=[(t1, a1), (t2, a2), (t3, a3), (t4, a4)] (4.2) gdzie para (ti, ai) oznacza połoŜenie i-tej klatki kluczowej segmentu w czasie i wartość parametru ruchu w niej zapisaną. Przykładowy segment przedstawiony jest na rys. 4.7.

7 Dla uproszczenia zapisu nie jest podawane, której kości dotyczy ten segment, ani jakiego przekształcenia.

Rys. 4.7. Segment animacji Si=[(t1, a1), (t2, a2), (t3, a3), (t4, a4)] typu I

Na podstawie danych ruchu segmentu Si dokonywana jest parametryzacja segmentu i wyznaczane są wartości parametrów głównej fazy ruchu (rys. 4.8):

Ai=[Ai, Vi, ti], (4.3)

gdzie:

Ai=a3–a2 – zmiana wartości parametru w fazie głównej, np. amplituda obrotu, ti=t3–t2 – długość fazy głównej,

Vi=Ai/ti – prędkość zmian parametru w fazie głównej.

Rys. 4.8. Sposób wyznaczania parametrów Ai, ti w segmencie ruchu typu I

Zaproponowane parametry obliczane są dla kaŜdego przekształcenia geometrycznego (rotacja, przesunięcie) dla kaŜdej kości szkieletu. Są to parametry głównych faz ruchu, oznaczane wektorem A. W toku wzbogacania animacji na podstawie tych parametrów wyznaczane są wartości faz antycypacji i przerzutu, które są dodawane do segmentu animacji.

Z kolei dla segmentów typu II, na potrzeby wyznaczenia antycypacji, parametryzowana jest pierwsza faza główna w segmencie podobnie, jak dla segmentów typu I, natomiast na potrzeby wyznaczenia przerzutu parametryzowana jest ostatnia faza główna w segmencie.

t A

t1 t2 t3 t4

a1, 2

a3, 4

Ai

ti

t A

t1 t2 t3 t4

a1, 2

a3, 4

Segment Si typu II zapisać moŜna jako:

Si=[(t1, a1), (t2, a2), (t3, a3).... (tj-2, a j-2), (tj-1, a j-1), (tj, aj)] (4.4) gdzie pary:

(t1, a1) – początek fazy zatrzymania,

(t2, a2) – koniec fazy zatrzymania i początek pierwszej fazy głównej ruchu, (t3, a3) – koniec pierwszej fazy głównej ruchu,

(tj-2, a j-2) – początek ostatniej fazy głównej ruchu,

(tj-1, a j-1) – koniec ostatniej fazy głównej ruchu i początek kończącej segment fazy zatrzymania,

(tj, aj) – koniec fazy zatrzymania kończącej segment.

Wektory parametrów faz głównych w segmencie typu II oznaczane są przez AiStart, AiEnd, czyli parametry pierwszej i ostatniej fazy głównej odpowiednio. Wyznaczane są podobnie, jak dla segmentów typu I, a mianowicie:

Ai Start=[Ai Start, Vi Start, ti Start], (4.5)

Na rys. 4.9 i 4.10 pokazano odpowiednio segment typu II opisany równaniem (4.4) i sposób wyznaczania parametrów Ai Start, ti Start, Ai End, ti End faz głównych.

Rys. 4.9. Segment animacji typu II:

Si=[(t1, a1), (t2, a2), (t3, a3).... (tj-2, a j-2), (tj-1, a j-1), (tj, aj)]

Rys. 4.10. Parametry faz głównych: Ai Start, ti Start, Ai End, ti End w segmencie ruchu typu II

Parametry w wektorze Ai = {Ai, Vi, ti}w praktyce przyjmują ograniczone wartości:

– Ai ∈ <0; π> (maksymalnie π rad, gdy Ai oznacza amplitudę obrotu8 wokół osi X, Y lub Z). Ograniczenie wartości tego parametru wynika głównie z biomechaniki ludzkiego układu motorycznego, którego większość stawów pozwala na ograniczony obrót 180°, czyli π rad. Natomiast animacje obrotów o kąt większy, np. 360° obrót ręki w stawie barkowym, realizowane są w kilku odcinkach, z wykorzystaniem klatek kluczowych, pomiędzy którymi znajdują się zmiany o kąt 180° lub mniejszy.

– ti ∈ <0; 50> (maksymalnie 50 klatek, czyli ponad 2 sekundy w animacji z 24 klatkami na sekundę). Ograniczenie to wynika z praktyki animacji, mianowicie ruch przejścia między pozami trwający ponad 2 sekundy jest nienaturalnie długi. W animacji postaci tak długi ruch w trakcie pojedynczej fazy nie występuje. Właściwie tylko animacje zjawisk fizycznych, np. spadania, lotu, mogą posiadać dłuŜsze fazy główne ruchu.

– Vi ∈ <0; 0,4> (maksymalnie 0,4 rad na klatkę lub 0,4 jednostki przesunięcia na klatkę). Większe wartości prędkości zwykle w animacji nie występują, np. obrót z prędkością 0,4 rad/klatkę przy 24 klatkach na sekundę daje półtora obrotu wokół własnej osi w ciągu sekundy filmu, a tak szybki ruch jest juŜ postrzegany jako nieciągły, pojawia się efekt strobowania, czyli percepcji osobnych obrazów, nie składających się w ciągły ruch. NiepoŜądane strobowanie występuje takŜe w przypadku szybkich przesunięć animowanego obiektu.

8 Ai w niektórych przypadkach moŜe równieŜ oznaczać amplitudę przesunięcia, jednakŜe dla szkieletu postaci wykorzystywanego w badaniach przesunięcia w zasadzie nie występują – animacja odbywa się na zasadzie kinematyki prostej, w której przesunięciom podlega tylko kość główna hierarchii kości, miednica, pozostałe zaś są tylko obracane. Opisywane w rozprawie postępowanie jest jednakŜe poprawne takŜe dla translacji i skalowania, choć operacje te nie są w niniejszej rozprawie przywoływane.

A

Jeśli parametry wejściowe przyjmą wartości większe od załoŜonych powyŜej, to zostają one w systemie wnioskowania zastąpione przyjętymi wartościami maksymalnymi.

Wyznaczane w etapach kolejnych funkcje przynaleŜności zaprojektowane będą dla tychŜe zakresów zmienności parametrów wektora A.

Na etapie wnioskowania na podstawie parametrów wektorów Ai dla segmentów typu I i II wyznaczane są parametry faz dodatkowych: antycypacji, przerzutu i zatrzymania, które wstawiane są następnie do animacji wynikowej.