Aller au contenu principal

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.mcmeta
  • pack.png
  • assets/minecraft/atlases/blocks.json
  • assets/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) :

ConditionModè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 :

ConditionModè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 016 pour é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 reload si ResourcePackManager est installé

C'est pourquoi les configurations modernes FMM + ResourcePackManager n'ont plus besoin de l'ancien workflow manuel de copie de zip.