Этот урок будет всецело связан с внешним видом предметов. Модель и текстура. Есть подобная старая версия, но там много лишнего и она несколько устарела. Вынести эту часть разумнее всего в отдельный блок т.к. она общая как для Forge и Fabric, так и для обычных дата паков.
Ресурсы для предмета
Для корректного отображения предмета в игре нам нужно два файла: модель и текстура предмета. Текстуры это png картинка. А модель это json файл, в котором записаны данные в особом формате.
Для добавления модели для своего Forge/Fabric мода нас будут интересовать такие папки:
src/main/resources/assets/YOUR_MODID/models/item/
src/main/resources/assets/YOUR_MODID /textures/item/
В этом примере в роли YOUR_MODID у меня будет служить gsmod, так что в случае чего не пугайтесь, и следите, чтобы был указан именно ваш MODID.
В models, понятное дело, пойдёт модель, а в textures – текстура, спрайт.
Допустим, наша цель создать модель и текстуру для нового предмета stone_stick. Значит нам нужно будет добавить в models/item/ файл stone_stick.json, а в models/textures/ файл stone_stick.png. Имя модели обязательно должно совпадать с тем, которое вы прописали при регистрации предмета! Но между собой имена модели и текстуры необязательно должны быть одинаковыми. Т.к. мы укажем имя текстуры в самой модели.
Когда текстура добавлена и файл модели создан, то можно переходить к его заполнению. Самая простая модель в игре это генерируемая, которую игрок будет держать наподобие большинства предметов в игре.
Её модель предельно проста:
1 2 3 4 5 6 |
{ "parent": "item/generated", "textures": { "layer0": "gsmod:item/stone_stick" } } |
Как я и говорил, что мы указываем текстуру в модели. Текстура находится внутри наших ресурсов, именно поэтому мы написали gsmod, но если вы хотите использовать текстуру из Minecraft, то вместо gsmod так и пишите – minecraft, а потом имя текстуры (stick, например). Никаких .png добавлять не нужно.
Если всё сделано верно, то можно запустить и проверить.
В руках всё отлично, но со стороны есть подвох:
Наша палка со стороны выглядит иначе. Но это тоже не проблема. Просто мы использовали ту же модель, что и яблоко, например:
А палка использует ту же модель, что и инструменты, мечи, удочки и т.д.
Чтобы ваш предмет стал таким же нужно просто заменить generated на handheld.
Модель для предметов, которые отображают блоки
Для таких моделей можно использовать и обычную модель для предмета. Таких примеров в игре много: рельсы, факела, компаратор, воронка и т.д. Но если вы хотите использовать ту же модель, что и ваш блок, то просто прописываем в модели предмета это:
1 2 3 |
{ "parent": "YOUR_MODID:block/YOUR_BLOCK " } |
Можно и взять любую модель из игры, конечно же. Зачем, правда, не знаю. Но можно.
Список всех уроков: Создание модов для Minecraft 1.15-1.17 [Forge/Fabric
Исходный код проекта на Github