Animazioni ed Emote
INFO
Le animazioni (task) fanno muovere i peds in modi specifici. Gli emote sono animazioni triggerabili dai giocatori (sedersi, ballare, salutare). Esistono risorse pronte e custom.
| Obiettivo | Dettagli |
|---|---|
| Cosa imparerai | • Task nativi per animare i peds • Pacchetti emote pronti • Animazioni custom (ycd) cenni |
| Prerequisiti | • Lua base |
1. Animare un Ped con Task
-- client.lua
local ped = PlayerPedId()
-- Fermo, in piedi
TaskStandStill(ped, -1)
-- Siede
TaskStartScenarioInPlace(ped, 'PROP_HUMAN_SEAT_CHAIR_MP_PLAYER', 0, true)
-- Guarda verso una direzione
TaskLookAtCoord(ped, x, y, z, -1, 2048, 3)
-- Cammina verso un punto
TaskGoToCoordAnyMeans(ped, x, y, z, 1.0, 0, false, 0, 0)NOTE
I nomi degli scenario (es.
PROP_HUMAN_SEAT_CHAIR_MP_PLAYER) devono essere validi. Se uno scenario non esiste, il ped non fa nulla senza errore visibile. Testa sempre.
2. Emote con Risorsa Pronta
Le risorse emote più usate:
- dpemotes (
https://github.com/andristum/dpemotes) - custom emotes (vari fork)
git clone https://github.com/andristum/dpemotes.gitensure dpemotesCon dpemotes il giocatore apre il menu emote con un tasto e seleziona l’animazione.
WARNING
Alcune risorse emote usano animazioni custom (.ycd) o dict non presenti nel gioco base: su un server che non li include, l’emote non funziona. Usa pacchetti che fanno riferimento a dict nativi o includi gli asset.
3. Animazioni Custom (ycd) — Cenni
Le animazioni custom richiedono file .ycd (vedi moduli asset) e sono un argomento avanzato. I passaggi base:
- Creare/esportare un
.ycdcon un tool dedicato - Metterlo in
stream/ - Referenziarlo con
TaskPlayAnimusando il dict del tuo ycd
-- client.lua
TaskPlayAnim(ped, 'dict_custom', 'anim_custom', 8.0, -8.0, -1, 0, 0, false, false, false)NOTE
Creare animazioni custom richiede tool non-banali (CodeWalker/YCD editor) e skill di animazione. Per la maggior parte dei server i pacchetti emote pronti bastano.
4. Pattern Sicuro: Emote con Cancellazione
-- client.lua
local function playEmote(dict, clip, duration)
local ped = PlayerPedId()
ClearPedTasks(ped)
TaskPlayAnim(ped, dict, clip, 8.0, -8.0, duration, 0, 0, false, false, false)
-- Al termine o al movimento, ferma
Wait(duration)
ClearPedTasks(ped)
endVerifica
- Scenari/animazioni validi (niente dict inventati)
- Emote cancellati con
ClearPedTasksquando serve - Pacchetti emote compatibili col tuo server
- Eventuali ycd custom inclusi in stream/
TIP
Prossimo passo: 05 - NUI Avanzata
Torna alla: Indice Generale