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
.bbmodelpara imports de origem editaveis - ficheiros
.fmmodelpara dados de modelo simplificados e prontos para runtime
O fluxo normal de importacao e:
- colocar o modelo em
plugins/FreeMinecraftModels/imports - correr
/fmm reload - 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
importse a pasta de entrada para imports manuais de modelos e downloads de pacotes oficiais antes do processamentomodelscontem conteudo de modelos instalado e ativomodels_disabledcontem 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
.bbmodelou.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
sendCustomModelsToBedrockClientse do caminho envolvente de Floodgate/Geyser/resource-pack - Clientes Java em versoes suportadas podem usar renderizacao com display entities quando
useDisplayEntitiesWhenPossibleesta 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
.bbmodeldescritas em material README local mais antigo
Esses detalhes mudam mais depressa do que o contrato de runtime verificado acima.