Saltar al contenido principal

Modelos Personalizados

EliteMobs soporta Modelos Personalizados a través de Model Engine y FreeMineCraftModels.

Prefacio

Desde la perspectiva de EliteMobs, el sistema de Modelos Personalizados es muy simple, ya que lo único que los administradores tienen que hacer es añadir una línea al archivo de configuración de un NPC o Jefe Personalizado indicándole qué Modelo Personalizado usar. Sin embargo, es necesario tomar los pasos correctos con Model Engine y Minecraft para que este sistema funcione plenamente, y estos no son tan fáciles de abordar.

Esta guía entrará en detalle en cuanto a la interfaz con Model Engine y Minecraft. No te dirá cómo usar Blockbench para crear jefes personalizados, ni entrará en detalle sobre cómo funciona Model Engine. Ya hay muchas guías sobre cómo hacer eso en otros lugares, y si quieres aprender más sobre esos sistemas, te conviene más mirar directamente su documentación.

FreeMineCraft Models

Si quieres aprender cómo puedes usar FMM para que tus modelos funcionen, puedes consultar esta página de la wiki para aprender más.

Soporte para Bedrock (Geyser)

Que los jugadores de Bedrock (que se conectan a través de Geyser/Floodgate) puedan ver los modelos personalizados depende enteramente de tu plugin de modelos (ModelEngine o FreeMinecraftModels) y de la configuración de tu resource pack, no de EliteMobs. EliteMobs sí detecta a los clientes de Bedrock, pero usa esa información para cosas como el renderizado de menús y la posición de las etiquetas de nombre — no genera ni sirve un modelo separado compatible con Bedrock. Consulta la documentación de tu plugin de modelos para conocer el soporte de modelos para Bedrock/Geyser.

Integración con LibsDisguises

EliteMobs también soporta LibsDisguises como una alternativa a los modelos personalizados. Cuando los modelos personalizados no están configurados, EliteMobs puede usar LibsDisguises para cambiar la apariencia de las entidades. Esta integración maneja la sincronización de la visibilidad del nombre automáticamente.

Para usar LibsDisguises en lugar de modelos personalizados, configura los ajustes de disfraz de tu jefe/NPC sin especificar un campo customModel.

Objetos con Modelos con Script (FMM)

Los objetos personalizados de EliteMobs pueden usar el sistema de objetos con script de FreeMinecraftModels para un comportamiento avanzado de modelo + script Lua. Esto va más allá de los modelos personalizados estáticos — los objetos con script pueden reaccionar a equipar, atacar, clic derecho y muchos otros eventos de objetos (FMM expone 22 hooks de script de objetos en total) vía scripts Lua.

Para usar esto, establece el campo scriptedItem en la configuración de tu objeto personalizado al ID del objeto de FMM. EliteMobs gestiona el nombre, lore, encantamientos y nivel; FMM proporciona el modelo 3D y el comportamiento del script.

# Ejemplo de configuración de objeto personalizado de EliteMobs
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade

Consulta la guía Primeros pasos con Lua de FMM para escribir scripts de objetos, y la guía de API de FMM para detalles sobre la integración para desarrolladores.

Requisitos mínimos

EliteMobs, Model Engine R3.0.0* o posterior O FreeMinecraftModels, Blockbench**, y un Resource Pack de Minecraft.

* Este plugin puede tener más dependencias. Consulta la documentación de su lado.
** Necesario para crear y editar Modelos Personalizados. No es necesario si solo quieres instalar contenido sin modificarlo.

Prioridad de Plugins

Si tanto ModelEngine como FreeMinecraftModels están instalados, EliteMobs usará FreeMinecraftModels por defecto. Solo un plugin de modelos personalizados estará activo a la vez.

Configurar manualmente un Modelo Personalizado

Nota: Esta guía asume que ya tienes un Modelo Personalizado válido. Estos vienen en formatos de archivo de Blockbench (.bbmodel).

EliteMobs es capaz de usar Modelos Personalizados para NPCs y Jefes Personalizados. El proceso para hacer esto es el mismo para ambos, y es el siguiente:

Paso 1. Configurar el archivo de configuración de EliteMobs

Ve al archivo de configuración del Jefe Personalizado o NPC que quieras modificar y añade la siguiente línea:

customModel: modelname

Reemplaza modelname con el nombre de tu modelo. El nombre es el nombre del archivo del Modelo Personalizado que estás usando. Como ejemplo, el archivo del Modelo Personalizado del Test Boss es showcase_boss.bbmodel. Por lo tanto, la opción de configuración debe ser

customModel: showcase_boss

¡Y eso es todo para EliteMobs! Ahora se vuelve un poco más complicado.

Paso 2. Generar los datos de Model Engine

Nota: En caso de duda o problemas, consulta la wiki de Model Engine aquí.

  1. Pon tu archivo Blockbench del Modelo Personalizado (.bbmodel) en el directorio (tuServidor)/plugins/ModelEngine/blueprints.
  2. Ejecuta el comando /meg reload. Si todo funcionó correctamente, deberías recibir un mensaje que dice [Model Engine] X models loaded, donde x es la cantidad de modelos que tienes registrados.

Paso 3. Distribuir el Resource Pack

Esta es posiblemente la parte más complicada si buscas que el servidor gestione las descargas. ¡Intenta comprobar si el sistema funciona cuando tienes el resource pack en tu cliente antes de mirar cómo distribuirlo automáticamente!

  1. Ve al directorio (tuServidor)/plugins/ModelEngine/resource pack y crea un resource pack usando esos datos o añade la carpeta assets de allí a los assets de tu resource pack
    1. Si estás creando un nuevo resource pack, puedes poner los archivos en resource pack en un archivo comprimido, y eso será un resource pack válido que puedes distribuir. Más información.
    2. Si ya tienes un resource pack, asegúrate de no estar sobrescribiendo accidentalmente modelos existentes. Más información.
  2. Distribuye tu resource pack a tus jugadores. Solo los jugadores que tengan el resource pack podrán ver los Modelos Personalizados, y se verá muy raro y roto para todos los demás. Si tienes la intención de hacer un uso intensivo de estos, es posible que quieras forzar el uso del resource pack.
    1. (Opcional) Para permitir que los jugadores descarguen un resource pack al iniciar sesión, necesitarás alojar el archivo en algún lugar en línea y cambiar el campo resource-pack= en server.properties para que apunte a esa dirección.*
    2. (Opcional) Si estás modificando los resource packs, querrás usar la opción resource-pack-sha1= para que el servidor pueda comprobar si el resource pack del jugador necesita ser actualizado. Para generar este valor, sube tu resource pack a http://onlinemd5.com/ y asegúrate de elegir la opción SHA1. Tendrás que hacer esto cada vez que actualices tu Resource Pack, o si no, tus usuarios no recibirán la actualización.*
    3. (Opcional) Para forzar a los jugadores a usar resource packs, usa la opción require-resource-pack=true en server.properties.*

¡Si modificaste server.properties tendrás que reiniciar!

* Nota: Hay muchas guías en línea que pueden ayudarte a hacer que esto funcione si estas instrucciones no te están ayudando.

Combinar resource packs

Si necesitas combinar tus resource packs puedes hacerlo manualmente. Pero recomendamos usar una herramienta en línea como merge.elmakers para combinar tus resource packs.

Paso 4. Esperar que funcione

Asumiendo que todo se hizo correctamente, ahora deberías poder ver el Modelo Personalizado en tu jefe o NPC. Puedes generarlos a través de los comandos:

  • Jefe Personalizado: /em spawn boss filename.yml
  • NPC: /em place npc filename.yml

Luego puedes eliminarlos a través del comando /em remove.

Crear y adaptar Modelos Personalizados para EliteMobs

EliteMobs es capaz de usar cualquier modelo considerado válido por Model Engine, lo que significa que no hay mucho que no se pueda hacer con él.

Sin embargo, cuando se trata de animaciones, se requiere el uso de nombres específicos para las animaciones para garantizar que los jefes puedan usar las animaciones.

Estos nombres de animación son los que se establecen en Blockbench en la pestaña de animaciones. Puedes renombrarlos en cualquier momento, lo que significa que puedes adaptar cualquier modelo existente para que funcione con EliteMobs.

Animaciones

Ten en cuenta que esta sección sigue expandiéndose, ya que este sistema es todavía muy reciente. Se añadirá más a medida que lleguen las solicitudes de funciones.

idle

idle es el nombre de la animación para entidades que no están en combate y no se están moviendo. EliteMobs inicializa el modelo con el estado idle pero no anula el sistema de animación idle integrado de ModelEngine. El modelo usará automáticamente esta animación a través del comportamiento por defecto de ModelEngine/FMM.

walk

walk es el nombre de la animación para entidades que se están moviendo. EliteMobs inicializa el modelo con el estado walk pero no anula el sistema de animación walk integrado de ModelEngine. El modelo usará automáticamente esta animación a través del comportamiento por defecto de ModelEngine/FMM.

attack

Hay tres tipos de animaciones de ataque:

attack

attack es el nombre correcto de la animación genérica para cuando un jefe ataca.

attack_melee

attack_melee es el nombre correcto de la animación para los ataques realizados cuando un Jefe Personalizado ataca a una entidad usando un ataque melee vanilla de Minecraft. Anula a attack. Ten en cuenta que la animación se reproduce después de que se inflige el daño. Desafortunadamente, esta es una limitación por ahora. Por lo tanto, intenta hacer la animación muy rápida.

attack_ranged

attack_ranged es el nombre correcto de la animación para los ataques realizados cuando un Jefe Personalizado genera una entidad proyectil. Anula a attack. Ten en cuenta que la animación se reproduce después de que se dispara el proyectil. Desafortunadamente, esta es una limitación por ahora. Por lo tanto, intenta hacer la animación muy rápida.

Sistema de fallback de animaciones

EliteMobs usa un sistema de fallback para las animaciones de ataque:

  • Si attack_melee no está definido, recurre a attack
  • Si attack_ranged no está definido, recurre a attack
  • Si attack no está definido, no se reproduce ninguna animación

Esto te permite crear una única animación de ataque que funcione para todos los tipos de ataque, o crear animaciones especializadas para ataques melee vs a distancia.

damaged

aviso

La animación damaged actualmente no está implementada. Esta función está planeada para una versión futura. Los modelos no reproducirán automáticamente animaciones de daño cuando reciban un golpe.

death

death es el nombre correcto de la animación para la animación de muerte. EliteMobs no modifica el sistema por defecto de animación idle que usa Model Engine.

powers

aviso

Las animaciones de poderes AÚN NO ESTÁN IMPLEMENTADAS. Esta función está planeada para una versión futura.

Nota: este segmento todavía está en desarrollo. Las siguientes son las funciones tal como están planeadas.

Cada poder en EliteMobs puede tener una animación asignada. La animación siempre comienza cuando se activa el poder, y actualmente no se proporcionan más activadores durante el uso del poder. Algunos poderes, como las invulnerabilidades, no harán nada ya que no tienen activadores y son simplemente propiedades pasivas de los jefes.

Para asignar una animación a un poder, la animación debe tener el mismo nombre que el archivo del poder de elitemobs.

Como ejemplo, para añadir una animación al poder zombie necronomicon, la animación debe llamarse zombie_necronomicon.yml. Comenzará a reproducirse tan pronto como se active el poder, y terminará cuando la animación termine si no está configurada para hacer loop o cuando el poder termine.

Importar Modelos Personalizados desde mazmorras

Paso 1. Importación normal

Al importar una carpeta comprimida del empaquetador de mazmorras que contiene Modelos Personalizados, los Modelos Personalizados se mueven automáticamente a (tuServidor)/plugins/ModelEngine/blueprints y Model Engine se recarga automáticamente para generar los archivos relevantes del resource pack y de Model Engine.

Paso 2. Resource Pack

EliteMobs exporta automáticamente sus archivos integrados de resource pack a la carpeta (tuServidor)/plugins/EliteMobs/resource_pack al iniciarse. Esta exportación usa comparación de checksum para evitar copias innecesarias, por lo que los archivos solo se actualizan cuando cambia la versión del plugin.

Tendrás que combinar estos archivos de resource pack con los archivos de resource pack de Model Engine y distribuir el resource pack combinado a tus jugadores. Solo los jugadores que tengan el resource pack podrán ver los Modelos Personalizados.

Resolución de problemas

Problemas comunes:

  1. El modelo no es visible:

    • Verifica que /meg reload muestre tu modelo cargado
    • Comprueba que el resource pack esté instalado en el cliente
    • Asegúrate de que el nombre de customModel coincida con el nombre del archivo .bbmodel (sin extensión)
  2. Las animaciones no se reproducen:

    • Verifica que los nombres de las animaciones en Blockbench coincidan exactamente con los nombres documentados
    • Comprueba que las animaciones no estén configuradas para hacer loop si deben reproducirse una vez
    • Prueba las animaciones individuales usando los comandos de Model Engine
  3. Ambos plugins instalados:

    • EliteMobs usará FreeMinecraftModels si ambos están presentes
    • Para forzar ModelEngine, desinstala FreeMinecraftModels