Pular para o conteúdo principal

FreeMinecraftModels Model Authoring Notes

Esta pagina documenta os detalhes atuais de authoring que sao visiveis no codigo do FreeMinecraftModels. Ela e intencionalmente conservadora: foca-se no contrato de importacao e runtime, nao em todas as preferencias de workflow do Blockbench.

Formatos de origem

Atualmente o FreeMinecraftModels aceita:

  • ficheiros .bbmodel para imports de origem editaveis
  • ficheiros .fmmodel para dados de modelo simplificados e prontos para runtime

O fluxo normal de importacao e:

  1. colocar o modelo em plugins/FreeMinecraftModels/imports
  2. correr /fmm reload
  3. deixar o FreeMinecraftModels importar o modelo para o conjunto ativo e reconstruir o resource pack gerado

Papeis das pastas

plugins/FreeMinecraftModels/imports
plugins/FreeMinecraftModels/models
plugins/FreeMinecraftModels/models_disabled
  • imports e a pasta de entrada para imports manuais de modelos e downloads de pacotes oficiais antes do processamento
  • models contem conteudo de modelos instalado e ativo
  • models_disabled contem conteudo de pacotes descarregado ou instalado que esta atualmente desativado

IDs de modelo

  • Os IDs de modelo em runtime veem do nome do ficheiro, sem a extensao .bbmodel ou .fmmodel
  • Usa nomes de ficheiro estaveis e unicos porque e esse ID que os comandos e chamadas de API resolvem
  • As referencias de animacao do Blockbench sao baseadas em nomes, por isso nomes duplicados ou pouco claros dentro do modelo tendem a causar mais problemas do que nomes limpos e explicitos

Compatibilidade com Blockbench

  • O FreeMinecraftModels deteta a versao do ficheiro do Blockbench durante a importacao
  • O importador atual ainda contem ramos de compatibilidade para versoes anteriores ao Blockbench v5
  • Se os logs de importacao disserem que o formato do modelo nao e compativel com o FreeMinecraftModels, trata isso primeiro como um problema de formato de modelo, nao como um problema do wiki ou de comandos

Convencoes de bones com impacto em runtime

O pipeline atual de conversao e skeleton reconhece algumas convencoes de nomes:

  • hitbox
    • reservado para geracao de hitbox
    • deve definir a hitbox do modelo de forma limpa em vez de ser usado como bone visual
  • tag_...
    • tratado como bone virtual relacionado com nametag
  • h_...
    • tratado como bone de cabeca

Estas nao sao apenas convencoes de estilo; afetam a conversao e o comportamento em runtime.

IK, null objects e locators

O codigo atual confirma suporte para:

  • null objects do Blockbench como controladores IK
  • blueprints de cadeias IK e resolucao IK em runtime
  • parsing de locators

Restricao pratica importante:

  • A procura de controladores IK e baseada no nome, por isso o nome do controlador precisa de se manter estavel entre a estrutura do modelo e os dados de animacao

Separacao de output em 1.21.4+

Para Minecraft 1.21.4+, o FreeMinecraftModels gera ficheiros de definicao de item model em:

plugins/FreeMinecraftModels/output/FreeMinecraftModels/assets/freeminecraftmodels/items

Versoes mais antigas continuam a usar o esquema antigo de item model. Se estiveres a verificar o output gerado durante o authoring, confirma que estas a olhar para a forma de output correta para a versao do teu servidor.

Notas sobre Bedrock e caminhos de renderizacao

  • O suporte a Bedrock depende de sendCustomModelsToBedrockClients e do caminho envolvente de Floodgate/Geyser/resource-pack
  • Clientes Java em versoes suportadas podem usar renderizacao com display entities quando useDisplayEntitiesWhenPossible esta ativado
  • Nao assumas que um modelo que parece correto num cliente Java e automaticamente seguro para o teu caminho Bedrock

Conselhos praticos de authoring

  • manter os nomes dos ficheiros estaveis porque se tornam IDs de runtime
  • manter os nomes de controladores e animacoes explicitos porque a procura de animacoes no Blockbench e orientada por nomes
  • usar intencionalmente os nomes reservados de virtual bones
  • validar o output importado depois de /fmm reload, nao apenas dentro do Blockbench
  • verificar o conteudo do pack gerado para a tua linha alvo de Minecraft, especialmente em 1.21.4+

Fora do ambito

Esta pagina nao tenta garantir:

  • passos exatos da UI do Blockbench
  • preferencias artisticas de workflow
  • todas as peculiaridades antigas de .bbmodel descritas em material README local mais antigo

Esses detalhes mudam mais depressa do que o contrato de runtime verificado acima.