| Zajęcia stacjonarne | Warsztat 3x45min |
| Opis jednozdaniowy | Praktyczna lekcja wprowadzająca w animowanie obiektów w Unity, korzystanie z Animatora oraz implementację podstawowych interakcji gracza z otoczeniem. |
| Materiały źródłowe | Podstawowe: https://www.youtube.com/watch?v=sgHicuJAu3g https://www.youtube.com/watch?v=uDqjIdI4bF4 https://www.patrykgalach.com/2019/08/29/understanding-oncollision-methods/ https://www.patrykgalach.com/2019/09/05/understanding-ontrigger-methods/ https://www.patrykgalach.com/2021/03/08/different-types-of-raycasts-in-unity/ https://www.patrykgalach.com/2020/03/16/pick-up-items-in-unity/ |
| Czemu służy ta lekcja | Lekcja ma przybliżyć uczestnikom praktyczne fundamenty animacji w Unity oraz pokazać, jak budować interaktywność pomiędzy graczem a otoczeniem. Uczestnicy nauczą się tworzyć własne animacje, korzystać z Animatora, ustawiać przejścia i kontrolować animację z poziomu kodu. Wprowadzone zostaną także podstawy interakcji oparte na fizyce i wykrywaniu obiektów – kolizje, triggery i raycasty – oraz prosty system podnoszenia obiektów. Zajęcia mają pomóc zrozumieć, że animacja oraz interakcje są kluczem do nadania grze płynności i poczucia responsywności. |
Jak się przygotować?
Aby dobrze poprowadzić zajęcia, trener powinien przygotować dwa niewielkie projekty demonstracyjne i przejść przez materiały źródłowe.
1. Część dotycząca animacji i Animatora
Przed zajęciami warto:
- odświeżyć podstawy tworzenia animacji w Unity: klucze, krzywe, nagrywanie ruchu, pętle,
- przygotować prosty obiekt (np. postać lub mechaniczny model z kilkoma ruchomymi elementami),
- stworzyć kilka podstawowych animacji: Idle, Walk, Run lub proste transformacje (np. otwieranie drzwi),
- zbudować Animator Controller z kilkoma stanami i przejściami między nimi,
- dodać parametry animatora (bool, float, trigger) i przetestować sterowanie nimi z poziomu skryptu.
Warto też przejrzeć 12 zasad animacji i przygotować krótkie przykłady, które można pokazać „na żywo” – np. squash & stretch na prostym obiekcie.
Podczas lekcji szczególnie ważne jest wyjaśnienie:
- jak działają stany animatora,
- jak tworzyć przejścia i ustawiać ich warunki,
- jak animacje wpływają na odczucia gracza i gameplay,
- jak animację połączyć z logiką gry za pomocą kodu.
2. Część dotycząca interakcji z graczem
Trener powinien przygotować:
- prostą scenę z kilkoma obiektami posiadającymi collidery i rigidbody,
- przykład działania OnCollision i OnTrigger (np. obiekt reagujący na wejście gracza),
- przykład prostego raycastu, który wykrywa obiekty przed graczem,
- demo podnoszenia przedmiotu lub aktywowania go przyciskiem.
Dobrze jest przetestować różne przypadki, aby móc pokazać uczestnikom typowe błędy:
- brak rigidbody przy kolizjach,
- zła warstwa kolizji,
- niewłaściwa konfiguracja triggerów,
- raycast, który trafia „w nic”.
Zajęcia warto prowadzić według logiki: teoria → pokaz → praktyczna implementacja krok po kroku → samodzielna praca uczestników.
Jaką wiedzę należy przekazać w trakcie zajęć?
Dzięki udziałowi w zajęciach:
- Jak tworzyć animacje w Unity i jak korzystać z Animation.
- Jak działa Animator Controller: stany, przejścia, parametry.
- Jak sterować animacją z kodu (SetBool, SetTrigger, SetFloat).
- Podstawy 12 zasad animacji i jak przekładają się na gameplay.
- Różnica między Collider a Trigger i kiedy używać każdego z nich.
- Jak i kiedy wywoływane są OnCollisionEnter/Stay/Exit oraz OnTriggerEnter/Stay/Exit.
- Jak działają raycasty i jak je stosować do wykrywania obiektów.
- Jak zaimplementować prostą interakcję z obiektem (np. podnieś, aktywuj, otwórz).
Powyższe efekty kształcenia to minimum wiedzy i/lub umiejętności, jakie muszą zostać przekazane podczas zajęć.
Warto zapamiętać!
Z angielskiego “key takeaways”, czyli kluczowe zagadnienia, które powinny zostać przyswojone przez odbiorców kursu.
- Animator to centralne narzędzie do łączenia i kontrolowania animacji w Unity.
- Dobrze ustawione przejścia i parametry animatora decydują o płynności gry.
- 12 zasad animacji to ponadczasowe podstawy, które poprawiają jakość każdej animacji.
- Collidery i triggery służą do różnych zadań – pierwszy do fizyki, drugi do wykrywania wejścia w obszar.
- Raycast to najważniejsze narzędzie do wykrywania obiektów z perspektywy gracza.
- Interakcje powinny być responsywne, a animacje powinny wspierać ich czytelność.
Pytania z testu
- W Unity, który komponent odpowiada za wizualizację i interakcję z animacją postaci?
- Rigidbody
- Animator
- GameObject
- Co należy zastosować jeżeli chcemy by gracz wchodził w interakcję tylko z niektórymi obiektami?
- Warunki filtrujące w skryptach
- Zmienimy ustawienia Collision Matrix
- Usuniemy Collidery ze wszystkich obiektów
- W Unity interakcja gracza z obiektem najczęściej realizowana jest przez:
- Rigidbody i Collider
- Shader i Material
- Canvas i AI
- Animator Controller ma wiele stanów animacji. Jeśli dodasz nową animację, ale przejście między stanami nie działa, to najczęściej:
- Musisz użyć Rigidbody
- Animacja nie jest zapisany w folderze Animations
- Zapomniano ustawić transition i warunki parametrów
- Czym różni się Local Position od World Position w Transform?
- Local Position jest względem rodzica, a World Position względem sceny
- Local Position to pozycja UI, World Position to pozycja na scenie
- To to samo, Unity używa zamiennie
- W Animatorze Unity, co oznacza transition exit time?
- Czas trwania całej animacji
- Czas, po którym następuje przejście do kolejnego stanu
- Czas potrzebny na import animacji
- Jaka kombinacja komponentów w Unity pozwala wykryć kolizję gracza z obiektem?
- Rigidbody + Collider vs Collider
- Rigidbody vs Collider
- Rigidbody + Collider vs Rigidbody
- Gdy przesuwamy obiekt z podpiętym Colliderem na scenie i zauważamy spadek wydajności to jest on spowodowany:
- Długim czasem renderowania, usuń lub zoptymalizuj siatki obiektów na scenie
- Przebudowaniem siatki kolizji, dodaj Rigidbody by oznaczyć obiekt jako dynamiczny
- Przebudowaniem siatki kolizji, upewnij się że nie przesuwasz obiektu z Mesh Colliderem
- W Animatorze przejścia pomiędzy stanami kontrolowane są przez:
- Parameters
- Layers
- Curves
- Blend tree w Animatorze to:
- Narzędzie do łączenia warstw animacji w jedną całość
- Skrypt sterujący interakcją z graczem
- Narzędzie do mieszania animacji w zależności od parametrów
- Co się stanie, jeśli Raycast próbuje wykryć obiekt z layera, z którym kolizje są wyłączone w Collision Matrix?
- Raycast nie wykryje obiektu
- Raycast wykryje obiekt normalnie
- Raycast wykryje obiekt tylko jeśli collider jest Trigger