Animaciones

Emotes personalizados para FiveM: convierte un video en animación

Crea emotes personalizados para FiveM a partir de un video: grábate con el celular, conviértelo en un archivo YCD y hazlo stream desde tu servidor.

· 7 min de lectura

Los emotes son una de las formas más baratas de darle vida a un servidor de FiveM. Un baile exclusivo del server, un saludo característico de una banda o una animación propia para los mecánicos les da a los jugadores algo para presumir, y los clips terminan circulando en TikTok y Discord.

La forma tradicional de hacer uno es lenta: equipo de captura de movimiento u horas de keyframes en Blender, después el rigging al esqueleto de GTA y la exportación con herramientas de la comunidad. Esta guía te muestra el camino rápido para crear emotes personalizados para FiveM: te grabas con el celular, conviertes el video en un archivo de animación de GTA y lo haces stream desde tu servidor.

Versión corta: graba un video limpio de 1 a 30 segundos, conviértelo en un archivo .ycd, ponlo en la carpeta stream/ de un resource y reprodúcelo con TaskPlayAnim o agrégalo a tu menú de emotes.

Cómo funcionan las animaciones en FiveM

GTA V guarda las animaciones en diccionarios de clips: archivos .ycd. Cada diccionario contiene uno o más clips, que son las animaciones en sí.

Del video del celular al emote en el juego

Para reproducir una animación, un script necesita dos nombres:

  • el diccionario – el nombre del archivo .ycd sin la extensión, por ejemplo my_dance;
  • el clip – el nombre de la animación dentro de ese archivo, por ejemplo anim.

FiveM te deja hacer stream de tus propios archivos .ycd, igual que con autos o ropa personalizada. Cualquier .ycd dentro de la carpeta stream/ de un resource se envía a los jugadores cuando entran, y a partir de ahí funciona exactamente como una animación nativa de GTA.

Paso 1: Graba un buen video

La calidad de la animación depende casi por completo del video de entrada. Unas pocas reglas marcan la diferencia entre un emote limpio y uno que tiembla:

Grabaciones buenas y malas para captura de movimiento

  • Graba el cuerpo completo, de la cabeza a los pies, durante todo el clip. Que los pies se salgan del cuadro es la causa más común de deslizamientos y temblores.
  • Mantén la cámara fija. Usa un trípode o apoya el celular en algo. Nada de paneos ni zoom.
  • Una sola persona en cuadro. Otras personas moviéndose al fondo confunden el tracking.
  • Ilumina bien la escena y párate frente a un fondo liso.
  • Usa ropa ajustada. Las sudaderas holgadas y los abrigos largos tapan las articulaciones que el tracker necesita ver.
  • Mira hacia la cámara de frente o con un leve ángulo. Evita pasar mucho tiempo de espaldas.
  • Empieza y termina en la misma pose neutral si el emote va a ir en loop. Así el loop no da un salto visible.

Hazlo corto. La mayoría de los emotes son 2 a 10 segundos de movimiento en loop. Siempre puedes grabar una toma más larga y recortarla.

Paso 2: Convierte el video en una animación YCD

Con la herramienta de video a animación de BLDR:

Pantalla de exportación de BLDR Mocap con el diccionario de clips, el clip anim y el botón Download YCD

  1. Abre Mocap y elige Video to Animation.
  2. Sube tu clip. Los videos deben durar entre 1 y 30 segundos y pesar menos de 100 MB.
  3. Ponle un nombre corto al proyecto. Ese será el nombre del archivo de tu animación, y por lo tanto el nombre del diccionario, así que usa solo minúsculas, números y guiones bajos: bldr_wave, no My Wave (final).mp4.
  4. Espera a que se procese. BLDR extrae el movimiento del cuerpo del video, lo retargetea al esqueleto de ped de GTA V y genera un .ycd.
  5. Previsualiza el resultado y descarga el .ycd (las descargas están incluidas en los planes pagos).

El clip dentro de cada exportación de BLDR se llama anim, así que el diccionario es el nombre de tu archivo y el clip siempre es anim.

Elige un nombre único. Si tu diccionario se llama igual que un diccionario del juego base o que la animación de otro resource, uno va a reemplazar al otro sin avisar. Ponerle a todo el prefijo de tu servidor (myrp_wave, myrp_dance01) lo evita.

Paso 3: Crea un resource para tus emotes

Crea una carpeta en resources/ para tus animaciones personalizadas:

resources/ └── [emotes]/ └── myrp_anims/ ├── fxmanifest.lua └── stream/ ├── myrp_wave.ycd └── myrp_dance01.ycd

El fxmanifest.lua solo necesita declarar el resource. Todo lo que esté en stream/ se hace stream automáticamente:

fx_version 'cerulean'
game 'gta5'

Agrégalo al server.cfg para que arranque con el servidor:

ensure myrp_anims

Reinicia el resource, o el servidor, y las animaciones ya quedan disponibles para todos los jugadores conectados.

Paso 4: Reproduce la animación

Con un comando simple

La forma más rápida de probar es un pequeño client script. Agrega un client.lua al mismo resource y regístralo en el manifest con client_script 'client.lua':

local function playEmote(dict, clip, flags)
    RequestAnimDict(dict)
    while not HasAnimDictLoaded(dict) do
        Wait(0)
    end

    TaskPlayAnim(PlayerPedId(), dict, clip, 8.0, -8.0, -1, flags, 0, false, false, false)
    RemoveAnimDict(dict)
end

RegisterCommand('wave', function()
    playEmote('myrp_wave', 'anim', 49)
end, false)

RegisterCommand('stopemote', function()
    ClearPedTasks(PlayerPedId())
end, false)

Escribe /wave en el juego para probar. El argumento flags controla cómo se reproduce la animación:

FlagValorEfecto
Loop1Se repite hasta que la canceles
Solo parte superior del cuerpo16Las piernas se mueven normal
Control del jugador32El jugador puede seguir moviéndose durante la animación

Suma los valores para combinarlos. 49 (1 + 16 + 32) es el clásico "loop en la parte superior mientras caminas", ideal para saludos y gestos. Usa 1 para bailes de cuerpo completo donde las piernas deben seguir la animación.

Si usas ox_lib, lib.requestAnimDict(dict) reemplaza el loop de request y espera.

En tu menú de emotes

La mayoría de los servidores usan un menú de emotes como rpemotes-reborn en lugar de comandos sueltos. Estos menús traen un archivo para animaciones personalizadas, donde cada entrada asocia un comando de emote con un diccionario y un clip. En rpemotes-reborn una entrada se ve más o menos así:

["myrpwave"] = {
    "myrp_wave",   -- diccionario (el nombre de tu archivo .ycd)
    "anim",        -- nombre del clip (siempre "anim" en exportaciones de BLDR)
    "MyRP Saludo", -- texto que aparece en el menú
    AnimationOptions = {
        EmoteLoop = true,
        EmoteMoving = true,
    },
},

El nombre exacto del archivo y la estructura de la tabla cambian entre versiones, así que revisa el README de tu menú de emotes para ver dónde van los emotes personalizados. Deja tus archivos .ycd en tu propio resource de streaming y no dentro de la carpeta del menú; así, actualizar el menú nunca borra tus animaciones.

Solución de problemas

La animación no se reproduce. Verifica que el resource esté iniciado (ensure myrp_anims), que el nombre del diccionario en tu script coincida exactamente con el nombre del archivo .ycd (sin .ycd) y que el nombre del clip sea anim. En la práctica los nombres distinguen mayúsculas y minúsculas; mantén todo en minúsculas.

El personaje se queda en T-pose o en la pose por defecto. El diccionario no cargó. Casi siempre es un error de tipeo en el nombre del diccionario o el archivo no está dentro de stream/.

Los pies se deslizan o el cuerpo se desplaza. Eso viene del video original: la cámara se movió o los pies salieron del cuadro. Vuelve a grabar con la cámara fija y el cuerpo completo a la vista.

El loop salta al final. Empieza y termina la grabación en la misma pose, o recorta el clip para que el primer y el último frame coincidan.

Se ve distinto en peds femeninos. Los peds freemode masculinos y femeninos tienen proporciones diferentes, así que la misma animación puede verse un poco rara en uno de los dos. Prueba en ambos y graba una toma aparte si alguno se ve mal.

Ideas de emotes exclusivos para tu servidor

  • Emotes de tendencia. Recrea un baile que esté de moda ahora mismo. A los jugadores les encanta usar los mismos pasos que vieron en internet, y los clips de tu servidor haciéndolos son excelente promoción.
  • Animaciones de trabajo. Mecánicos limpiándose las manos, paramédicos tomando el pulso, policías dirigiendo el tránsito.
  • Firmas de bandas y crews. Un saludo o pose único para cada organización de tu servidor.
  • Emotes de staff y eventos. Animaciones de celebración para los ganadores de eventos o un emote especial para quienes apoyan el servidor.

¿Necesitas un servidor donde usarlos? Empieza con Cómo crear un servidor de FiveM. Si también estás eligiendo framework, Qbox vs QBCore vs ESX compara las tres opciones principales.

Preguntas frecuentes

¿Necesito equipo de captura de movimiento?

No. Un celular en un trípode alcanza para la mayoría de los emotes, siempre que el cuerpo completo quede en cuadro y la cámara no se mueva.

¿Los jugadores tienen que descargar algo?

No. Las animaciones en una carpeta stream/ se envían automáticamente a los jugadores cuando entran, como cualquier otro asset en stream.

¿Puedo vender los emotes que hago?

Tu propia actuación grabada es tuya. Si los vendes, sigue las reglas de monetización de Cfx.re, y no recrees coreografías con derechos de autor ni la imagen de personas sobre las que no tienes derechos.

¿Funciona en RedM?

Esta guía cubre GTA V y FiveM. RedM usa otro esqueleto y otro set de animaciones, así que los archivos .ycd de FiveM no sirven ahí.

Sigue leyendo