Opanuj Animacje – Godot 4 Poradnik

Assety:


1. Tworzenie animacji za pomocą AnimatedSprite2D

Kiedy używać?

AnimatedSprite2D jest idealny, gdy posiadasz gotowe klatki animacji w formie plików graficznych, które chcesz po prostu zaimportować i odtwarzać.

Krok po kroku:

  • Dodanie AnimatedSprite2D do sceny
    • Kliknij prawym przyciskiem myszy w drzewie node’ów, wybierz Add Child Node i dodaj AnimatedSprite2D.
  • Dodanie SpriteFrames
    • W prawym panelu właściwości znajdź opcję Frames i kliknij na nią, a następnie wybierz New SpriteFrames.
    • Kliknij nowo utworzony element SpriteFrames, aby otworzyć edytor animacji.
  • Tworzenie animacji
    • W edytorze SpriteFrames dodaj nową animację (np. „walk”) i przeciągnij gotowe pliki klatek animacji do panelu animacji.
    • Upewnij się, że pliki znajdują się wcześniej w File System – jeśli nie, zaimportuj je do projektu.
  • Konfiguracja animacji
    • Ustaw takie parametry jak:
      • FPS (ilość klatek na sekundę) – wpływa na szybkość animacji.
      • Loop (zapętlenie) – zaznacz, jeśli chcesz, aby animacja odtwarzała się w pętli.
    • Jeśli chcesz, aby konkretna klatka była wyświetlana dłużej, kliknij na nią i zmień jej czas trwania.
  • Przełączanie między animacjami
    • Aby zmieniać animacje (np. między „walk” a „idle”), napisz prosty skrypt przypisany do AnimatedSprite2D:
extends AnimatedSprite2D

func _process(delta):
    if Input.is_action_pressed("ui_right"):
        animation = "walk"
    else:
        animation = "idle"

2. Tworzenie animacji za pomocą AnimationPlayer

Kiedy używać?

AnimationPlayer sprawdza się, gdy chcesz tworzyć animacje bez gotowych klatek – np. animując poszczególne części postaci (ręce, nogi, głowę) lub obiekty w grze.

Krok po kroku:

  1. Dodanie AnimationPlayer do sceny
    • Dodaj nowy node, np. Node2D, który będzie bazą dla Twojej postaci.
    • Dodaj do niego kolejne node’y Sprite2D jako dzieci, które reprezentują części postaci (np. ciało, głowa, ręce).
  2. Ustawienie sprite’ów
    • Przeciągnij odpowiednie pliki graficzne do node’ów Sprite2D (np. ciało postaci do jednego sprite’a, ręce do innych).
    • Ustaw pozycję każdego sprite’a, aby wszystkie elementy tworzyły kompletną postać.
    • Dla odbicia lustrzanego (np. ręki), zmień parametr Scale X na wartość ujemną, np. -1.
  3. Dodanie AnimationPlayer
    • Dodaj do głównego node’a (np. Node2D) node AnimationPlayer.
  4. Tworzenie animacji w AnimationPlayer
    • Wybierz AnimationPlayer i kliknij New w dolnym panelu, aby utworzyć nową animację (np. „Idle”).
    • Wybierz długość animacji oraz ustaw opcję zapętlenia, jeśli chcesz, aby animacja odtwarzała się w pętli.
  5. Animowanie elementów
    • Zaznacz wszystkie sprite’y (np. ciało, ręce, głowę) i kliknij ikonę klucza, aby zapisać ich początkową pozycję i rotację jako klatkę kluczową.
    • Przesuń wskaźnik czasu na osi czasu i zmień pozycję/rotację sprite’ów (np. delikatnie przesuwając je w górę). Ponownie kliknij ikonę klucza, aby zapisać nowe klatki.
    • Powtórz proces, aby stworzyć płynny ruch, np. falowanie góra-dół.
  6. Testowanie i zapętlanie
    • Odtwórz animację za pomocą przycisku „Play” i sprawdź, czy działa poprawnie.
    • Aby zapętlić animację, zaznacz opcję Loop w ustawieniach animacji.

3. Dodawanie klatek kluczowych i tworzenie ruchu

Krok po kroku:

  1. Tworzenie klatek kluczowych (Keyframes)
    • Po zaznaczeniu interesujących Cię elementów postaci (np. ręce, ciało, głowa), kliknij ikonę klucza Create, aby zapisać ich początkową pozycję i rotację.
    • Przesuń wskaźnik czasu (np. na 1 sekundę) i zmodyfikuj pozycje elementów, np. unosząc ręce w górę.
    • Kliknij kluczyk ponownie, aby zapisać kolejne klatki kluczowe.
  2. Zapętlanie ruchu
    • W ustawieniach animacji zaznacz opcję Loop, aby animacja odtwarzała się w pętli.
    • W ten sposób możesz tworzyć płynne animacje, np. falowania postaci w miejscu (Idle).
  3. Dodawanie kolejnych ruchów
    • Aby animacja wyglądała bardziej naturalnie, dodaj ruchy innych części postaci.
      • Przykład: Głowa postaci unosi się lekko w trakcie ruchu. Wybierz jej Transform i ustaw przesunięcie na osi Y (np. -10).
  4. Testowanie animacji
    • Kliknij Play, aby zobaczyć efekty swojej pracy.

4. Tworzenie animacji zmiany tekstur

Krok po kroku:

  1. Zmiana tekstur w trakcie animacji
    • Wybierz część postaci, np. twarz (Face).
    • Na początku animacji kliknij kluczyk przy parametrze Texture, aby zapisać początkową teksturę.
    • Przesuń wskaźnik czasu do odpowiedniego momentu (np. 0,2 sekundy) i zmień teksturę na nową. Kliknij kluczyk ponownie, aby zapisać zmianę.
  2. Przykład w animacji skoku (Jump)
    • Tworząc animację skoku, możesz dodać zmianę wyrazu twarzy postaci na szczęśliwą lub smutną, w zależności od kontekstu.
  3. Resetowanie tekstury na koniec animacji
    • Na końcu animacji możesz dodać klatkę kluczową, która przywróci początkową teksturę, aby postać wróciła do pierwotnego wyglądu.

5. Zarządzanie animacjami za pomocą skryptów

Dodanie skryptu do AnimationPlayer

  • Dodaj nowy skrypt do AnimationPlayer. Przykład podstawowego skryptu zarządzającego animacjami:
extends AnimationPlayer

func _process(delta):
    if Input.is_action_just_pressed("ui_jump"):
        play("jump")
    elif Input.is_action_just_pressed("ui_idle"):
        play("idle")

5. Podsumowanie

Kluczowe zasady:

  1. Klatki kluczowe – zawsze zapisuj początkowe i końcowe wartości parametrów.
  2. Zapętlanie – przydatne w animacjach takich jak Idle.
  3. Resetowanie stanów – używaj animacji reset lub skryptów, aby uniknąć problemów z niezmienionymi teksturami.
  4. Skrypty – są niezbędne do przełączania między animacjami i zarządzania logiką w grze.
  5. Eksperymentuj – możesz animować nie tylko ruchy, ale także zmiany tekstur, skalowanie i inne parametry.

Dzięki narzędziom w Godot Engine możesz tworzyć niemal dowolne animacje, dostosowane do potrzeb Twojej gry. 🚀 Powodzenia!