# 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: ```csharp var controller = GetComponent(); 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)