Zum Hauptinhalt springen

FreeMinecraftModels Ressourcenpaket-Ausgabe

FreeMinecraftModels schreibt sein generiertes Paket derzeit nach output, nicht outputs.

Standard-Ausgabepfade

Das Plugin baut diesen Ordner beim Start und bei /fmm reload neu auf:

plugins/FreeMinecraftModels/output/FreeMinecraftModels

Es zippt diesen Ordner anschließend in:

plugins/FreeMinecraftModels/output/FreeMinecraftModels.zip

Dieser Zip-Pfad ist derjenige, den ResourcePackManager erwartet, wenn er sich mit FreeMinecraftModels integriert.

Was generiert wird

Der generierte Ordner enthält immer:

  • pack.mcmeta
  • pack.png
  • assets/minecraft/atlases/blocks.json
  • assets/freeminecraftmodels/... Modell- und Textur-Ausgabe

Für Minecraft 1.21.4+ generiert FreeMinecraftModels Item-Modell-Definitionsdateien unter:

assets/freeminecraftmodels/items

Für ältere Server fällt es auf den Legacy-Pfad für das Leder-Pferderüstungs-Override-Modell zurück.

Display-Modell-Ausgabe (1.21.4+)

Wenn ein Modell eine begleitende .json-Display-Modelldatei hat (siehe Hinweise zur Modellerstellung), kopiert FMM diese JSON (mit Textur-Referenzen, die so umgeschrieben sind, dass sie mit den extrahierten Texturen übereinstimmen) nach:

assets/freeminecraftmodels/models/display/{modelId}.json

Es generiert außerdem eine entsprechende Item-Definition unter:

assets/freeminecraftmodels/items/display/{modelId}.json

Die DisplayModelRegistry verfolgt zur Laufzeit, welche Modelle Display-JSONs haben, sodass ItemMeta.setItemModel() auf ItemStacks aufgerufen werden kann, um ihnen das korrekte Aussehen in der Hand und im Inventar zu geben.

Bedingte Item-Ausgabe für Bogen und Armbrust

Wenn FMM einen Satz von Bogen- oder Armbrust-Zustandsmodellen erkennt (siehe Hinweise zur Modellerstellung), generiert es eine einzelne Item-Definitions-JSON für das _idle-Modell, die auf Ressourcenpaket-Ebene bedingt zwischen allen Zuständen umschaltet. Es ist keine serverseitige Paketarbeit nötig -- der Client behandelt Zustandsübergänge nativ.

Bogen-Ausgabe

Bei Bögen verwendet die generierte Item-Definition minecraft:condition auf using_item mit einer minecraft:range_dispatch auf use_duration (Skalierung 0.05):

BedingungVerwendetes Modell
Item wird nicht benutzt_idle
Wird benutzt, Fallback (gerade gestartet)_draw_start
Wird benutzt, Schwellwert 0.65_draw_half
Wird benutzt, Schwellwert 0.9_draw_full

Armbrust-Ausgabe

Bei Armbrüsten verwendet die generierte Item-Definition minecraft:select auf charge_type. Wenn geladen (Pfeil oder Rakete), zeigt sie das _charged-Modell. Der ungeladene Fallback verwendet minecraft:range_dispatch auf crossbow/pull:

BedingungVerwendetes Modell
Wird nicht benutzt, nicht geladen_idle
Wird benutzt, Fallback (gerade gestartet)_draw_start
Wird benutzt, Schwellwert 0.58_draw_half
Wird benutzt, Schwellwert 1.0_draw_full
Geladen (Pfeil oder Rakete)_charged

Ausgabe-Speicherort

Die generierte bedingte Item-Definition wird neben anderen Item-Definitionen geschrieben unter:

assets/freeminecraftmodels/items/display/{baseModelId}_idle.json

Nur das _idle-Modell erhält eine Item-Definitionsdatei. Die Draw- und Charged-Modelle werden darin als bedingte Einträge referenziert.

Kompatibilitätsfixes für Minecraft 26.1+

Der Paket-Generator wendet zwei automatische Kompatibilitätsfixes für Minecraft 26.1 und neuer an:

  • UV-Klemmung: Generierte Item-Modelle klemmen UV-Koordinaten auf den 016-Bereich, um die Textur-Bleeding-Artefakte zu vermeiden, die durch den strengeren Validator von 26.1 eingeführt wurden.
  • Leere Bone-Blockmodelle: Bones, die keine Cubes haben (oder nur ein anchor_-Kind enthalten), gaben früher fehlerhaftes Block-Modell-JSON auf 26.1+ aus. Der Generator gibt nun einen gültigen Platzhalter aus, damit das Ressourcenpaket weiterhin lädt.

Diese Fixes werden automatisch angewendet; keine Konfiguration erforderlich.

Reload-Verhalten

Wenn FreeMinecraftModels neu lädt:

  • führt es den Inhaltsimportschritt erneut aus
  • baut es den Ordner output/FreeMinecraftModels neu auf
  • regeneriert es output/FreeMinecraftModels.zip
  • versendet es resourcepackmanager reload, falls ResourcePackManager installiert ist

Aus diesem Grund benötigen moderne FMM- + ResourcePackManager-Setups nicht mehr den alten manuellen Zip-Kopie-Workflow.