Files
PythonInUnreal/docs/animations.md
T
2026-10-31 20:16:32 +01:00

112 lines
5.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Animacje postaci
`scene.skeletal_model(...)` automatycznie znajduje każdy FBX z folderu postaci
poza plikiem samego modelu: 51 klipów fighter i 12 klipów creature.
Wykorzystuje funkcję `_clips()` z `Content/Python/ue_workshop/characters.py`.
Nowy FBX dodany do folderu zostanie uwzględniony przy następnym uruchomieniu skryptu.
Trzymaj model i animacje tej samej postaci w osobnym folderze.
Nazwy poniżej są kluczami do `animations` i `shot.animation(...)`.
Spacje i nawiasy z nazw plików są zamieniane na podkreślenia. Nie ma skrótów
`idle`, `walk` i `attack`; używaj nazw takich jak `great_sword_idle` czy `mutant_swiping`.
Pełny przykład `examples/mixamo_characters.py` importuje wszystkie klipy.
Plik zadania `exercises/animation_starter.py` importuje tylko dwie wybrane animacje.
Aby udostępnić wszystkie klipy, pomiń argument `animations`:
```python
character = scene.skeletal_model(CREATURE_MODEL, name="Creature", reimport=False)
shot.animation(character, "mutant_jumping", start=240, end=360)
```
Opcjonalne `animations={...}` ogranicza wybór do wskazanych plików;
`animations={}` pozostawia tylko klipy osadzone w samym modelu.
Krótsze klipy zapętlają się w swoim zakresie. Nakładanie zakresów automatycznie
tworzy płynne przejście z Pythona:
```python
shot.animation(character, "mutant_idle", start=0, end=60)
shot.animation(character, "mutant_swiping", start=48, end=120)
```
Wspólny zakres 48–60 miesza obie animacje przez 12 klatek (0,5 s przy 24 FPS).
Nowy klip narasta od wagi 0 do 1, a poprzedni zanika od 1 do 0.
Dodawaj klipy w kolejności odtwarzania. Długość blendu wynika wyłącznie z zakresów.
Klipy stykające się końcami przechodzą bez blendu; zakresy nie mogą być identyczne
ani całkowicie zawierać się jeden w drugim.
Obsługiwane są przejścia między dwiema animacjami; trzy jednoczesne klipy są odrzucane.
## Fighter
| Clip | FBX |
|---|---|
| `draw_a_great_sword_1` | `draw a great sword 1.fbx` |
| `draw_a_great_sword_2` | `draw a great sword 2.fbx` |
| `great_sword_180_turn` | `great sword 180 turn.fbx` |
| `great_sword_180_turn_2` | `great sword 180 turn (2).fbx` |
| `great_sword_attack` | `great sword attack.fbx` |
| `great_sword_blocking` | `great sword blocking.fbx` |
| `great_sword_blocking_2` | `great sword blocking (2).fbx` |
| `great_sword_blocking_3` | `great sword blocking (3).fbx` |
| `great_sword_casting` | `great sword casting.fbx` |
| `great_sword_crouching` | `great sword crouching.fbx` |
| `great_sword_crouching_2` | `great sword crouching (2).fbx` |
| `great_sword_crouching_3` | `great sword crouching (3).fbx` |
| `great_sword_crouching_4` | `great sword crouching (4).fbx` |
| `great_sword_crouching_5` | `great sword crouching (5).fbx` |
| `great_sword_crouching_6` | `great sword crouching (6).fbx` |
| `great_sword_high_spin_attack` | `great sword high spin attack.fbx` |
| `great_sword_idle` | `great sword idle.fbx` |
| `great_sword_idle_2` | `great sword idle (2).fbx` |
| `great_sword_idle_3` | `great sword idle (3).fbx` |
| `great_sword_idle_4` | `great sword idle (4).fbx` |
| `great_sword_idle_5` | `great sword idle (5).fbx` |
| `great_sword_impact` | `great sword impact.fbx` |
| `great_sword_impact_2` | `great sword impact (2).fbx` |
| `great_sword_impact_3` | `great sword impact (3).fbx` |
| `great_sword_impact_4` | `great sword impact (4).fbx` |
| `great_sword_impact_5` | `great sword impact (5).fbx` |
| `great_sword_jump` | `great sword jump.fbx` |
| `great_sword_jump_2` | `great sword jump (2).fbx` |
| `great_sword_jump_attack` | `great sword jump attack.fbx` |
| `great_sword_kick` | `great sword kick.fbx` |
| `great_sword_kick_2` | `great sword kick (2).fbx` |
| `great_sword_power_up` | `great sword power up.fbx` |
| `great_sword_run` | `great sword run.fbx` |
| `great_sword_run_2` | `great sword run (2).fbx` |
| `great_sword_slash` | `great sword slash.fbx` |
| `great_sword_slash_2` | `great sword slash (2).fbx` |
| `great_sword_slash_3` | `great sword slash (3).fbx` |
| `great_sword_slash_4` | `great sword slash (4).fbx` |
| `great_sword_slash_5` | `great sword slash (5).fbx` |
| `great_sword_slide_attack` | `great sword slide attack.fbx` |
| `great_sword_strafe` | `great sword strafe.fbx` |
| `great_sword_strafe_2` | `great sword strafe (2).fbx` |
| `great_sword_strafe_3` | `great sword strafe (3).fbx` |
| `great_sword_strafe_4` | `great sword strafe (4).fbx` |
| `great_sword_turn` | `great sword turn.fbx` |
| `great_sword_turn_2` | `great sword turn (2).fbx` |
| `great_sword_walk` | `great sword walk.fbx` |
| `great_sword_walk_2` | `great sword walk (2).fbx` |
| `spell_cast` | `spell cast.fbx` |
| `two_handed_sword_death` | `two handed sword death.fbx` |
| `two_handed_sword_death_2` | `two handed sword death (2).fbx` |
## Creature
| Clip | FBX |
|---|---|
| `left_turn_45` | `left turn 45.fbx` |
| `mutant_breathing_idle` | `mutant breathing idle.fbx` |
| `mutant_dying` | `mutant dying.fbx` |
| `mutant_flexing_muscles` | `mutant flexing muscles.fbx` |
| `mutant_idle` | `mutant idle.fbx` |
| `mutant_jumping` | `mutant jumping.fbx` |
| `mutant_left_turn_45` | `mutant left turn 45.fbx` |
| `mutant_right_turn_45` | `mutant right turn 45.fbx` |
| `mutant_right_turn_45_2` | `mutant right turn 45 (2).fbx` |
| `mutant_run` | `mutant run.fbx` |
| `mutant_swiping` | `mutant swiping.fbx` |
| `mutant_walking` | `mutant walking.fbx` |