Переименуй предмет, чтобы сменить его текстуру
В Minecraft любой предмет можно переименовать на наковальне. Набор ресурсов может дать переименованному предмету свою текстуру: алмазный меч с именем «Excalibur» может сиять золотом, а все остальные алмазные мечи останутся прежними. Java 1.21.5 и новее умеют это без модов; старым версиям нужен OptiFine или мод CIT Resewn. Texture Pack Maker пишет нужные файлы для твоей версии.
По шагам
- Открой Texture Pack Maker и создай пак для Java или открой тот, что у тебя уже есть.
- Открой текстуру предмета, например алмазного меча, и выбери в её меню (⋮) Текстуры по имени или Имена под 3D-видом.
- Введи имя, например Excalibur. Добавь ещё имена, если у них должна быть та же текстура.
- Нажми Создать и рисовать. Новая текстура сначала будет копией текстуры предмета, так что просто перерисуй её. 3D-форма даст ей и свою модель.
- Нажми Экспорт, установи пак, переименуй предмет на наковальне точно так же и возьми его в руку.
Когда имя совпадает
- Имя должно совпадать точно, вплоть до заглавных букв: 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-предмета из твоей новой картинки.
Увидят ли это другие игроки?
Увидят те, кто пользуется твоим паком, и на серверах тоже. Само имя — часть предмета, его видят все; пак нужен только для текстуры.