Guides / Building & Resources

Niestandardowe dane modelu: wiele modeli dla jednego przedmiotu bez zastępowania

System modeli przedmiotów zastąpił stary predykat CustomModelData. Oto układ folderów, JSON, który mapuje wartości na modele, oraz wyjaśnienie, dlaczego Twoja tekstura wyświetla się jako fioletowy sześcian.

Niestandardowe modele przedmiotów pozwalają serwerowi rozdawać „magiczną różdżkę”, która w rzeczywistości jest Marchewką na patyku z innym modelem. Mechanizm ten uległ zmianie, a większość poradników nadal opisuje stary sposób.

Co się zmieniło

Stary sposób — blok predicate w pliku modelu podstawowego przedmiotu, kluczowany przez custom_model_data jako liczba:

{ "predicate": { "custom_model_data": 1 }, "model": "item/wand" }

Obecny sposób — definicja items/, która wybiera model:

assets/minecraft/items/carrot_on_a_stick.json
{
  "model": {
    "type": "minecraft:range_dispatch",
    "property": "minecraft:custom_model_data",
    "fallback": { "type": "minecraft:model", "model": "minecraft:item/carrot_on_a_stick" },
    "entries": [
      { "threshold": 1, "model": { "type": "minecraft:model", "model": "minecraft:item/wand" } }
    ]
  }
}

fallback to wygląd zwykłej Marchewki na patyku. Bez tego każda niezmieniona Marchewka na patyku na świecie zamieniłaby się w Twoją różdżkę.

Układ folderów

pack.mcmeta
assets/minecraft/
├── items/carrot_on_a_stick.json      the dispatch
├── models/item/wand.json             the model
└── textures/item/wand.png            the texture

models/item/wand.json w najprostszej formie:

{ "parent": "minecraft:item/generated", "textures": { "layer0": "minecraft:item/wand" } }

Zwróć uwagę, że ścieżka tekstury nie ma prefiksu textures/ ani .png — to najczęstsza przyczyna pojawienia się fioletowo-czarnego sześcianu.

Nadawanie przedmiotu

/give @p carrot_on_a_stick[custom_model_data={floats:[1]}]

Komponent przyjmuje teraz obiekt z listami typowanymi, a nie samą liczbę całkowitą. custom_model_data=1 to stara składnia, która po cichu nic nie robi.

Dlaczego wyświetla się jako fioletowy sześcian

W kolejności prawdopodobieństwa:

  1. Błędna ścieżka tekstury — zawiera textures/ lub .png, albo plik nie znajduje się tam, gdzie wskazuje ścieżka.
  2. Wielkość liter w nazwie pliku — gra rozróżnia wielkość liter, nawet jeśli Twój system operacyjny tego nie robi.
  3. Zbyt niskie pack_format — pakiet się ładuje, ale folder items/ jest ignorowany. Dopasuj format do wersji, na której grasz.
  4. Źle spakowanepack.mcmeta musi znajdować się w katalogu głównym pliku zip, a nie w folderze wewnątrz pliku zip.

Inne selektory

range_dispatch na liczbie to tylko jedna z opcji. Możesz również rozróżniać na podstawie minecraft:display_context (inny model w ręce niż w ramce), minecraft:using_item lub minecraft:selected — w ten sposób Łuk pokazuje stan naciągnięcia.

Zbuduj JSON do rozsyłania, plik modelu i komendę nadawania razem w Narzędziach do niestandardowych modeli i komponentów przedmiotów.

Narzędzia modelu i komponentów przedmiotu →

More guides

Browse all →

Szukasz innych narzędzi do Minecrafta?

Zestaw generatorów, podglądów i konwerterów działających w przeglądarce — wszystkie za darmo.