This commit is contained in:
Dominik G.
2025-10-26 14:26:09 +01:00
parent 40a62b5b5a
commit 96d50bfad5
24 changed files with 4173 additions and 18 deletions

176
Game/ANIMATOR_SETUP.md Normal file
View File

@@ -0,0 +1,176 @@
# 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<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)