El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Cliente

Cómo añadir soporte para nuevos pets/muuns visuales en el cliente de MU

Guía completa para añadir nuevos pets y muuns visuales al cliente de MU Online, desde el modelo .bmd y las texturas hasta el registro del ítem y la sincronización con el servidor.

BR Bruno · Actualizado el 6 feb 2025 · ⏱ 24 min de lectura
Respuesta rápida

Los pets y muuns visuales son uno de los ganchos de personalización más potentes de un servidor de MU Online: una mascota nueva que acompaña al personaje, con su propio efecto, se convierte en un ítem deseado del cash shop o en recompensa de evento. Pero "añadir un pet" no es una tarea solo de clien

Los pets y muuns visuales son uno de los ganchos de personalización más potentes de un servidor de MU Online: una mascota nueva que acompaña al personaje, con su propio efecto, se convierte en un ítem deseado del cash shop o en recompensa de evento. Pero "añadir un pet" no es una tarea solo de cliente: es un trabajo de dos frentes que necesita casar el visual (modelo, textura, animación en el cliente) con la existencia y validación del ítem (en el servidor). Esta guía avanzada recorre el flujo completo: entender el pipeline de modelos .bmd, preparar textura y animación, registrar el modelo en el cliente, garantizar que el ítem exista en el servidor y probar la sincronización. Es un trabajo técnico, así que ve con calma y haz copia de seguridad en cada etapa.

Requisitos previos

  • Servidor y cliente funcionando de forma emparejada. Si aún no tienes esa base, móntala primero siguiendo la guía de cómo crear servidor de MU Online.
  • Herramienta de importación/exportación de .bmd compatible con tu season (plugins de 3ds Max, Blender o herramientas standalone de conversión BMD).
  • Conversor de texturas MU (.ozj/.ozt/.ozb).
  • Editor de imagen (GIMP/Photoshop) para las texturas.
  • Editor de la tabla de ítems de tu emulador (ItemList/Item.bmd o equivalente) y acceso a la base de datos/config del servidor.
  • Copia de seguridad de la carpeta Data/ del cliente y de las configuraciones de ítem del servidor.
Atenção: Los modelos 3D mal exportados son la causa nº 1 de crash de cliente en torno a los pets. Nunca pruebes un .bmd nuevo directamente en el cliente de producción: valídalo primero en una copia aislada.

Las dos mitades: cliente y servidor

Antes de tocar cualquier archivo, ten esta división clara en la cabeza:

MitadQué haceDónde vive
ClienteDibuja el pet: modelo 3D, textura, animación, efectoCarpeta Data/ del cliente (archivos .bmd, .ozt)
ServidorReconoce el ítem, valida la posesión, aplica bonus/efectoTabla de ítems + config del emulador

Si haces solo la mitad del cliente, el pet quizá aparezca para ti, pero el servidor no sabe que ese ítem existe: no persiste en la base de datos, no se puede dropear/comprar correctamente y otros jugadores pueden no ver nada. Si haces solo la mitad del servidor, el ítem existe pero aparece "invisible" o como un modelo genérico. Pet completo = las dos mitades casadas.

Cómo renderiza el cliente un pet/muun

MU Online carga modelos 3D en formato .bmd, que empaqueta malla, esqueleto, animaciones y referencias de textura. Cada modelo tiene un índice numérico que el motor usa para saber qué archivo cargar cuando hay que dibujar un ítem o criatura.

El flujo simplificado (concepto real, los detalles varían según season/cliente):

  1. El ítem equipado/activo informa un tipo/índice al motor;
  2. El motor mapea ese índice a un archivo .bmd (ej.: en Data/Item/ o Data/Monster/);
  3. El .bmd referencia texturas por nombre, que el motor busca en la misma carpeta;
  4. El motor reproduce la animación apropiada (idle, andar) del esqueleto embebido en el .bmd.
Nota: Las rutas e índices son ejemplos y varían según season/cliente. Los muuns modernos pueden vivir en una carpeta específica de muun con su propia tabla de índices. Inspecciona siempre cómo están organizados los pets existentes de TU cliente antes de añadir el nuevo.

Estrategia recomendada: partir de un modelo existente

Modelar un pet desde cero, exportarlo con esqueleto y animaciones correctos y que no haga crashear el cliente es difícil. El enfoque de menor riesgo es derivar de un muun/pet que ya funciona:

  • Garantizas que el esqueleto y las animaciones son válidos (heredados del original);
  • Cambias solo lo que da identidad nueva: la textura y, opcionalmente, la malla;
  • El riesgo de crash cae drásticamente.

Solo pasa a un modelo totalmente nuevo si tienes experiencia con el pipeline .bmd de tu season.

Paso 1 — Preparar el modelo

Opción A: recolorear/retexturizar un pet existente (recomendado)

  1. Localiza el .bmd y las texturas del pet base (ej.: un muun existente en Data/...);
  2. Haz copia de seguridad de todo;
  3. Convierte la textura .ozt/.ozj a .png/.jpg;
  4. En el editor, recolorea o repinta la textura manteniendo el tamaño y el layout del mapa UV;
  5. Reconvierte al formato original;
  6. Si quieres un ítem SEPARADO (no sustituir el original), copia el .bmd y la textura con nombres/índices nuevos y ajusta las referencias internas de textura del .bmd al nuevo nombre.

Opción B: importar un modelo nuevo

  1. Importa una base .bmd de tu season en la herramienta 3D (para heredar el esqueleto);
  2. Sustituye/ajusta la malla manteniendo el rig (bones) compatible;
  3. Ajusta el mapa UV para tu textura;
  4. Exporta de vuelta a .bmd con el mismo patrón de animaciones;
  5. Prueba el modelo aislado antes de registrarlo.
Dica: Mantén el conteo de bones y la nomenclatura de animaciones iguales a las del modelo base. Es la incompatibilidad de esqueleto/animación la que más causa crash o pet "congelado" en T-pose.

Paso 2 — Preparar y posicionar la textura

  1. Crea la textura en el tamaño que espera el mapa UV (las potencias de 2 son lo más seguro: 128x128, 256x256 — varía según season/cliente);
  2. Usa .ozt si necesitas transparencia (recortes, plumas, tela); .ozj para texturas sólidas;
  3. Nombra la textura exactamente como la referencia el .bmd;
  4. Coloca la textura en la misma carpeta que el motor espera para ese modelo;
  5. Comprueba en el editor que no haya un canal alfa "sucio" que dejaría partes invisibles.

Paso 3 — Registrar el modelo en el cliente

El cliente necesita asociar el índice del ítem a tu .bmd. Cómo se hace varía:

  • Cliente con tabla externa: edita el archivo de mapeo (ej.: una tabla de ítems/muuns en texto o binario) añadiendo la línea del nuevo índice apuntando a tu .bmd y textura;
  • Cliente con mapeo en el ejecutable: necesitas el source del cliente o una herramienta de la distribución para insertar el nuevo índice.

Pasos generales en el caso de tabla externa (ejemplo, varía según season/cliente):

  1. Abre la tabla de ítems/modelos del cliente;
  2. Localiza el intervalo de índices de pets/muuns;
  3. Añade una entrada nueva con un índice libre (no reutilices un índice ocupado, o sustituirás otro ítem);
  4. Apunta la entrada al nombre de tu .bmd y de la textura;
  5. Guarda y recarga el cliente.
Atenção: Elegir un índice ya usado sobrescribe el pet original para todos los jugadores. Mantén una hoja de cálculo de los índices personalizados que ya ocupaste para no colisionar nunca.

Paso 4 — Crear el ítem en el servidor

Ahora la mitad del servidor. El ítem del pet debe existir en la tabla de ítems del emulador, con el mismo índice/section que espera el cliente.

  1. Abre el editor de ítems de tu emulador (ItemList, Item.txt, o tabla en la base de datos — varía según emulador);
  2. Añade el ítem del pet en el mismo section/index que usaste en el cliente;
  3. Define propiedades: nombre, si es un muun/pet, duración (si es temporal), bonus asociados;
  4. Si el pet da efecto de estado (ej.: bonus de ataque/defensa), configúralo en la parte de efectos de ítem/muun del servidor;
  5. Guarda y recarga las configuraciones del servidor.
Nota: El índice del ítem en el servidor y el índice del modelo en el cliente deben ser coherentes con el mapeo de tu season. En algunas distribuciones es una correspondencia directa; en otras hay una tabla intermedia. Alinea ambos lados usando un pet existente como referencia de cómo se relacionan los números.

Paso 5 — Probar la sincronización

  1. Genera el ítem para una cuenta de prueba (vía comando de GM o drop controlado);
  2. Equipa/activa el pet y verifica:
  • El modelo aparece correctamente (no invisible, no caja, no T-pose);
  • La textura es correcta (sin partes blancas/negras indebidas);
  • La animación de idle y de andar se reproducen;
  • Se aplica el efecto/bonus del servidor;
  1. Entra con una segunda cuenta y confirma que el segundo jugador también ve el pet del primero;
  2. Cierra sesión/vuelve a entrar y verifica que el ítem persiste en la base de datos.

La prueba con la segunda cuenta es decisiva: es la que demuestra que la mitad del servidor está funcionando, y no solo tu cliente personalizado.

Errores comunes y soluciones

ErrorCausa probableSolución
El pet aparece invisibleTextura no encontrada o nombre incorrectoComprobar nombre/carpeta de la textura referenciada en el .bmd
El pet aparece como caja/blanco.bmd cargado sin textura válidaVerificar la conversión de la textura y el mapa UV
El cliente crashea al invocar el petModelo mal exportado / bones incompatiblesReexportar a partir de una base válida de la season
Pet en T-pose o congeladoAnimaciones ausentes/incompatiblesHeredar el conjunto de animaciones del modelo base
Solo tú ves el petEl ítem no existe/no está registrado en el servidorAñadir el ítem en la tabla del servidor con índice coherente
El pet desaparece tras cerrar sesiónÍtem no persistido en la base de datosConfirmar que el ítem es válido y reconocido por el servidor
Sustituiste otro pet sin quererÍndice reutilizadoUsar un índice libre y mantener una hoja de índices custom
Textura con partes transparentes incorrectasCanal alfa incorrecto en el .oztRevisar el alfa y reexportar; usar .ozj si no se necesita alfa

Distribuir el pet a los jugadores

Como el visual vive en el cliente, todos los jugadores necesitan recibir los nuevos archivos, si no solo quien tiene el cliente actualizado ve el pet.

# Empaquetar los archivos nuevos del pet (PowerShell + 7-Zip)
& "C:\Program Files\7-Zip\7z.exe" a -t7z -mx=9 patch-pet.7z Data\

# Hash de integridad para publicar
Get-FileHash patch-pet.7z -Algorithm SHA256 | Select-Object Hash

Añade los archivos del modelo y de la textura a la lista del launcher/updater para que la actualización llegue a todos automáticamente. Libera el ítem en el cash shop o en eventos solo después de que el patch de cliente ya esté distribuido, si no los jugadores compran un pet que nadie puede ver.

Lista de verificación de lanzamiento

  • Copia de seguridad de la carpeta Data/ del cliente y de las configuraciones de ítem del servidor
  • Modelo derivado de una base válida de la season (esqueleto/animaciones heredados)
  • Textura creada en el tamaño del mapa UV y en el formato correcto (.ozt/.ozj)
  • Textura nombrada exactamente como la referencia el .bmd, en la carpeta correcta
  • Índice nuevo elegido de un intervalo libre (sin colisionar con pets existentes)
  • Modelo registrado en el cliente (tabla externa o source)
  • Ítem creado en el servidor en el section/index coherente con el cliente
  • Efecto/bonus del pet configurado en el servidor
  • Probado: modelo, textura, animación y efecto con una cuenta
  • Validado con una segunda cuenta (otro jugador ve el pet)
  • Ítem persistiendo tras cerrar sesión/volver a entrar
  • Patch de cliente distribuido vía launcher ANTES de liberar el ítem
  • Hoja de índices personalizados actualizada

Preguntas frecuentes

¿Añadir un pet visual es solo tocar el cliente?

No. El visual (modelo, textura, animación) vive en el cliente, pero el ítem también debe existir y ser reconocido por el servidor. Si solo el cliente conoce el pet, aparece para quien tiene el cliente personalizado, pero el servidor no valida el ítem y otros jugadores pueden no ver nada.

¿Qué formato usan los modelos de pet?

MU Online usa archivos .bmd para modelos y animaciones 3D, con texturas en .ozj/.ozt/.ozb. El muun/pet sigue el mismo patrón que los demás modelos del juego. Los índices y nombres exactos varían según la season/cliente.

¿Puedo reaprovechar el modelo de un pet existente?

Sí, y es el camino más seguro. Recolorear la textura de un muun ya existente o cambiar solo el material da un pet nuevo visualmente sin necesidad de modelar desde cero, y reduce mucho el riesgo de crash por un modelo mal exportado.

¿Por qué mi pet aparece invisible o como una caja?

Normalmente el modelo .bmd se cargó pero la textura no se encontró, o el índice del modelo no coincide con el registrado. Comprueba que la textura esté en la carpeta correcta, con el nombre exacto, y que el índice del .bmd corresponda a lo que el cliente espera.

¿Necesito el source del cliente para añadir un pet?

Depende de la season. En algunos clientes hay tablas/archivos externos que mapean ítems a modelos, y se puede añadir sin recompilar. En otros, el mapeo está en el ejecutable y necesitas el source o herramientas específicas de la distribución.

BR
Editor de eventos, mapas e ítems

Bruno es especialista en eventos, mapas, bosses y economía de ítems de MU Online. Documenta cada detalle basándose en el juego real.

Sigue leyendo

Artículos relacionados