В этом гайде вы сделаете Рубин: простой блестящий самоцвет, который складывается в стопки по 64, появляется в творческом инвентаре и имеет своё название и значок. Пока он ничего особенного не умеет, но каждый меч, еда или броня, которые вы сделаете потом, начинаются именно с этого файла.
Сделать его можно двумя способами. Быстрый займёт пару минут на телефоне. Ручной покажет вам каждый файл, чтобы вы понимали, что происходит.
Быстрый способ: GodCraft
GodCraft сам создаёт файл предмета, текстуру, название и файлы пакета. Вам не придётся открывать ни одного JSON-файла.
- Откройте Мастерскую и добавьте в свой аддон Предмет.
- Нарисуйте значок в пиксельном редакторе или возьмите ванильную текстуру и перекрасьте её.
- Введите название и выберите нужные настройки, например размер стопки.
- Нажмите Экспорт. GodCraft запишет манифесты, UUID и языковые файлы и выдаст
.mcaddon, который можно открыть в Minecraft.
Интересно, что внутри этого .mcaddon? Читайте дальше.
Вручную
Вам нужны уже настроенные пакет поведения (BP) и пакет ресурсов (RP). Если их ещё нет, сначала пройдите Настройку проекта. Во всех примерах мы используем пространство имён myname. Замените его на своё короткое имя маленькими буквами везде, где оно встречается.
Вот файлы, которые вы создадите или измените:
| Файл | Пакет | Что делает |
|---|---|---|
items/ruby.json | BP | Сообщает, что предмет существует и как он себя ведёт |
textures/items/ruby.png | RP | Картинка |
textures/item_texture.json | RP | Даёт картинке короткое имя |
texts/en_US.lang | RP | Название, которое читают игроки |
Шаг 1: файл предмета
Создайте в пакете поведения папку items и добавьте в неё этот файл:
{
"format_version": "1.26.30",
"minecraft:item": {
"description": {
"identifier": "myname:ruby",
"menu_category": {
"category": "items"
}
},
"components": {
"minecraft:icon": {
"textures": {
"default": "myname_ruby"
}
},
"minecraft:display_name": {
"value": "item.myname:ruby.name"
},
"minecraft:max_stack_size": 64
}
}
}Разберём его по частям.
format_versionговорит игре, по какой версии правил для предметов написан файл. Используйте свежую, чтобы работали все современные компоненты.identifier- уникальный ID предмета. Он всегда выглядит какnamespace:name. Никогда не используйте пространство имёнminecraftдля нового предмета: оно принадлежит игре.menu_categoryрешает, где предмет появится в творческом инвентаре.categoryможет бытьconstruction,nature,equipment,itemsилиnone(скрыт). Ещё можно добавитьgroup, например"minecraft:itemGroup.name.sword", чтобы положить его в уже существующую папку.components- место, где предмет получает свои возможности. Каждый компонент - одна возможность.
Здесь используются три компонента:
minecraft:iconвыбирает картинку.default- это короткое имя, которое вы зададите вitem_texture.jsonна шаге 3, а не путь к файлу.minecraft:display_nameзадаёт название. Здесь оно указывает на ключ в языковом файле, чтобы название можно было перевести.minecraft:max_stack_size- сколько штук помещается в один слот. Число от 1 до 64.
Одна возможность - один компонент
Хотите, чтобы предмет переливался, как зачарованная книга? Добавьте minecraft:glint со значением true. Хотите, чтобы он не сгорал в лаве? Добавьте minecraft:fire_resistant. У каждого компонента есть своя справочная страница со всеми полями.
Шаг 2: текстура
Нарисуйте PNG размером 16x16 пикселей и сохраните его в пакете ресурсов:
A 16x16 PNG with a transparent backgroundОставьте фон прозрачным, иначе значок будет квадратом. Если вы новичок в пиксель-арте, в гайде Пиксельные текстуры есть советы, как сделать маленькие картинки красивыми.
Шаг 3: зарегистрируйте текстуру
Игра не читает PNG-файлы по пути прямо из предмета. Вместо этого item_texture.json даёт каждой картинке короткое имя, и предмет использует это имя. Создайте (или откройте) этот файл:
{
"resource_pack_name": "myname",
"texture_name": "atlas.items",
"texture_data": {
"myname_ruby": {
"textures": "textures/items/ruby"
}
}
}Обратите внимание на две вещи:
- Ключ
myname_rubyсовпадает со значениемdefaultв компоненте значка предмета. - В конце пути нет
.png.
Когда будете добавлять новые предметы, кладите их все в этот же файл как дополнительные записи внутри texture_data. Не создавайте второй item_texture.json.
Шаг 4: название
Откройте (или создайте) английский языковой файл и добавьте одну строку:
item.myname:ruby.name=RubyЧасть до = должна в точности совпадать с value из minecraft:display_name. Часть после него - это то, что видят игроки. Lang-файлы - обычный текст: одна запись на строку, без кавычек и запятых.
Шаг 5: проверьте
- Скопируйте оба пакета в Minecraft или экспортируйте их (смотрите Экспорт и установка).
- Создайте новый мир и включите оба пакета в его настройках.
- Откройте чат и введите команду /give:
/give @s myname:ruby 64Вы должны получить полную стопку рубинов с вашим значком и названием "Ruby". В творческом мире он также найдётся во вкладке Предметы инвентаря.
Если что-то не работает
| Что вы видите | Самая вероятная причина |
|---|---|
/give пишет, что предмета не существует | Опечатка в идентификаторе, или пакет поведения не включён |
| У предмета розово-чёрный значок | Ключ в item_texture.json не совпадает со значком, или путь неверный |
Название выглядит как item.myname:ruby.name | Ключ в lang-файле не совпадает, или lang-файл лежит не в texts |
| Из пакета ничего не загружается | Ошибка синтаксиса JSON, например пропущенная запятая |
Включите Content Log в настройках для авторов в Minecraft, чтобы видеть точные сообщения об ошибках. Другие решения есть в разделе Когда что-то сломалось.
Что дальше?
Ваш рубин - простой предмет. Теперь дайте ему работу:
- Сделайте что-нибудь съедобное по гайду Своя еда.
- Превратите рубины в меч или кирку в гайде Оружие и инструменты.
- Сделайте полный комплект рубиновой брони в гайде Своя броня.
- Дайте игрокам крафтить рубины с помощью гайда Рецепты крафта и печи.
Чтобы увидеть, как Mojang делает свои предметы, загляните в ванильные предметы.