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.
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í.
- Pon tu archivo Blockbench del Modelo Personalizado (
.bbmodel) en el directorio(tuServidor)/plugins/ModelEngine/blueprints. - Ejecuta el comando
/meg reload. Si todo funcionó correctamente, deberías recibir un mensaje que dice[Model Engine] X models loaded, dondexes 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!
- Ve al directorio
(tuServidor)/plugins/ModelEngine/resource packy crea un resource pack usando esos datos o añade la carpetaassetsde allí a losassetsde tu resource pack- Si estás creando un nuevo resource pack, puedes poner los archivos en
resource packen un archivo comprimido, y eso será un resource pack válido que puedes distribuir. Más información. - Si ya tienes un resource pack, asegúrate de no estar sobrescribiendo accidentalmente modelos existentes. Más información.
- Si estás creando un nuevo resource pack, puedes poner los archivos en
- 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.
- (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.* - (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.* - (Opcional) Para forzar a los jugadores a usar resource packs, usa la opción
require-resource-pack=trueen server.properties.*
- (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
¡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_meleeno está definido, recurre aattack - Si
attack_rangedno está definido, recurre aattack - Si
attackno 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
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
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:
-
El modelo no es visible:
- Verifica que
/meg reloadmuestre 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)
- Verifica que
-
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
-
Ambos plugins instalados:
- EliteMobs usará FreeMinecraftModels si ambos están presentes
- Para forzar ModelEngine, desinstala FreeMinecraftModels