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í:
- Smažte starý controller (pokud jste ho už vytvořili)
- Vytvořte nový controller s opraveným kódem (viz níže)
- 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
ThirdPersonCharacterControllerv 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.fbxHumanM@Walk01_Backward.fbxHumanM@Walk01_Left.fbxHumanM@Walk01_Right.fbxHumanM@Walk01_ForwardLeft.fbxHumanM@Walk01_ForwardRight.fbxHumanM@Walk01_BackwardLeft.fbxHumanM@Walk01_BackwardRight.fbx
Crouch
HumanM@Crouch01_Idle.fbx
Jump (3 fáze)
HumanM@Jump01 - Begin.fbxHumanM@Fall01.fbxHumanM@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:
- Smažte starý Animator Controller asset
- Vytvořte nový controller přes Auto Builder
- 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í:
- Zkontrolujte, že složka
Assets/Kevin Iglesias/Human Animations/Animations/Maleexistuje - Zkontrolujte, že FBX soubory jsou v této struktuře:
Idles/HumanM@Idle01.fbxMovement/Walk/HumanM@Walk01_Forward.fbxMovement/Jump/HumanM@Jump01 - Begin.fbx- atd.
- Klikněte na "Najít Animace" v Auto Builder okně
Animace se nehrají vůbec
Řešení:
- Vyberte GameObject v Hierarchy
- V Inspectoru zkontrolujte:
Animatorkomponenta existuje a má přiřazený ControllerThirdPersonCharacterController.animatornení null (mělo by být auto-přiřazeno)
- V Play mode otevřete Animator okno (Window → Animation → Animator)
- 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
-
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 ... -
V Play mode sledujte Animator parametry:
- Vyberte objekt
- Otevřete Animator okno
- Sledujte hodnoty MoveX, MoveZ, Speed při pohybu (WASD)
-
Zkontrolujte rychlost:
- V Inspectoru na
ThirdPersonCharacterController Move Speedby měla být > 0 (default 5)Animation Dampingby měla být malá (default 0.075)
- V Inspectoru na