Interpolacja ruchu (grafika komputerowa)
Interpolacja ruchu to technika programowania w animacji postaci opartej na danych , która tworzy przejścia między przykładowymi ruchami i ekstrapoluje nowe ruchy.
Przykładowe ruchy są często tworzone za pomocą klatek kluczowych lub przechwytywania ruchu . Jednak kadrowanie kluczowe jest pracochłonne i brakuje mu różnorodności ruchu, a oba procesy skutkują ruchami, których zmiana jest czasochłonna. Interpolacja ruchu zapewnia znacznie szybszą alternatywę dla tworzenia nowych ruchów za pomocą tych samych środków.
Realizacja
Dawniej popularna metoda symulacji ruchu postaci polegała na zapamiętywaniu różnych ruchów i wybieraniu najbardziej odpowiedniego w czasie wykonywania. Niestety ograniczenia w przechowywaniu skutkowały powtarzalnymi lub niedoskonałymi wynikami. Zamiast tego, przy pewnych dodatkowych obliczeniach, nowe, pożądane ruchy mogą być tworzone przez interpolację wcześniej istniejących, podobnych ruchów. Korzystając z interpolacji, ruchy mogą być generowane w czasie rzeczywistym, przy jednoczesnym zachowaniu realistycznych właściwości przykładowych ruchów.
Symulowana postać
Symulowana figura, która jest manipulowana w celu pokazania ruchu, jest reprezentowana jako hierarchiczne połączenie sztywnych połączeń za pomocą połączeń. Korzeń hierarchii ma sześć stopni swobody: trzy stopnie dla położenia figury i trzy stopnie dla jej obrotu. Taka reprezentacja jest wystarczająca, ponieważ znając tylko stopnie dla każdego stawu i pierwiastek, figurę można odtworzyć w dowolnym momencie.
Interpolacja
Załóżmy, że dla pożądanego ruchu „spacer” istnieją dwa przykładowe ruchy, które przekazują różne nastroje (np. radość i smutek). Radosny ruch chodu może charakteryzować się wyprostowaną postawą symulowanej postaci, a jej chód jest energiczny i szybki. Smutny ruch chodu może charakteryzować się przygarbioną postawą i powolnym chodem.
Aby interpolować te ruchy, muszą one mieć postać kanoniczną. Oznacza to, że ich czasy muszą być uogólnione, aby znaczące zdarzenia strukturalne zachodziły jednocześnie. Aby rozwinąć, dwa przykładowe ruchy chodu mogą zmieniać się w czasie, ponieważ radosny spacer jest opisywany jako szybki, a smutny jako wolny. Jednak skalowanie ich długości czasu, aby były równoważne, nie jest wystarczające do interpolacji. Dzieje się tak, ponieważ powolny ruch chodu nie jest po prostu przedłużeniem radosnego ruchu chodu. Te ruchy muszą mieć klatki cyklu chodu , tak aby w danym ogólnym czasie oba ruchy tworzyły kontakt punktowy do przodu.
W przypadku neutralnego ruchu chodzenia, który nie jest ani (lub równie) szczęśliwy, ani smutny, do interpolacji wykorzystywane są odpowiednie stopnie swobody dla istniejących ruchów. W rezultacie tworzona jest krotka stopni swobody dla symulowanej postaci poruszającej się neutralnym ruchem w czasie ogólnym. Alternatywnie, gdyby nastrój symulowanej postaci zmieniał się w czasie rzeczywistym z wesołego na smutny, na interpolację większy wpływ miałby radosny ruch chodu na początku przejścia. Pod koniec przejścia na interpolację większy wpływ będzie miał smutny ruch chodzenia, dopóki postać po prostu nie będzie chodzić smutnym ruchem chodzenia.
Przejście między dwoma typami ruchów (np. ruchem chodu i ruchem biegu) obejmuje interpolację prędkości. Zapewnia to płynne przejście. Przejście między dwoma typami ruchów wymaga albo ogólnych ram czasowych, w których oba rodzaje ruchów mają wspólne podobieństwa strukturalne, albo serii ruchów z okresami przejściowymi, które ostatecznie osiągają pożądany typ ruchu.
Kinematyka odwrotna
Kinematyka odwrotna może być używana z interpolacją ruchu w czasie rzeczywistym do tworzenia interakcji ze środowiskiem wirtualnym. Jak wspomniano powyżej, niezbędny jest proces opisywania przykładowych ruchów z istotnymi zdarzeniami strukturalnymi. Te adnotacje pozwalają na reparametryzację czasu na czas ogólny. Jednak te adnotacje można również wykorzystać do określenia okresów, w których należy zastosować kinematykę odwrotną. Na przykład podczas kontaktu punktu do przodu w cyklu chodu należy włączyć wiązania kinematyczne, tak aby stopa symulowanej figury znajdowała się równo z podłogą środowiska wirtualnego.
Wyszukiwanie odpowiednich wniosków
W przypadku dużych zestawów przykładowych wniosków proces znajdowania odpowiednich wyników nie jest trywialny. Dlatego opracowano metody wyodrębniania ruchów w oparciu o logiczne podobieństwa i łączenia tych wyników w ciągłą, rozgałęzioną przestrzeń ruchów, którą można przeszukiwać.