Podręcznik Grafika komputerowa i wizualizacja
Rozdział 15. ANIMACJA
15.4. Metody animacji
Wyróżnia się następujące metody animacji:
- Animacja poklatkowa i oparta na klatkach kluczowych.
- Animacja proceduralna.
- Animacja wykorzystująca przechwytywanie ruchu.
Animacja poklatkowa polega na zestawieniu klatek zawierających kolejne fazy ruchu. Zarówno w animacji tradycyjnej jak i komputerowej, metoda ta wymaga stworzenia wszystkich kolejnych klatek filmu. Pierwotnie rysowano rzeczywiście niezależnie poszczególne klatki. Szybko jednak zauważono, że część z nich można traktować jako stany pośrednie między ważniejszymi punktami (momentami) w przebiegu akcji filmu – powstaje w ten sposób animacja oparta na klatkach kluczowych.
Animacja oparta na klatkach kluczowych składa się z następujących etapów:
- Wyszczególnienie i synteza klatek kluczowych charakteryzujących najważniejsze momenty ruchu lub sceny.
- Określenie sposobu przejścia pomiędzy klatkami – może to być realizowane w postaci równań ruchu.
- Wyznaczenie klatek pośrednich – na przykład za pomocą morfingu.
- Kontrola efektu końcowego i ewentualne poprawki.
Dzisiaj trudno formalnie rozróżnić te dwie metody - w obu przypadkach generowane są klatki istotne dla akcji filmu oraz klatki pośrednie. Można jednak mówić o metodzie klatek kluczowych gdy rzeczywiście są one kluczowe dla akcji, ruchu, czy ujęcia. Natomiast jeśli wybór klatek był związany tylko i wyłącznie z ich liczbą lub potrzebą podzielenia fragmentu, po prostu, na mniejsze części, aby zrezygnować ze skomplikowanego generowania każdej klatki, to powiemy raczej, że mamy do czynienia z animacją poklatkową. Oczywiście trudno mówić w tym przypadku o wyraźnej granicy.
Animacja proceduralna polega na wydzieleniu parametrów sterujących przebiegiem zmian i wyznaczeniu zależności funkcyjnych między opisem parametrów, a wyglądem klatki (lub sceny). Metoda ta jest wygodna do animacji procesów fizycznych i mechanicznych.
Przykładem są kinematyka odwrotna i metoda deformacji swobodnych (FFD – Free Form Deformation).
Kinematyka odwrotna opisuje zależności ruchowe na podstawie wymaganych położeń obiektów. Jest bardzo wygodną forma dla uzyskania ruchu złożonych mechanicznie elementów, jest często wykorzystywana do animacji postaci.
Metoda deformacji swobodnych ma wiele implementacji. Najczęściej stosuje się techniki szkieletowe lub siatkowe, w których pozycje odpowiednich punktów i zależności między węzłami siatki lub szkieletu opisane są równaniami parametrycznymi.
Animacja symulacyjna wykorzystuje opis zachowania obiektów uzyskany na podstawie praw fizyki i sformułowanych na tej zasadzie równań. Rozwiązanie tak uzyskanych równań daje poszukiwaną symulację. Metoda ta jest najbardziej złożona obliczeniowo (i czasochłonna), jednak może dać bardzo dobre efekty. w modelowaniu i animacji zjawisk fizycznych.
Przechwytywanie ruchu pozwala powielić schemat zachowania obiektu na podstawie naturalnego zachowania się obiektu rzeczywistego. Jest wygodna do modelowania ruchu postaci ludzkich, zwierzęcych a także postaci fantastycznych, którym można przypisać pewne właściwości ruchowe podobne do znanych cech zwierząt lub ludzi. Metoda ta daje bardzo dobre efekty, gdyż łatwiej jest skopiować ruch zwierząt niż opisać go równaniami matematycznymi. Wadą jest konieczność stosowania specjalistycznego sprzętu do przechwytywania ruchu. Stosuje się zestawy czujników położenia, skanery trójwymiarowe lub zdjęcia poklatkowe.
Animacja poklatkowa i oparta na klatkach kluczowych
Animacja
poklatkowa jest najczęściej stosowaną metodą w tradycyjnych filmach
rysunkowych.
Rys.15.4. Dziwne przygody Koziołka Matołka (1969-1971).
Animacja Koziołka
oparta na rozłożeniu pełnego cyklu ruchu rąk i nóg biegnącej postaci na 14
klatek.
Rysunki dzięki uprzejmości Studia Miniatur
Filmowych © w Warszawie.
Pokazany przykład animacji Koziołka Matołka (rys. 15.4) obejmuje 14 klatek pełnego cyklu ruchu. Bardzo często dla uproszczenia wykonywano mniej klatek (na przykład 7) obejmujących ten sam cykl ruchu i aby zachować odpowiedni czas trwania akcji każdą klatkę powielano dwukrotnie. Czasami mogło to prowadzić do pewnego, nienaturalnego „szarpania” ruchu, jednak przy wartkiej (zazwyczaj) akcji całego filmu było to praktycznie niezauważalne.
Warto zwrócić jeszcze uwagę na złożoność całego ujęcia. Ruch postaci musi być skorelowany z przesuwaniem się tła. W ten sposób widz będzie miał na przykład wrażenie, że Koziołek rzeczywiście biegnie przez miasto. Ale z drugiej strony fazy ruchu postaci i fazy ruchu tła (w tym przypadku domków miasta) są całkowicie niezależne – w prezentowanym przykładzie nie ma ciągłości ruch tła. Wynika stąd możliwość niezależnego generowania obrazu postaci i tła. W tradycyjnej animacji realizowane to było na kolejnych warstwach przezroczystego celuloidu. Najwygodniej jest operować niezależnie każdą postacią oraz często niezależnie różnymi fragmentami dekoracji. Taki zestaw (gruby) celuloidu dopiero w ostatniej fazie produkcji był kopiowany na taśmę filmową. W animacji komputerowej mamy do dyspozycji warstwy rysunku, każda animowana i edytowana niezależnie. Daje to bardzo duże możliwości manipulacji obrazem.
Warto przypomnieć, że pomysły „rozwarstwienia” obrazu w technice filmowej pochodzą z początku XX wieku. W 1916 roku Frank Williams zaproponował metodę wędrującej maski (travelling matte), która została w latach 50 przekształcona w jedną z najważniejszych wykorzystywanych dzisiaj technik, występującą pod nazwą kluczowania (CSO – color separation overlay, także występuje jako chroma key, blue screen, lub czasami jako blue-box). Polega ona na filmowaniu aktora na tle jednolitej planszy (np. niebieskiej), a następnie zmontowaniu filmu wstawiając dowolne tło w miejsce barwy planszy. W czasach Williamsa wymagało to powtórnego filmowania, ewentualnie filmowania z wykorzystaniem tylnej projekcji. Dzisiaj wykonuje się to odpowiednim mikserem elektronicznym (kluczowaniem) lub programami komputerowymi na etapie postprodukcji. Dodatkowo współcześnie najczęściej realizuje się takie zadanie techniką grey-screen – tło ma kolor szary i dobre właściwości odbijające. Dzięki temu za pomocą odpowiedniego oświetlenia można uzyskać prawie dowolny kolor tła w zależności od potrzeb. Autorzy pełnej komputeryzacji tej techniki w 1995 roku otrzymali Oscara.
Dodatkowo warto zwrócić uwagę na sposób rysowania określonych elementów poszczególnych klatek. Rysunki domków tła, w pokazanym przykładzie, są rozmazane w przeciwieństwie do postaci pierwszoplanowej (Koziołka Matołka) rysowanej wyraźną, ostrą kreską. Potęguje to wrażenie ruchu i jednocześnie daje namiastkę głębi ostrości obejmującej tylko pierwszoplanowego bohatera.
Niezależnie od produkcji filmów animowanych, metoda animacji poklatkowej jest dzisiaj dość powszechnie stosowana w postaci prostych animacji wykorzystywanych w prezentacjach lub na stronach internetowych. Realizowane to jest na przykład w postaci animowanych gifów. Oczywiście wymaga to wygenerowania zestawu rysunków obejmujących pełny cykl ruchu i połączeniu ich w jedną animację.
Klatka kluczowa (keyframe) jest związana z charakterystycznym punktem scenariusza, momentem ruchu lub fazą ujęcia (rys.15.5). Klatki kluczowe wyznaczają etapy rozwoju akcji filmu, ale także mogą charakteryzować postaci (na przykład przez mimikę twarzy). Klatki kluczowe zawsze planował i rysował główny animator („keyframer”). Natomiast klatki pośrednie traktowane były jako wypełnienie luk między klatkami kluczowymi – stąd animatorzy rysujący klatki pośrednie nazywani byli „inbetweenerami”. Ich zajęcie, chociaż niezbędne dla całego procesu powstania filmu, traktowane było zawsze jako prostsze i mniej ambitne. Dzisiaj zadanie generowania klatek pośrednich realizuje zazwyczaj komputer.
Rys.15.5. Animacja odbicia piłeczki, rysunek pokazujący
zestaw poszczególnych klatek.
Ciemnozielonym kolorem zaznaczone są położenia piłeczki odpowiadające
klatkom kluczowym.
Warto zwrócić uwagę na problem czasu, a właściwie jego kontroli, w powstawaniu filmu animowanego. Film o określonym czasie trwania przekłada się na określoną liczbę klatek, a to z kolei limituje możliwości rysowania określonych faz ruchu, aby sprawiał on wrażenie ciągłego. Zadanie planowania klatek kluczowych jest ściśle związane z rozwojem akcji i związanym z nią upływem czasu. Jest to jednym z najtrudniejszych zadań głównego animatora. Problem komplikuje fakt, że poszczególne etapy akcji, poszczególne fazy ruchu najczęściej nie dają się opisać prostymi zależnościami liniowymi. Rzeczą, która jest zawsze stała w filmie animowanym jest odstęp czasu pomiędzy poszczególnymi klatkami natomiast zawartość klatek musi być dopasowana do upływu czasu. W najprostszym przykładzie animacji odbijającej się piłeczki, jej położenia w określonych momentach określają prawa fizyki. Nieuwzględnienie ich spowoduje nienaturalny ruch, co na pewno zostanie zauważone przez odbiorcę. Aby rozwiązać tego typu problemy, w metodzie klatek kluczowych wykorzystuje się tzw. krzywe (ścieżki lub linie) ruchu. Określają one położenie obiektu w danym momencie. Współczesne programy animacyjne wspomagają realizację klatkami kluczowymi pozwalając na dowolne, nieliniowe manipulowanie krzywą ruchu, a tym samym położeniem obiektu w określonym momencie.
Prezentowany rysunek (rys.15.5) pokazuje odbicie zakładając, że piłeczka nie odkształca się przy kontakcie z przedmiotem, od którego się odbija. Uwzględnienie tego typu parametrów znacznie poprawiłoby odbiór animacji.
Animacja proceduralna i symulacyjna
Animacja proceduralna pozwala opisać zależnościami funkcyjnymi zmiany położeń lub kształtów. Stosuje się kinematykę (prostą i odwrotną) lub metodę deformacji swobodnych.
Ruch złożonych
mechanizmów lub postaci wymaga opisania zależności między poszczególnymi
segmentami obiektu – powiązania „stawami” segmentów. Na przykład animacja ręki
wymaga połączenia ruchów ramienia, przedramienia, dłoni i palców. Połączenie
segmentów tworzy łańcuch kinematyczny o skończonej liczbie ogniw. Jest to
łączenie hierarchiczne tzn. dla każdego segmentu można wyróżnić segment
nadrzędny i podrzędny w łańcuchu. Warto przy tym zwrócić uwagę na sposób
wydzielenia segmentów. W przypadku postaci ludzkich czy zwierzęcych znana jest
ich budowa anatomiczna i na tej podstawie budowany jest łańcuch kinematyczny.
Podobnie dla obiektów mechanicznych o znanej konstrukcji. Natomiast dla postaci
fantastycznych lub innych nieznanych obiektów trzeba przeprowadzić modelowanie
szkieletu – wydzielenie segmentów i opracowanie zależności mechanicznych
pomiędzy nimi. Dla każdego połączenia (stawu) trzeba zdefiniować stopnie
swobody segmentów. Stopnie swobody określają liczbę prostych ruchów możliwych
do wykonania. Na przykład ciało swobodne ma 6 stopni swobody w układzie
kartezjańskim (trzy translacje i trzy obroty).
Rys.15.6 Przykład zastosowania
kinematyki odwrotnej do wyznaczenia kątów położenia ramienia i przedramienia.
Rysunek opracowany przez
Z.Huang i A.Elians © VU.Amsterdam, dzięki
uprzejmości Z.Ruttkay, University of Twente.
Kinematyka prosta (forward kinematic) opisuje zależności w łańcuchu kinematycznym od segmentu nadrzędnego do podrzędnego. Aby uzyskać opis ruchów palców dłoni analizujemy ciąg: bark -> ramię-> przedramię-> dłoń-> palce.
Kinematyka odwrotna (inverse kinematic) opisuje zależności w łańcuchu kinematycznym od segmentu podrzędnego do nadrzędnego. W tym przypadku można rozpocząć analizę od docelowego położenia ostatniego (najbardziej podrzędnego w hierarchii) segmentu i na tej podstawie wyznaczyć położenie segmentów pozostałych – np. szukamy położenia ramienia i przedramienia, aby zapewnić położenie dłoni i palców w określonym punkcie.
Animacja wykorzystująca przechwytywanie ruchu
Trudności w wiarygodnym pokazaniu ruchu postaci są znane twórcom filmowym od początku historii filmu animowanego. O wiele łatwiej zaakceptować widzowi umowność rysunku lub brak szczegółów niż, na przykład, nienaturalne poruszanie ręką – poruszanie niezgodne z naszym wyobrażeniem. Naturalnym pomysłem rozwiązania tego problemu było wzorowanie ruchów animowanych postaci na rzeczywistych ruchach ludzi. W tym celu zatrudniano modeli zastygających w pozach (często niewygodnych) odpowiadających klatkom kluczowym. Jeśli nie było to możliwe, animatorzy musieli wykonać perfekcyjne rysunki na podstawie wyobrażenia postaci. Pierwszą metodą ułatwiającą to zadanie była otoskopia (rys.15.7). Polega ona na filmowaniu aktora wykonującego sekwencję ruchu, a następnie wykonywaniu rysunków na podstawie zdjęć poklatkowych takiego filmu. Pierwszym znanym filmem, w którym wykorzystano rotoskopię była Królewna Śnieżka Walta Disneya. Metoda ta jest czasem również stosowana współcześnie.
Rys.15.7. a) Rysownik
przygotowujący klatkę filmu metodą rotoskopii, b) Koń animowany na zasadach
rotoskopii na podstawie zdjęć Eadwearda Muybridge’a. Rysunki dostępne
w domenie publicznej pochodzą z Wikipedii.
W latach
osiemdziesiątych XX wieku na Simon Fraser University podjęto badania nad
automatycznym przechwytywaniem ruchów postaci (motion capture). W celach
komercyjnych metodę tę zastosowano po raz pierwszy w technice filmowej w 1984
roku. Była to 30 sekundowa reklamówka – „Sexy robot” (“Brilliance”) – zrobiona
dla firmy National Canned Food Information Council. Do produktów firmy, głosem
Kathleen Turner, zachęcał animowany robot. Aby zachować naturalność ruchów
postaci, Robert Abel opracował optyczny system przechwytywania ruchu na
podstawie położenia markerów umieszczonych na ciele aktorki. Niepowodzenia w
1990 roku przy realizacji filmu „Pamięć absolutna” („Total Recall”) z Arnoldem
Schwarzeneggerem zahamowały rozwój systemów przechwytywania ruchu. Do problemu
powrócono w 1997 roku podczas produkcji „Titanica”. Od tego czasu większość
filmów wymagających efektów specjalnych, a także gier
komputerowych, jest realizowana z wykorzystaniem techniki przechwytywania ruchu
(motion capture).
Rys.15.8. Kadr z filmu
reklamowego „Sexy robot”.
Kopia pojedynczego kadru filmu dostępnego w domenie
publicznej
na platformie youtube.com
Copyright law as fair use, dozwolony użytek w celach
edukacyjnych
Najprostszym rozwiązaniem realizacji przechwytywania ruchu jest system elektromechaniczny. Aktor zakłada strój (egzoszkielet) w formie sztywnego stelażu. Egzoszkielet zawiera zestaw czujników, pozwalających monitorować wzajemne położenia między jego elementami. Jest to, oczywiście, tak skonstruowane, aby w jak najmniejszym stopniu ograniczać ruchy aktora. Analiza wzajemnych położeń między elementami egzoszkieletu pozwala, w czasie rzeczywistym, określać i rejestrować położenie ciała aktora. System elektromechaniczny jest najmniej dokładny spośród znanych rozwiązań przechwytywania ruchu. Wadą tego systemu jest także konieczność używania niewygodnego egzoszkieletu. Jest to jednak rozwiązanie praktycznie najtańsze, co jest jego podstawową zaletą. Dodatkowo jest to rozwiązanie niewymagające rozstawiania zestawu czujników zewnętrznych, tak jak w systemach optycznych.
System elektromagnetyczny (magnetyczny) wykorzystuje rejestrację zmian strumienia magnetycznego wywołaną zmianą wzajemnego położenia czujników (nadajników i odbiorników). Aktor zakłada strój z zestawem czujników połączonych kablem (najczęściej) z komputerem. System zawiera zwykle stosunkowo małą liczbę czujników (kilkanaście). Dokładność pomiaru położenia jest lepsza niż systemów mechanicznych, ale gorsza niż optycznych. Analiza położenia jest jednak szybsza niż systemów optycznych. Do podstawowych wad systemu elektromagnetycznego należy zaliczyć wrażliwość na zakłócenia zewnętrzne – na zewnętrzne pole magnetyczne.
Systemy optyczne oparte są na analizie położenia punktu (markera) na podstawie kilku niezależnych rzutów tego punktu. Na stroju aktora jest umieszczony zestaw od kilkunastu do kilkudziesięciu markerów (rys.15.9). Kamery rozmieszczone wokół sceny rejestrują obraz aktora i markerów. W zależności od liczby aktorów na scenie stosuje się od kilku do kilkudziesięciu kamer. Kamery muszą objąć całą przestrzeń sceny i dawać możliwość rejestracji markerów także przy wzajemnym zasłanianiu się aktorów. Na podstawie rzutów markera komputer wyznacza jego położenie w przestrzeni. System optyczny jest najdroższym ze znanych rozwiązań przechwytywania ruchu. Daje jednak możliwość najbardziej dokładnego pomiaru położenia (rzędu ułamków milimetra). Strój z markerami optycznymi jest najmniej kłopotliwym rozwiązaniem dla aktora spośród wszystkich systemów przechwytywania ruchu. Prezentowany na rysunku 15.9 system jest przykładem systemu przechwytywania z możliwością śledzenia reakcji wirtualnej postaci.
Rys.15.9. Studio przechwytywania ruchu: system optyczny - widoczne kamery (trakery) umieszczone na trójnogach. Poruszający się aktor ubrany w strój z markerami. Zdjęcia dzięki uprzejmości Virtual Magic © i ATM Grupa ©.
Rys.15.10. Aktor w studiu
przechwytywania ruchu oraz zdjęcie monitora z obrazem postaci rysowanej
w
czasie rzeczywistym na podstawie analizy położenia markerów umieszczonych na
kostiumie aktora.
Zdjęcia dzięki uprzejmości Virtual Magic © i ATM Grupa ©.
Wyróżnia się systemy optyczne pasywne i aktywne. W systemach pasywnych markery odbijają światło we wszystkich kierunkach – a przede wszystkim w kierunku źródła (odbicie powrotne – retroreflection). Markery są punktami pokrytymi farbą lub tworzywem o odpowiednich właściwościach odbijających. W pierwszych systemach optycznych stosowano piłeczki pingpongowe. W systemach aktywnych markery emitują światło. Najczęściej stosuje się diody elektroluminescencyjne emitujące promieniowanie podczerwone. Aby ułatwić analizę przy dużej liczbie czujników, często każdy z nich emituje impulsy (błyski) z inną częstotliwością.
Rozpatrzmy dwie kamery K1 i K2 śledzące poruszający się punkt P zgodnie z rysunkiem 15.11. Jeśli
znane jest położenie kamer oraz ich ustawienie, to można określić rzuty P’ i P”
. Rzuty te definiują proste, których przecięciem jest szukany punkt P. Stąd jego współrzędne można wyznaczyć
korzystając z prezentowanych równań. W praktyce, na skutek zakłóceń i błędów
pomiarów może się okazać, że proste zdefiniowane przez rzuty P’ i P”
wcale się nie przecinają. W takiej sytuacji należy wyznaczyć punkt P będący punktem najbliższym obu
prostych.
Rys.15.11. Działanie optycznego systemu przechwytywania
ruchu.
Wyznaczenie współrzędnych położenia markera na podstawie
jego rzutów.
Do określenia położenia punktu wystarczą dwie kamery. Jednak aktor poruszając się może zasłaniać markery umieszczone na ubraniu. Na scenie może być także wielu aktorów, którzy zasłaniają się wzajemnie. Z tego powodu stosuje się wiele kamer, aby bez względu na pozę aktora lub ich liczbę, każdy marker był zawsze „widziany” przynajmniej przez dwie kamery.
Dzięki rozwojowi algorytmów rozpoznawania obiektów i przetwarzania obrazów w ostatnich latach. A także dzięki bardzo szybkiemu rozwojowi sprzętu komputerowego systemy optyczne wyparły praktycznie całkowicie pozostałe rozwiązania. Systemy mechaniczne czy magnetyczne są stosowane tylko i wyłącznie w wyjątkowych, specjalizowanych przypadkach. Jednocześnie powstały systemy kamer bezmarkerowych. Oznacza to, że i nie ma konieczności umieszczania markerów na ubraniu lub ciele aktora. Kamery śledzące ruchy aktora dostarczają obrazy bez markerów, a odpowiednie algorytmy pozwalają rozpoznawać odpowiednie elementy ciała aktorów. Analiza kilku obrazów z różnych kamer daje współrzędne określonych charakterystycznych punktów, najczęściej stawów, dłoni, palców i/lub elementów głowy. Dzieję się to na tej samej zasadzie jak w klasycznych systemach markerowych.
Duża szybkość pracy systemów przechwytywania ruchu (optycznych lub magnetycznych) pozwala wygenerować wirtualne postacie w czasie rzeczywistym. Prezentowane zdjęcia pokazują system optyczny aktywny, którego jednym z elementów jest stojący na scenie ekran. Dzięki niemu aktor może na bieżąco śledzić ruchy wirtualnej postaci.
Mimo niezaprzeczalnych zalet stosowania systemów przechwytywania ruchu w kreowaniu realistycznie poruszających się wirtualnych postaci trzeba wspomnieć o ich wadach.
- Występuje konieczność stosowania bardzo specjalistycznego sprzętu i oprogramowania.
- Związane jest to z wysokimi kosztami (co najmniej kilkadziesiąt tysięcy dolarów).
- Koszty te mogą utrudniać powstawanie małych, niskobudżetowych produkcji.
- Powstają problemy skalowania postaci – wymiary wirtualnych postaci, szczególnie fantastycznych, nie zawsze odpowiadają budowie ciała aktorów, wymaga to dodatkowego przetwarzania ścieżek ruchu,
- Podobny problem występuje w przypadku scenariusza przewidującego ruchy niezgodne z wyobrażeniami lub niezgodne z fizyką – co często występuje w filmach animowanych.
Pierwsze zastosowania systemów przechwytywania ruchu były związane z kinematografią. Rzeczywiście MoCap upraszcza znacznie kreowanie postaci filmowych i modelowanie ich ruchu. Daje przy tym praktycznie nieograniczone możliwości. Warto jednak zwrócić uwagę także na inne obszary zastosowań systemów przechwytywania ruchu.
Bardzo ważnym zastosowaniem są różnego typu symulatory, wykorzystujące grafikę komputerową do umożliwienia pracy w wirtualną rzeczywistości. Możliwość przechwycenia położenia ciała osoby przebywającej w takiej wirtualnej rzeczywistości daje sprzężenie zwrotne w obsłudze symulowanych obiektów i pozwala bardziej zanurzyć się w wirtualny świat.
Jednak najważniejszym dzisiaj zastosowaniem systemów przechwytywania ruchu są zastosowania medyczne. Precyzyjna kontrola położenia kończyn czy stawów daje możliwość znacznie skuteczniejszej rehabilitacji i poprawy zdrowia pacjentów. Jeśli wejdziemy na strony firmowe najważniejszych producentów sprzętu i oprogramowania do przechwytywania ruchu, to zastosowania medyczne będą dzisiaj dominowały. Odnajdziemy wiele różnych wariantów kamer trakingowych i wiele zestawów różnego sprzętu pomocniczego, który nie jest potrzebny w wytwórniach filmowych ale w szpitalach i ośrodkach rehabilitacyjnych.