Files
megakoop/Game/ANIMATOR_SETUP.md
Dominik G. 96d50bfad5 Animace
2025-10-26 14:26:09 +01:00

5.8 KiB

Third Person Animator Setup

Přehled

Animator systém je nyní plně integrován do ThirdPersonCharacterController.cs a má automatický generátor pro vytvoření Animator Controlleru z Kevin Iglesias animací.

⚠️ DŮLEŽITÉ - Pokud máte problémy s animacemi

Pokud animace pohybu trhají nebo jump animace nefungují:

  1. Smažte starý controller (pokud jste ho už vytvořili)
  2. Vytvořte nový controller s opraveným kódem (viz níže)
  3. Zkontrolujte Console pro debug výpis všech nalezených animací

Oprava provedena:

  • Opraveno načítání animací z FBX souborů
  • Opraveno použití skutečné rychlosti z CharacterController
  • Opraveny jump transitions (Begin → Fall → Land)
  • Přidán debug výpis pro kontrolu načtených animací

Rychlý Start

1. Otevřete Auto Builder

V Unity menu: MegaKoop → Animator → Auto Build Controller

2. Vygenerujte Controller

  • Okno automaticky najde všechny animace ve složce Kevin Iglesias
  • Klikněte "Najít Animace" (nebo se načtou automaticky)
  • Zkontrolujte Console - měli byste vidět "Načteno: [název animace] z [cesta]"
  • Vyberte GameObject s ThirdPersonCharacterController v Hierarchy
  • Zaškrtněte "Přiřadit na vybraný objekt"
  • Klikněte na Vytvořit Animator Controller

3. Zkontrolujte Console

Měli byste vidět výpis všech načtených animací:

=== Vytváření Animator Controller ===
Idle: HumanM@Idle01
Walk Forward: HumanM@Walk01_Forward
Walk Backward: HumanM@Walk01_Backward
...
Jump Begin: HumanM@Jump01 - Begin
Jump Fall: HumanM@Fall01
Jump Land: HumanM@Jump01 - Land

4. Hotovo!

Controller je vytvořen a přiřazen. Animace budou fungovat automaticky.

Co je zahrnuto

Stavy Animatoru:

  • Idle - Poklidový stav
  • Move - 2D Blend Tree pro pohyb všemi směry (Forward/Backward/Left/Right + diagonály)
  • Crouch - Dřep (stisknutím LeftControl)
  • Jump Begin - Začátek skoku
  • Jump Fall - Pád ve vzduchu
  • Jump Land - Dopad
  • Death - Smrt

Parametry:

  • MoveX (float) - Lokální X pohyb
  • MoveZ (float) - Lokální Z pohyb
  • Speed (float) - Rychlost postavy
  • IsGrounded (bool) - Je na zemi
  • IsCrouching (bool) - Dřepí
  • IsDead (bool) - Je mrtvý
  • Jump (trigger) - Spustí skok

Použití v kódu

Nastavení smrti:

var controller = GetComponent<ThirdPersonCharacterController>();
controller.SetDead(true);

Změna crouch klávesy:

V Inspectoru na ThirdPersonCharacterController změňte "Crouch Key".

Nalezené animace

Idle

  • HumanM@Idle01.fbx

Walk (všechny směry)

  • HumanM@Walk01_Forward.fbx
  • HumanM@Walk01_Backward.fbx
  • HumanM@Walk01_Left.fbx
  • HumanM@Walk01_Right.fbx
  • HumanM@Walk01_ForwardLeft.fbx
  • HumanM@Walk01_ForwardRight.fbx
  • HumanM@Walk01_BackwardLeft.fbx
  • HumanM@Walk01_BackwardRight.fbx

Crouch

  • HumanM@Crouch01_Idle.fbx

Jump (3 fáze)

  • HumanM@Jump01 - Begin.fbx
  • HumanM@Fall01.fbx
  • HumanM@Jump01 - Land.fbx

Death

  • HumanM@Death01.fbx

Poznámky

  • Animator je přímo v ThirdPersonCharacterController - není potřeba žádný driver
  • Automatické hledání animací - stačí kliknout na tlačítko
  • Plná integrace - funguje s existující movement logikou
  • Skok má 3 fáze - Begin → Fall → Land pro realistický skok
  • 2D Blend Movement - plynulý přechod mezi všemi směry pohybu

Řešení problémů

Animace pohybu se zastaví po 1 sekundě

OPRAVENO - Použití CharacterController.velocity místo planarVelocity

Co dělat:

  1. Smažte starý Animator Controller asset
  2. Vytvořte nový controller přes Auto Builder
  3. Ujistěte se, že používáte aktuální verzi ThirdPersonCharacterController.cs

Jump animace nefungují

OPRAVENO - Přidány správné 3 fáze skoku a transitions

Co kontrolovat:

  • V Animatoru musí být stavy: "Jump Begin", "Jump Fall", "Jump Land"
  • Transitions: Begin → Fall (exit time 0.8) → Land (when IsGrounded)
  • Zkontrolujte Console, že všechny 3 jump animace byly načteny

Animace nejsou nalezeny

Příznaky: V okně Auto Builder jsou prázdná pole nebo Console ukazuje "Nelze najít FBX"

Řešení:

  1. Zkontrolujte, že složka Assets/Kevin Iglesias/Human Animations/Animations/Male existuje
  2. Zkontrolujte, že FBX soubory jsou v této struktuře:
    • Idles/HumanM@Idle01.fbx
    • Movement/Walk/HumanM@Walk01_Forward.fbx
    • Movement/Jump/HumanM@Jump01 - Begin.fbx
    • atd.
  3. Klikněte na "Najít Animace" v Auto Builder okně

Animace se nehrají vůbec

Řešení:

  1. Vyberte GameObject v Hierarchy
  2. V Inspectoru zkontrolujte:
    • Animator komponenta existuje a má přiřazený Controller
    • ThirdPersonCharacterController.animator není null (mělo by být auto-přiřazeno)
  3. V Play mode otevřete Animator okno (Window → Animation → Animator)
  4. Sledujte, jestli se mění parametry (MoveX, MoveZ, Speed)

Animace se hrají, ale postavy se netočí správně

  • Animace z Kevin Iglesias mohou mít Root Motion
  • Zkontrolujte FBX Import Settings:
    • Vyberte FBX soubor
    • V Inspectoru → Rig → Animation Type: Humanoid
    • Animation → Apply Root Motion (podle potřeby)

Debug kroky

  1. Otevřete Console při vytváření controlleru - měli byste vidět:

    Načteno: HumanM@Idle01 z Assets/Kevin Iglesias/.../Idle01.fbx
    Načteno: HumanM@Walk01_Forward z Assets/Kevin Iglesias/.../Walk01_Forward.fbx
    ...
    
  2. V Play mode sledujte Animator parametry:

    • Vyberte objekt
    • Otevřete Animator okno
    • Sledujte hodnoty MoveX, MoveZ, Speed při pohybu (WASD)
  3. Zkontrolujte rychlost:

    • V Inspectoru na ThirdPersonCharacterController
    • Move Speed by měla být > 0 (default 5)
    • Animation Damping by měla být malá (default 0.075)