Гайд

Переименуй предмет, чтобы сменить его текстуру

В Minecraft любой предмет можно переименовать на наковальне. Набор ресурсов может дать переименованному предмету свою текстуру: алмазный меч с именем «Excalibur» может сиять золотом, а все остальные алмазные мечи останутся прежними. Java 1.21.5 и новее умеют это без модов; старым версиям нужен OptiFine или мод CIT Resewn. Texture Pack Maker пишет нужные файлы для твоей версии.

Обновлено

По шагам

  1. Открой Texture Pack Maker и создай пак для Java или открой тот, что у тебя уже есть.
  2. Открой текстуру предмета, например алмазного меча, и выбери в её меню (⋮) Текстуры по имени или Имена под 3D-видом.
  3. Введи имя, например Excalibur. Добавь ещё имена, если у них должна быть та же текстура.
  4. Нажми Создать и рисовать. Новая текстура сначала будет копией текстуры предмета, так что просто перерисуй её. 3D-форма даст ей и свою модель.
  5. Нажми Экспорт, установи пак, переименуй предмет на наковальне точно так же и возьми его в руку.

Когда имя совпадает

  • Имя должно совпадать точно, вплоть до заглавных букв: Excalibur и excalibur — разные имена. Добавь оба, если нужно, чтобы работали оба.
  • Несколько имён могут делить одну текстуру, а у одного предмета может быть много текстур по имени.
  • На наковальне имя может быть до 50 символов, без кодов цвета. Имя, раскрашенное или сделанное жирным командами, не совпадёт с простым именем.
  • Меняется предмет в руке, в инвентаре, на земле и в рамках. Блок, поставленный из переименованного предмета, выглядит как обычно.

Java 1.21.5 и новее: без модов

С версии 1.21.5 определение предмета (assets/minecraft/items/<предмет>.json) может выбирать модель по имени предмета через minecraft:select по свойству minecraft:component с компонентом minecraft:custom_name. При любом другом имени показывается обычная модель предмета:

{
  "model": {
    "type": "minecraft:select",
    "property": "minecraft:component",
    "component": "minecraft:custom_name",
    "cases": [
      {
        "when": ["Excalibur", "Sword of Light"],
        "model": {
          "type": "minecraft:model",
          "model": "minecraft:item/names/diamond_sword/excalibur"
        }
      }
    ],
    "fallback": {
      "type": "minecraft:model",
      "model": "minecraft:item/diamond_sword"
    }
  }
}

Модель для имени — это собственная модель предмета с новой картинкой, поэтому меч по-прежнему держат как меч:

{
  "parent": "minecraft:item/diamond_sword",
  "textures": {
    "layer0": "minecraft:item/names/diamond_sword/excalibur"
  }
}

Если пак уже меняет это определение предмета, например 3D-моделью из редактора моделей, имена ставятся перед ней. В Java 1.21.4 тоже есть определения предметов, но имя предмета они ещё читать не умеют, поэтому она получает файлы OptiFine, описанные ниже. Как работают определения предметов и 3D-предметы.

До 1.21.5: OptiFine или CIT Resewn

Старые версии сами не умеют выбирать текстуру по имени. Это умеют Custom Item Textures (CIT) из OptiFine, а также мод CIT Resewn для Fabric. Редактор пишет по одному файлу .properties на каждую текстуру по имени в assets/minecraft/optifine/cit/:

# Excalibur, Sword of Light: needs OptiFine or the CIT Resewn mod
type=item
items=diamond_sword
texture=textures/item/names/diamond_sword/excalibur.png
nbt.display.Name=regex:(Excalibur|Sword of Light)

Одно имя записывается как есть, несколько превращаются в правило regex:. С версии 1.20.5 редактор пишет components.custom_name вместо nbt.display.Name; оба мода читают и то и другое. Текстура с 3D-формой использует model= вместо texture=. Пак, чей диапазон версий начинается до 1.21.5 и заканчивается после, получает файлы обоих видов.

Bedrock Edition

Наборы ресурсов Bedrock не могут менять вид предмета по его имени. Имена предметов в Molang (например, в query.is_item_name_any) — это идентификаторы вроде minecraft:diamond_sword, а не имена, которые игроки дают на наковальне, поэтому для паков Bedrock редактор текстуры по имени не предлагает.

Открыть пак, где они уже есть

Открой пак для Java, и его текстуры по имени появятся под текстурой предмета и в окне: правила OptiFine CIT для одного предмета с именем и текстурой или моделью, а также определения предметов 1.21.5+, которые выбирают модель по имени. Правила, которые проверяют не только имя (прочность, зачарования, несколько предметов), остаются в паке как есть. Правило с шаблоном OptiFine, например ipattern:*sword*, сохраняет его и по-прежнему работает только с OptiFine и CIT Resewn.

Частые вопросы

Переименованный предмет выглядит как обычно. Почему?

Проверь, что имя совпадает точно, вплоть до заглавных букв и пробелов, что пак включён и стоит выше других паков и что ты играешь в 1.21.5 или новее, а в старой версии у тебя есть OptiFine или CIT Resewn. Предмет, переименованный до установки пака, тоже подойдёт: имя проверяется каждый раз, когда предмет рисуется.

Можно ли не учитывать заглавные буквы?

В Minecraft без модов нельзя: имя должно совпадать точно. Добавь каждое нужное написание как отдельное имя. Паки для OptiFine могут использовать шаблоны без учёта регистра; открытые паки сохраняют свои.

Может ли переименованный предмет быть 3D?

Да. Нажми «3D-форма» у текстуры по имени, чтобы открыть её в редакторе моделей, и начни с 3D-предмета из твоей новой картинки.

Увидят ли это другие игроки?

Увидят те, кто пользуется твоим паком, и на серверах тоже. Само имя — часть предмета, его видят все; пак нужен только для текстуры.