12 prac animatora w gamedevie
Koło Naukowe Twórców Gier Polygon

Dwanaście prac animatora
w projektowaniu gier komputerowych

Czy dwanaście żelaznych zasad animacji filmowej obowiązuje również w projektowaniu gier komputerowych?

Grafika tytułowa publikacji
Wprowadzenie

Każdy, kto zetknął się z tworzeniem animacji, na pewno słyszał o słynnych dwunastu żelaznych zasadach animacji — the Principles of Animation. Sformułowali je weterani studia Disneya, Frank Thomas i Ollie Johnston, i opublikowali w książce The Illusion of Life w 1981 roku. Do dziś edukację animatora rozpoczyna się właśnie od tego zagadnienia.

Reguły te są ponadczasowe, ponieważ nie dotyczą stylizacji kojarzonej ze studiem Disneya i nie narzucają żadnych trendów w wyglądzie animowanych postaci. Dotyczą ludzkiej percepcji i pomagają stworzyć animację w taki sposób, aby nasz wzrok bez trudu łączył ze sobą pojedyncze rysunki, dając złudzenie płynnego ruchu.

Pytanie, na które odpowiada ten tekst, brzmi: czy zasady stworzone z myślą o filmie obowiązują również w tworzeniu animacji do gier komputerowych — miejsca, w którym o kadrze, tempie i kontroli nad postacią decyduje nie reżyser, lecz gracz? Każdą z dwunastu zasad sprawdzamy tu w konfrontacji z realnymi narzędziami i mechanizmami Unreal Engine.

01

Zgniatanie i rozciąganie

Squash and Stretch

W klasycznej animacji 2D i filmowym 3D animator ma niemal absolutną swobodę w deformowaniu kształtu postaci — pod jednym warunkiem: musi zachować jej całkowitą objętość. Gdy postać rozpłaszcza się o ziemię, staje się niższa, ale szersza. Nic nie znika i nic nie przybywa, tylko zmienia kształt. Dzięki temu widz odczytuje w obiekcie elastyczność i widzi siły, które na niego działają — a iluzja pędu i mocy uderzenia staje się dużo silniejsza.

W praktyce · Unreal Engine 5.5+

Gry o stylizowanej oprawie graficznej mogą w prosty sposób zyskać wiarygodnie działające deformacje obiektów, tworzone za pomocą deformatorów Control Rig, takich jak Sculpt, Lattice Deformer czy Camera Space Lattice.

Miejsce na przykład filmowy [przykład filmowy — własne postacie animowane w ten sposób]
02

Antycypacja

Anticipation — przygotowanie do ruchu

Antycypacja to przygotowanie widza na nadchodzącą akcję — ugięcie kolan i zamach przed oddaniem ciosu czy skokiem. Bez niej ruch w animacji 2D i 3D wygląda mechanicznie, płasko i bez mocy. Efekt ten świadomie wykorzystywano już na początku XX wieku, między innymi w filmie Podróż na Księżyc.

Antycypacja zapowiada nadchodzący ruch.

Przygotowanie do ruchu nie musi polegać wyłącznie na zmianie położenia — równie dobrze może odbywać się przez rotację i skalę. Świadczy o tym choćby pozorny morfing dwóch różniących się od siebie obiektów, rozpisany na zaledwie sześciu klatkach kluczowych: bez antycypacji wygląda jak zwykłe przejście, z antycypacją nabiera ciężaru i intencji.

Miejsce na przykład animacji [Przykład — pozorny morfing obiektów za pomocą 6 klatek kluczowych]

W grach komputerowych, gdzie responsywność sterowania jest priorytetem, antycypację trzeba świadomie ograniczać. Gracz oczekuje natychmiastowej reakcji na swój ruch na padzie — dłuższy cykl przygotowania zostanie odebrany jako opóźnienie sterowania i zepsuje rozgrywkę. Dlatego przygotowanie do ruchu skraca się w animacji postaci gracza, a wydłuża w animacji przeciwników sterowanych przez sztuczną inteligencję (NPC) — dzięki temu ich intencje pozostają czytelne i dają graczowi czas na podjęcie własnej decyzji. Wiąże się z tym kolejna zasada.

03

Inscenizacja i kadrowanie

Staging

W animacji filmowej inscenizacja to w całości decyzja reżysera: światło, kompozycja, prowadzenie wzroku widza dokładnie tam, gdzie tego chce. W grze to gracz decyduje, w którą stronę skieruje spojrzenie. Twórca gry nie narzuci już kadru, na który gracz ma patrzeć — może jednak zaprojektować postać tak, by pozostawała rozpoznawalna niezależnie od kąta, z jakiego się na nią patrzy. Przykładem jest Team Fortress, gdzie inscenizację przeniesiono z kompozycji kadru na poziom projektu postaci.

Sylwetki postaci — rozpoznawalność projektu niezależnie od kąta patrzenia
Waga sylwetki w projektowaniu postaci do gier — rozpoznawalność niezależnie od kąta patrzenia.

Ciekawym narzędziem dla animatorów jest wtyczka Odyssey firmy Praxinos. Wcześniej firma ta oferowała osobny produkt do storyboardów — EPOS — ale Odyssey ma znacznie szersze zastosowanie. To kompletny zestaw narzędzi 2D działający bezpośrednio w Unreal Engine: pozwala rysować, malować i animować klatka po klatce wewnątrz edytora, obsługuje warstwy rastrowe i wektorowe, onion skinning oraz automatyczne klatki pośrednie, a także adnotacje i szkice nanoszone wprost na sceny 3D. Dla inscenizacji najciekawsza jest możliwość budowania storyboardu w samym silniku, z gotowym poziomem gry jako tłem, i zamiany go w animatik lub sekwencję (Level Sequence). Dzięki temu kadrowanie planuje się od razu w docelowej przestrzeni — zamiast szkicować je osobno i dopiero potem przenosić do gry. Wtyczka jest darmowa, dostępna na Fab dla Unreal Engine 5.6+.

Odyssey (Praxinos) w akcji — tworzenie storyboardu bezpośrednio w silniku, na tle poziomu gry. (ok. 6 min)

W grze inscenizacja przestała być domeną wyłącznie animatora — wymaga współpracy z level designerem oraz artystami odpowiedzialnymi za dźwięk, światło i efekty specjalne. Cała sztuka i wypełnienie tej zasady polega na kierowaniu uwagą gracza przy pomocy dostępnych narzędzi.

04

Straight Ahead Action i Pose to Pose

dwie techniki animowania

W tradycyjnej animacji technika „straight ahead” polega na rysowaniu akcji klatka po klatce, bez wcześniej wyznaczonego celu — to najbardziej spontaniczna z technik. Animuje się w ten sposób długie włosy, odstające elementy ubioru i tym podobne: ruch wychodzi płynny i organiczny, choć trudny do opanowania, bo animator odkrywa go dopiero w miarę posuwania się naprzód. „Pose to pose” jest jej przeciwieństwem: najpierw powstają główne pozy kluczowe, a dopiero potem systematycznie wypełnia się przerwy między nimi (in-betweens — co często robi asystent animatora). Kosztem spontaniczności zyskuje się pełną kontrolę nad sceną.

Miejsce na przykład animacji [Przykład animacji]

Przez dziesięciolecia animacja w grach była cyfrowym odpowiednikiem tego drugiego podejścia. Maszyna stanów (State Machine) rozstrzygała, jak postać ma przejść ze stanu A, na przykład biegu, do stanu B, na przykład skoku — za pomocą zdefiniowanych przejść (crossfade) między stanami, a każdy stan mógł dodatkowo wewnętrznie mieszać animacje przez blend space. Problem w tym, że wraz z rozwojem projektu taka struktura robiła się coraz trudniejsza do opanowania. Każdy nowy ruch mnożył liczbę możliwych przejść.

Motion Matching odwraca tę logikę i jest bliższy właśnie technice „straight ahead” — tyle że napędza ją nie animator, lecz dane animacji. W Unreal Engine mechanizm ten działa we wtyczce Pose Search, stanowiącej alternatywę dla maszyn stanów i blend space’ów: dobiera potrzebne do animacji pozy z bazy danych bez konieczności ręcznego rozpisywania logiki przejść i ich blendowania. Zamiast mapować przejścia, animator dostarcza silnikowi jak największą bazę animacji. W trakcie rozgrywki, w czasie rzeczywistym, silnik buduje zapytanie złożone z dwóch części: z pożądanej trajektorii oraz z aktualnej pozy bohatera — która noga dotyka ziemi, jakie są wektory ruchu i prędkości poszczególnych kości — a następnie przeszukuje bazę w poszukiwaniu klatki, która najwierniej kontynuuje bieżący ruch.

Miejsce na przykład animowanej postaci [przykład animowanej postaci]

Ta swoboda ma jednak swoją cenę. System jest mało odporny na wady w szkielecie: wymaga spójnej orientacji kości, poprawnie ustawionej osi „przodu” postaci i zgodności pozy referencyjnej między szkieletem a animacjami. Rozjazd na którymś z tych poziomów potrafi przekłamać kierunek ruchu. Dlatego, paradoksalnie, najbardziej „organiczna” i pozornie spontaniczna z technik animacji tradycyjnej w grach jest zarazem tą, która najmniej wybacza błędy u podstaw.

05

Podążanie za ruchem i zazębianie ruchu

Follow Through and Overlapping Action

Nawet w animacji tradycyjnej to fizyka w czystej postaci: im masa postaci większa, tym więcej energii potrzeba, aby ją ruszyć z miejsca lub zatrzymać. Nic nie może zatrzymać się od razu, chyba że uderzy w ścianę — ale wtedy wkracza już squash and stretch, zasada numer jeden. Zwykła obserwacja wystarczy, by zauważyć, że gdy postać gwałtownie zatrzymuje się po biegu, elementy takie jak włosy, fragmenty ubrania, a nawet klatka piersiowa kontynuują ruch siłą rozpędu i wyhamowują z niewielkim opóźnieniem względem reszty ciała.

Przeniesiona wprost z filmu do gry, zasada ta zderza się z tym samym problemem co antycypacja: oczekiwanie na dokończenie animacji może zostać poczytane za brak responsywności.

W praktyce · Kawaii Physics

Dla elementów takich jak włosy, spódnice czy długie uszy z pomocą przychodzi wtyczka Kawaii Physics, która działa na pojedynczym węźle AnimGraph, bez pełnej symulacji fizycznej silnika.

Miejsce na ilustrację filmową [Ilustracja filmowa]

Użycie wtyczki jest tanie obliczeniowo, a efekt wystarczająco przekonujący, by rozwiązanie to znalazło zastosowanie w komercyjnych tytułach takich jak Stellar Blade czy Wuthering Waves. Jej ograniczeniem jest reagowanie wyłącznie na ruch i rotację szkieletu postaci, a nie na fizyczne przeszkody w świecie ani ciosy przeciwnika.

W praktyce · Physics Control (UE 5.1+)

Dla reakcji obejmujących całe kończyny potrzebna jest wtyczka Physics Control, dostępna od Unreal Engine 5.1 i istotnie dopracowana w wersji 5.5: pozwala animatorowi zdefiniować dla wybranych kości fizyczne napędy typu spring-damper (parametry strength i damping) i regulować wagę blendu między symulacją Chaos a sztywnym szkieletem.

Miejsce na ilustrację filmową z UE [Ilustracja filmowa z UE]
06

Akceleracja i hamowanie

Slow In and Slow Out

Podobnie jak w poprzedniej zasadzie, punktem wyjścia jest fakt, że żaden organizm ani maszyna nie osiąga pełnej prędkości w ułamku sekundy ani nie zatrzymuje się w miejscu jak wryty. Stopniowe wchodzenie i wychodzenie z ruchu buduje wrażenie masy.

Miejsce na ilustrację [Ilustracja — animacja liniowa po lewej, animacja z akceleracją i hamowaniem po prawej]

W grze problem polega na tym, że postać może zatrzymać się w dowolnym momencie, a animacja kroków ma z góry ustaloną długość. Najprostsze, ale już przestarzałe rozwiązanie — przyspieszanie odtwarzania animacji biegu proporcjonalnie do prędkości postaci — daje efekt widocznego poślizgu stóp.

W praktyce · Distance Matching + Foot Lock

Distance Matching zapobiega problemowi u źródła: zamiast dopasowywać animację do czasu, dopasowuje ją do dystansu — silnik wie, ile zostało postaci do zatrzymania, i wybiera dokładnie tę klatkę animacji, w której noga trafia we właściwe miejsce. Foot Lock, budowany na prostszym węźle Two Bone IK, działa już po fakcie: gdy stopa dotknie ziemi, zostaje do niej „przyklejona”, a reszta nogi dociąga się do tej pozycji, maskując ślizganie, które i tak by się pojawiło.

Miejsce na ilustrację filmową [Ilustracja filmowa]

Można też stosować oba rozwiązania naraz — Distance Matching ogranicza problem, a Foot Lock łapie to, co jeszcze może się pojawić, zwłaszcza przy skrętach i przejściach między animacjami.

07

Ruch po łukach

Arcs

Ruch ciał — nie tylko organicznych — ma kształt łuku. Tak pracują stawy i pivoty w urządzeniach. Tymczasem sygnał z pada czy klawiatury to skok o dziewięćdziesiąt stopni bez żadnego stopniowania: zmiana kierunku z „prosto” na „w bok” następuje natychmiast. Próba rozwiązania tego problemu przez mieszanie animacji biegu naprzód i biegu w bok w zwykłym blend space 2D daje efekt żartobliwie nazywany „chodem kraba” — postać sunie po przekątnej bez żadnego ciężaru rotacyjnego, jakby ślizgała się bokiem.

W praktyce · Orientation Warping + Steering

Dziś problem ten rozwiązują dwa narzędzia pracujące razem. Orientation Warping obraca nogi i stopy tak, by trafiały we właściwy kierunek nowej ścieżki, podczas gdy kręgosłup koryguje ułożenie tułowia, żeby postać nie wyglądała na wykręconą. Steering z kolei płynnie „doprowadza” kierunek, w który faktycznie zwraca się ciało, do kierunku zadanego przez gracza — zamiast skoku o dziewięćdziesiąt stopni dostajemy łagodny łuk rozłożony w czasie.

Miejsce na ilustrację filmową [Ilustracja filmowa]
08

Akcja drugoplanowa

Secondary Action

Akcja drugoplanowa to coś, co postać robi obok głównego ruchu. Stosuje się ją, żeby dodać postaci coś, co powie o niej więcej. Może to być poprawianie włosów w biegu, kołysanie torbą, balansowanie rękami na nierównym terenie. Problem w grze: jest mało prawdopodobne, aby ktoś chciał przygotować osobną animację na każdą kombinację — marsz z bronią, marsz bez broni, w deszczu, z tarczą…

W praktyce · Layered Blend per Bone

Rozwiązaniem dla prostszych przypadków jest Layered Blend per Bone — mieszanie animacji osobno dla różnych partii szkieletu. Górna połowa ciała gra osobną animację (na przykład przeładowanie broni), a dolna w tym samym czasie porusza się niezależnie, sterowana przez Motion Matching czy zwykłą lokomocję. Nie trzeba nagrywać każdej kombinacji — wystarczy, że obie warstwy nałożą się na siebie.

Miejsce na ilustrację filmową [Ilustracja filmowa]
09

Rytm i rozstaw klatek

Timing and Spacing

Timing to czas potrzebny postaci na wykonanie danej czynności, liczony w klatkach. Spacing to sposób, w jaki klatki kluczowe animacji są rozstawione na osi czasu, przyspieszając lub zwalniając przebieg ruchu. Czas trwania zależy od masy postaci: ciężki, wielki stwór potrzebuje więcej czasu, żeby unieść ramię, niż zwinny bohater na zadanie swojego ciosu.

Miejsce na animację ruchu postaci [Ilustracja — ruch postaci, animacja]

W grze walki ten prosty przepis nie zawsze działa dobrze, ponieważ długość animacji ataku to już nie tylko kwestia estetyki, ale część balansu rozgrywki: liczby klatek startu, aktywności i odzyskania kontroli. Wydłużenie animacji, żeby cios „wyglądał” ciężej i mocniej, może zepsuć ten balans.

W praktyce · Hit-Stop i Time Dilation

Hit-Stop na ułamek sekundy zamraża klatkę w momencie trafienia — zderzenie nagle „zawiesza się” w powietrzu, zanim akcja wraca do normalnego tempa. Time Dilation robi podobną robotę, ale zamiast całkowitego zatrzymania gwałtownie spowalnia upływ czasu dla całej gry na moment uderzenia. Oba triki można połączyć z drganiem kamery i wibracją pada przy tym samym zdarzeniu trafienia.

10

Wyolbrzymienie

Exaggeration

Podobnie jak w animacji filmowej, wyolbrzymienie — nieraz aż do przesady — jakiegoś ruchu lub kształtu służy podkreśleniu i zaakcentowaniu akcji, którą oglądamy na ekranie. W animacji do gier komputerowych zastosowanie znajdują tu wcześniej omówione triki: morfing elementów, projektowanie postaci i projektowanie samej rozgrywki. Zasada ta przestaje być domeną wyłącznie animatorów i staje się elementem, nad którym pracują również pozostali członkowie zespołu.

Miejsce na animację 3D [Przykład — animacja 3D]
11

Bryła i objętość

Solid Drawing

W klasycznej animacji ta zasada dotyczy tworzenia rysunkowych postaci w płaskiej przestrzeni w taki sposób, aby sprawiały wrażenie posiadania trzeciego wymiaru — realnej objętości i punktu oparcia. W grze 3D problem wraca w najbardziej dosłownej postaci: jeśli stopa postaci na schodach czy pochyłości zatopi się w kamieniu albo zawiśnie w powietrzu, wygląda to słabo.

W praktyce · Slope Warping

Unreal Engine rozwiązuje ten problem systemem, który sprawdza teren, zanim pokaże klatkę na ekranie. Slope Warping — węzeł z tej samej rodziny co Stride i Orientation Warping — działa w parze z prostym IK nóg. Dzięki temu jedna, zwykła animacja chodu wystarcza na płaskim terenie, schodach i pochyłościach naraz — nie trzeba nagrywać osobnej animacji na każdy kąt nachylenia, a postać zawsze wygląda, jakby faktycznie dotykała ziemi. Silnik koryguje trzy rzeczy naraz: obniża miednicę, jeśli jedna noga stoi wyżej niż druga, ugina kolano nogi wchodzącej pod górę i przekręca samą stopę, żeby jej spód przylegał do nachylonego terenu.

Miejsce na animację filmową z UE [Animacja filmowa z UE]
12

Atrakcyjność

Appeal

W skrócie: i w filmie, i w grze chcemy, aby postać mogła w pełni być częścią świata, jaki dla niej stworzyliśmy. Dzieje się tak, jeśli animacja naszej postaci łączy w sobie wszystkie jedenaście wcześniejszych zasad, bez błędów, które zniszczyłyby jej wiarygodność. Appeal to charyzma postaci — jej sylwetka, sposób chodzenia, wszystkie drobne animacje, które pozwalają odróżnić ją od innych. To wszystko sprawia, że zapada w pamięć gracza.

W praktyce · Choosers i Proxy Tables

Przy projektowaniu gier, dla oszczędności pracy i pamięci, dziesiątki różnych postaci mogą dzielić ten sam zestaw animacji. Rozwiązaniem w architekturze Motion Matching jest system Choosers i Proxy Tables — mechanizm, który zamiast sztywno zaszytej logiki „jeśli-to” pozwala kontekstowo podmieniać źródło animacji w locie. Gdy postać dostaje status „ranny” albo „zmarznięty”, Chooser wychwytuje tę zmianę i podmienia bazę animacji, z której korzysta Motion Matching, na inną — zgarbioną sylwetkę i powłóczącą nogę. To wszystko bez przepisywania grafu animacji od nowa. Ten sam szkielet i ten sam system potrafi więc zachowywać się zupełnie inaczej w zależności od kontekstu, co realnie oddaje jednostkowy charakter postaci mimo współdzielonych zasobów.

Zakończenie

Dwanaście zasad Thomasa i Johnstona przetrwało wszystkie te lata, ponieważ trafnie nazwały problemy, z jakimi mierzy się każdy animator. Te problemy nie znikają wraz ze zmianą technologii. Grafika komputerowa nie zastąpiła animatora inżynierem — zmieniła tylko medium, w którym animator, obok ołówka i kartki papieru, sięga dziś po blueprinty i krzywe interpolacji klatek kluczowych.

Na zakończenie

Panel pytań i odpowiedzi

Publikacja towarzyszy prelekcji o tym samym tytule. Jeśli po lekturze zostały pytania — o konkretną zasadę, o wtyczkę Unreal Engine albo o to, gdzie te dwie dziedziny się jeszcze rozjeżdżają — to jest właśnie ten moment.

Zadaj pytanie autorowi
FOTO
AUTORA

Grzegorz Proniewski

Autor tekstu i prelekcji „Dwanaście prac animatora w projektowaniu gier komputerowych”. Miejsce na notkę biograficzną — dorobek, afiliacje, linki do portfolio.

↑