Sortie du resource pack FreeMinecraftModels
FreeMinecraftModels écrit actuellement son pack généré dans output, et non outputs.
Chemins de sortie par défaut
Le plugin reconstruit ce dossier au démarrage et lors de /fmm reload :
plugins/FreeMinecraftModels/output/FreeMinecraftModels
Il zippe ensuite ce dossier dans :
plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip
Ce chemin de zip est celui que ResourcePackManager attend lorsqu'il s'intègre à FreeMinecraftModels.
Ce qui est généré
Le dossier généré inclut toujours :
pack.mcmetapack.pngassets/minecraft/atlases/blocks.jsonassets/freeminecraftmodels/...sortie de modèle et texture
Pour Minecraft 1.21.4+, FreeMinecraftModels génère des fichiers de définition d'item model sous :
assets/freeminecraftmodels/items
Pour les serveurs plus anciens, il retombe sur le chemin legacy de surcharge de modèle d'armure de cheval en cuir.
Sortie du modèle d'affichage (1.21.4+)
Lorsqu'un modèle a un fichier de modèle d'affichage .json voisin (voir Notes sur la création de modèles), FMM copie ce JSON (avec les références de texture réécrites pour correspondre aux textures extraites) dans :
assets/freeminecraftmodels/models/display/{modelId}.json
Il génère également une définition d'item correspondante à :
assets/freeminecraftmodels/items/display/{modelId}.json
Le DisplayModelRegistry suit quels modèles ont des JSONs d'affichage au runtime afin que ItemMeta.setItemModel() puisse être appelé sur les ItemStacks pour leur donner la bonne apparence en main et dans l'inventaire.
Sortie conditionnelle d'item pour les arcs et arbalètes
Lorsque FMM détecte un ensemble de modèles d'état d'arc ou d'arbalète (voir Notes sur la création de modèles), il génère un seul JSON de définition d'item pour le modèle _idle qui bascule conditionnellement entre tous les états au niveau du resource pack. Aucun travail de paquet côté serveur n'est nécessaire -- le client gère les transitions d'état nativement.
Sortie d'arc
Pour les arcs, la définition d'item générée utilise minecraft:condition sur using_item avec un minecraft:range_dispatch sur use_duration (échelle 0.05) :
| Condition | Modèle utilisé |
|---|---|
| N'utilise pas l'objet | _idle |
| Utilise, fallback (vient de commencer) | _draw_start |
Utilise, seuil 0.65 | _draw_half |
Utilise, seuil 0.9 | _draw_full |
Sortie d'arbalète
Pour les arbalètes, la définition d'item générée utilise minecraft:select sur charge_type. Lorsque chargée (flèche ou roquette), elle affiche le modèle _charged. Le fallback non chargé utilise minecraft:range_dispatch sur crossbow/pull :
| Condition | Modèle utilisé |
|---|---|
| N'utilise pas, non chargé | _idle |
| Utilise, fallback (vient de commencer) | _draw_start |
Utilise, seuil 0.58 | _draw_half |
Utilise, seuil 1.0 | _draw_full |
| Chargé (flèche ou roquette) | _charged |
Emplacement de sortie
La définition d'item conditionnelle générée est écrite à côté des autres définitions d'item à :
assets/freeminecraftmodels/items/display/{baseModelId}_idle.json
Seul le modèle _idle obtient un fichier de définition d'item. Les modèles draw et charged sont référencés à l'intérieur en tant qu'entrées conditionnelles.
Correctifs de compatibilité Minecraft 26.1+
Le générateur de pack applique deux correctifs automatiques de compatibilité pour Minecraft 26.1 et plus récent :
- Clamping UV : les item models générés clampent les coordonnées UV à la plage
0–16pour éviter les artefacts de saignement de texture introduits par le validator plus strict de 26.1. - Modèles de blocs d'os vides : les os qui n'ont pas de cubes (ou ne contiennent qu'un enfant
anchor_) émettaient auparavant du JSON de modèle de bloc malformé sur 26.1+. Le générateur émet maintenant un placeholder valide afin que le resource pack se charge toujours.
Ces correctifs s'appliquent automatiquement ; aucune configuration n'est requise.
Comportement de reload
Lorsque FreeMinecraftModels recharge, il :
- ré-exécute l'étape d'import de contenu
- reconstruit le dossier
output/FreeMinecraftModels - régénère
output/FreeMinecraftModels.zip - dispatche
resourcepackmanager reloadsi ResourcePackManager est installé
C'est pourquoi les configurations modernes FMM + ResourcePackManager n'ont plus besoin de l'ancien workflow manuel de copie de zip.