Animace
This commit is contained in:
176
Game/ANIMATOR_SETUP.md
Normal file
176
Game/ANIMATOR_SETUP.md
Normal 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)
|
||||
Reference in New Issue
Block a user