Modelos Personalizados
O EliteMobs suporta Modelos Personalizados através do Model Engine e do FreeMineCraftModels.
Prefácio
Da perspetiva do EliteMobs, o sistema de Modelos Personalizados é muito simples, pois a única coisa que os administradores têm de fazer é adicionar uma linha ao ficheiro de configuração de um NPC ou Boss Personalizado a indicar qual o Modelo Personalizado a usar. No entanto, é necessário seguir os passos corretos com o Model Engine e o Minecraft para conseguir que este sistema fique totalmente funcional, e estes não são assim tão fáceis de aprender.
Este guia entrará em detalhe no que diz respeito à interação com o Model Engine e o Minecraft. Não te dirá como usar o Blockbench para criar bosses personalizados, nem entrará em detalhe sobre como o Model Engine funciona. Já existem muitos guias sobre como fazer isso noutros lugares, e se quiseres aprender mais sobre esses sistemas, serás mais bem servido consultando diretamente a documentação deles.
FreeMineCraft Models
Se quiseres aprender como podes usar o FMM para pôr os teus modelos a funcionar, então podes consultar esta página da wiki para saberes mais.
Suporte Bedrock (Geyser)
A possibilidade de os jogadores Bedrock (que se ligam através do Geyser/Floodgate) verem modelos personalizados depende inteiramente do teu plugin de modelos (ModelEngine ou FreeMinecraftModels) e da configuração do teu resource pack, não do EliteMobs. O EliteMobs deteta os clientes Bedrock, mas usa essa informação para coisas como a renderização de menus e o posicionamento de nametags — não gera nem fornece um modelo separado compatível com Bedrock. Consulta a documentação do teu plugin de modelos para suporte de modelos Bedrock/Geyser.
Integração com o LibsDisguises
O EliteMobs também suporta o LibsDisguises como uma alternativa aos modelos personalizados. Quando os modelos personalizados não estão configurados, o EliteMobs pode usar o LibsDisguises para alterar a aparência da entidade. Esta integração trata automaticamente da sincronização da visibilidade do nome.
Para usar o LibsDisguises em vez de modelos personalizados, configura as definições de disfarce do teu boss/NPC sem especificar um campo customModel.
Modelos de Item com Script (FMM)
Os itens personalizados do EliteMobs podem usar o sistema de itens com script do FreeMinecraftModels para comportamentos avançados de modelo + script Lua. Isto vai além dos modelos personalizados estáticos — os itens com script podem reagir a equipar, atacar, clicar com o botão direito e muitos outros eventos de item (o FMM expõe 22 hooks de script de item no total) através de scripts Lua.
Para usar isto, define o campo scriptedItem na configuração do teu item personalizado para o ID do item do FMM. O EliteMobs trata do nome, lore, encantamentos e nível; o FMM fornece o modelo 3D e o comportamento do script.
# Example EliteMobs custom item config
material: IRON_SWORD
name: "&cFlame Blade"
enchantments:
- "FIRE_ASPECT,2"
scalability: scalable
scriptedItem: flame_blade
Consulta o guia Introdução ao Lua do FMM para escrever scripts de item, e o guia da API do FMM para detalhes de integração para programadores.
Requisitos mínimos
EliteMobs, Model Engine R3.0.0* ou posterior OU FreeMinecraftModels, Blockbench**, e um Resource Pack de Minecraft.
* Este plugin pode ter mais dependências. Consulta a documentação do lado deles.
** Necessário para criar e editar Modelos Personalizados. Não é necessário se apenas pretendes instalar conteúdo sem o modificar.
Se tanto o ModelEngine como o FreeMinecraftModels estiverem instalados, o EliteMobs usará o FreeMinecraftModels por predefinição. Apenas um plugin de modelos personalizados estará ativo de cada vez.
Definir manualmente um Modelo Personalizado
Nota: Este guia assume que já tens um Modelo Personalizado válido. Estes vêm em formatos de ficheiro do Blockbench (.bbmodel).
O EliteMobs é capaz de usar Modelos Personalizados para NPCs e Bosses Personalizados. O processo para fazer isto é o mesmo para ambos, e é o seguinte:
Passo 1. Definir a configuração do EliteMobs
Vai ao ficheiro de configuração do Boss Personalizado ou NPC que queres modificar e adiciona a seguinte linha:
customModel: modelname
Substitui modelname pelo nome do teu modelo. O nome é o nome do ficheiro do Modelo Personalizado que estás a usar. Como exemplo, o ficheiro do Modelo Personalizado do Test Boss é showcase_boss.bbmodel. Como tal, a opção de configuração deve ser
customModel: showcase_boss
E é só isto para o EliteMobs! Agora fica um pouco mais complicado.
Passo 2. Gerar os dados do Model Engine
Nota: Em caso de dúvida ou problemas, consulta a wiki do Model Engine aqui.
- Coloca o teu ficheiro Blockbench do Modelo Personalizado (
.bbmodel) no diretório(yourServer)/plugins/ModelEngine/blueprints. - Executa o comando
/meg reload. Se tudo correu corretamente, deves receber uma mensagem a dizer[Model Engine] X models loaded, ondexé a quantidade de modelos que registaste.
Passo 3. Distribuir o Resource Pack
Esta é possivelmente a parte mais complicada se pretendes fazer com que o teu servidor faça a gestão dos downloads. Tenta verificar se o sistema funciona quando tens o resource pack no teu cliente antes de tratares de o distribuir automaticamente!
- Vai ao diretório
(yourServer)/plugins/ModelEngine/resource packe cria um resource pack usando esses dados ou adiciona a pastaassetsque está aí aosassetsdo teu resource pack- Se estiveres a criar um novo resource pack, podes colocar os ficheiros em
resource packnum ficheiro comprimido (zip), e isso será um resource pack válido que podes distribuir. Mais informação. - Se já tens um resource pack, certifica-te de que não estás a substituir acidentalmente modelos existentes. Mais informação.
- Se estiveres a criar um novo resource pack, podes colocar os ficheiros em
- Distribui o teu resource pack aos teus jogadores. Apenas os jogadores que tiverem o resource pack conseguirão ver os Modelos Personalizados, e ficará muito estranho e partido para todos os outros. Se pretendes fazer um uso intensivo destes, podes querer forçar o uso do resource pack.
- (Opcional) Para permitir que os jogadores descarreguem um resource pack ao iniciar sessão, terás de alojar o ficheiro algures online e alterar o campo
resource-pack=do server.properties para apontar para esse endereço.* - (Opcional) Se estiveres a modificar os resource packs, vais querer usar a opção
resource-pack-sha1=para que o servidor possa verificar se o resource pack do jogador precisa de ser atualizado. Para gerar este valor, carrega o teu resource pack em http://onlinemd5.com/ e certifica-te de que escolhes a opção SHA1. Terás de fazer isto sempre que atualizares o teu Resource Pack, caso contrário os teus utilizadores não receberão a atualização.* - (Opcional) Para forçar os jogadores a usar resource packs, usa a opção
require-resource-pack=trueno server.properties.*
- (Opcional) Para permitir que os jogadores descarreguem um resource pack ao iniciar sessão, terás de alojar o ficheiro algures online e alterar o campo
Se modificaste o server.properties terás de reiniciar!
* Nota: Existem muitos guias online que te podem ajudar a pôr isto a funcionar caso estas instruções não te estejam a ajudar.
Combinar resource packs
Caso precises de combinar os teus resource packs, podes fazê-lo manualmente. Mas recomendamos usar uma ferramenta online como o merge.elmakers para combinar os teus resource packs.
Passo 4. Espera que funcione
Assumindo que tudo foi feito corretamente, deves agora conseguir ver o Modelo Personalizado no teu boss ou NPC. Podes fazê-los aparecer através dos comandos:
- Boss Personalizado:
/em spawn boss filename.yml - NPC:
/em place npc filename.yml
Podes depois removê-los através do comando /em remove.
Criar e adaptar Modelos Personalizados para o EliteMobs
O EliteMobs é capaz de usar qualquer modelo considerado válido pelo Model Engine, o que significa que não há muito que não se possa fazer com ele.
No entanto, no que diz respeito às animações, é necessário o uso de nomes específicos para as animações para garantir que os bosses possam usar as animações.
Estes nomes de animação são os definidos no Blockbench no separador de animações. Podes renomeá-los a qualquer momento, o que significa que podes adaptar quaisquer modelos existentes para funcionarem com o EliteMobs.
Animações
Tem em conta que esta secção ainda está em expansão, pois este sistema ainda é muito recente. Mais será adicionado à medida que os pedidos de funcionalidades forem surgindo.
idle
idle é o nome da animação para entidades que não estão em combate e não se movem. O EliteMobs inicializa o modelo com o estado idle, mas não substitui o sistema de animação idle integrado do ModelEngine. O modelo usará automaticamente esta animação através do comportamento predefinido do ModelEngine/FMM.
walk
walk é o nome da animação para entidades que se estão a mover. O EliteMobs inicializa o modelo com o estado walk, mas não substitui o sistema de animação walk integrado do ModelEngine. O modelo usará automaticamente esta animação através do comportamento predefinido do ModelEngine/FMM.
attack
Existem três tipos de animações de ataque:
attack
attack é o nome de animação genérico correto para quando um boss ataca.
attack_melee
attack_melee é o nome de animação correto para ataques feitos quando um Boss Personalizado ataca uma entidade usando um ataque corpo a corpo vanilla do Minecraft. Substitui o attack. Tem em conta que a animação é reproduzida depois de o dano ser causado. Esta é, infelizmente, uma limitação por agora. Como tal, tenta fazer a animação muito rápida.
attack_ranged
attack_ranged é o nome de animação correto para ataques feitos quando um Boss Personalizado faz aparecer uma entidade projétil. Substitui o attack. Tem em conta que a animação é reproduzida depois de o projétil ser disparado. Esta é, infelizmente, uma limitação por agora. Como tal, tenta fazer a animação muito rápida.
Sistema de Animação de Recurso (Fallback)
O EliteMobs usa um sistema de recurso para as animações de ataque:
- Se
attack_meleenão estiver definido, recorre aattack - Se
attack_rangednão estiver definido, recorre aattack - Se
attacknão estiver definido, nenhuma animação é reproduzida
Isto permite-te criar uma única animação de ataque que funciona para todos os tipos de ataque, ou criar animações especializadas para ataques corpo a corpo vs. à distância.
damaged
A animação damaged não está atualmente implementada. Esta funcionalidade está planeada para um lançamento futuro. Os modelos não reproduzirão automaticamente animações de dano quando atingidos.
death
death é o nome de animação correto para a animação de morte. O EliteMobs não modifica o sistema de animação idle predefinido que o Model Engine usa.
powers
As animações de powers AINDA NÃO ESTÃO IMPLEMENTADAS. Esta funcionalidade está planeada para um lançamento futuro.
Nota: este segmento ainda está em desenvolvimento. Seguem-se as funcionalidades tal como estão planeadas.
Cada power no EliteMobs pode ter uma animação atribuída. A animação começa sempre quando o power é acionado, e atualmente não são fornecidos mais acionamentos ao longo do uso do power. Alguns powers, como as invulnerabilidades, não farão nada, pois não têm acionamentos e são apenas propriedades passivas dos bosses.
Para atribuir uma animação a um power, a animação deve ter o mesmo nome do ficheiro do power do elitemobs.
Como exemplo, para adicionar uma animação ao power zombie necronomicon, a animação deve chamar-se zombie_necronomicon.yml. Começará a ser reproduzida assim que o power for acionado, e terminará quando a animação acabar, se não estiver definida para repetir em loop, ou quando o power terminar.
Importar Modelos Personalizados a partir de masmorras
Passo 1. Importação normal
Ao importar uma pasta comprimida do dungeon packager que contém Modelos Personalizados, os Modelos Personalizados são automaticamente movidos para (yourServer)/plugins/ModelEngine/blueprints e o Model Engine recarrega automaticamente para gerar o resource pack e os ficheiros do Model Engine relevantes.
Passo 2. Resource Pack
O EliteMobs exporta automaticamente os seus ficheiros de resource pack integrados para a pasta (yourServer)/plugins/EliteMobs/resource_pack no arranque. Esta exportação usa comparação de checksum para evitar cópias desnecessárias, por isso os ficheiros só são atualizados quando a versão do plugin muda.
Terás de combinar estes ficheiros de resource pack com quaisquer ficheiros de resource pack do Model Engine e distribuir o resource pack combinado aos teus jogadores. Apenas os jogadores que tiverem o resource pack conseguirão ver os Modelos Personalizados.
Resolução de Problemas
Problemas comuns:
-
Modelo não visível:
- Verifica que o
/meg reloadmostra o teu modelo carregado - Verifica que o resource pack está instalado no cliente
- Certifica-te de que o nome do customModel corresponde ao nome do ficheiro .bbmodel (sem a extensão)
- Verifica que o
-
Animações não são reproduzidas:
- Verifica que os nomes das animações no Blockbench correspondem exatamente aos nomes documentados
- Verifica que as animações não estão definidas para repetir em loop se deveriam ser reproduzidas uma só vez
- Testa as animações individuais usando os comandos do Model Engine
-
Ambos os plugins instalados:
- O EliteMobs usará o FreeMinecraftModels se ambos estiverem presentes
- Para forçar o ModelEngine, desinstala o FreeMinecraftModels