Aller au contenu principal

Notes d'authoring de modeles pour FreeMinecraftModels

Cette page documente les details d'authoring actuellement visibles dans le code de FreeMinecraftModels. Elle reste volontairement conservative : elle se concentre sur le contrat d'import et d'execution, pas sur chaque preference de workflow Blockbench.

Formats source

FreeMinecraftModels accepte actuellement :

  • les fichiers .bbmodel pour les imports source modifiables
  • les fichiers .fmmodel pour des donnees de modele epurees et pretes pour l'execution

Le flux d'import normal est :

  1. placer le modele dans plugins/FreeMinecraftModels/imports
  2. executer /fmm reload
  3. laisser FreeMinecraftModels importer le modele dans l'ensemble actif et reconstruire le resource pack genere

Role des dossiers

plugins/FreeMinecraftModels/imports
plugins/FreeMinecraftModels/models
plugins/FreeMinecraftModels/models_disabled
  • imports est le dossier d'entree pour les imports manuels de modeles et les telechargements de packages officiels avant traitement
  • models contient le contenu de modele installe et actif
  • models_disabled contient le contenu de packages telecharges ou installes qui est actuellement desactive

IDs de modele

  • Les IDs de modele utilises en execution viennent du nom du fichier, sans l'extension .bbmodel ou .fmmodel
  • Utilise des noms de fichier stables et uniques, car ce sont ces IDs que les commandes et appels d'API resolvent
  • Les references d'animation Blockbench sont basees sur les noms, donc une denomination dupliquee ou floue dans le modele risque davantage de poser probleme qu'une denomination claire et explicite

Compatibilite Blockbench

  • FreeMinecraftModels detecte la version du fichier Blockbench pendant l'import
  • L'importeur actuel contient encore des branches de compatibilite pour les versions anterieures a Blockbench v5
  • Si les logs d'import indiquent que le format du modele n'est pas compatible avec FreeMinecraftModels, traite cela d'abord comme un probleme de format de modele, et non comme un probleme de wiki ou de commande

Conventions de bones significatives a l'execution

Le pipeline actuel de conversion et de skeleton reconnait quelques conventions de nommage :

  • hitbox
    • reserve a la generation de hitbox
    • doit definir proprement la hitbox du modele au lieu d'etre utilise comme bone visuel
  • tag_...
    • traite comme des bones virtuels lies aux nametags
  • h_...
    • traite comme des bones de tete

Ce ne sont pas seulement des conventions de style ; elles affectent la conversion et le comportement en execution.

IK, null objects et locators

Le code actuel confirme le support de :

  • null objects Blockbench comme controleurs IK
  • blueprints de chaines IK et resolution IK en runtime
  • parsing des locators

Contrainte pratique importante :

  • La recherche des controleurs IK est basee sur le nom, donc le nommage du controleur doit rester stable entre la structure du modele et les donnees d'animation

Separation de sortie en 1.21.4+

Pour Minecraft 1.21.4+, FreeMinecraftModels genere les fichiers de definition d'item model sous :

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

Les anciennes versions utilisent encore l'ancien schema de chemins d'item model. Si tu verifies la sortie generee pendant l'authoring, assure-toi de regarder la bonne forme de sortie pour la version cible de ton serveur.

Notes Bedrock et chemin de rendu

  • Le support Bedrock depend de sendCustomModelsToBedrockClients et du chemin Floodgate/Geyser/resource pack autour de ce parametre
  • Les clients Java sur des versions prises en charge peuvent utiliser le rendu via display entities quand useDisplayEntitiesWhenPossible est active
  • Ne pars pas du principe qu'un modele correct sur un client Java est automatiquement sur pour ton chemin Bedrock

Conseils pratiques d'authoring

  • garder des noms de fichier stables, car ils deviennent des IDs de runtime
  • garder des noms de controleurs et d'animations explicites, car la resolution d'animation dans Blockbench est basee sur le nom
  • utiliser intentionnellement les noms reserves de virtual bones
  • verifier la sortie importee apres /fmm reload, pas seulement dans Blockbench
  • verifier le contenu du pack genere pour ta ligne Minecraft cible, surtout en 1.21.4+

Hors scope

Cette page n'essaie pas de garantir :

  • les etapes exactes de l'interface Blockbench
  • les preferences artistiques de workflow
  • chaque particularite historique de .bbmodel decrite dans d'anciens README locaux

Ces details changent plus vite que le contrat d'execution verifie ci-dessus.