Каждый предмет, блок и моб в Minecraft раскрашен маленькими пиксельными картинками. Хорошие текстуры делают так, что аддон выглядит как часть игры. В этом гайде мы разберём, куда кладутся файлы текстур, как игра их находит и как рисовать пиксель-арт, который смотрится уместно рядом с ванильным.
Быстрый способ: GodCraft
В GodCraft есть встроенный пиксельный редактор, и он сохраняет каждую текстуру в нужное место с нужным коротким именем.
- Откройте Мастерскую и откройте любой предмет, блок или моба.
- Нажмите на текстуру, чтобы открыть пиксельный редактор.
- Начните с ванильной текстуры и перекрасьте её или нарисуйте с нуля.
- Сохраните. При экспорте файлы PNG и списки текстур будут записаны за вас.
Начинать с ванильной текстуры - отличный приём: вы бесплатно получаете стиль затенения Minecraft и меняете только цвета и форму.
Вручную
Основы: PNG 16x16
Текстуры Minecraft - это картинки в формате PNG. У предметов и блоков обычно размер 16x16 пикселей. Это совсем крошечно, поэтому важен каждый пиксель.
- Используйте программу для пиксель-арта, а не обычный фоторедактор, который размывает края. Выключите сглаживание и рисуйте карандашом в 1 пиксель.
- Сохраняйте в PNG с прозрачностью (RGBA). JPG не сохраняет прозрачные пиксели и добавляет размытый шум.
- Имена файлов пишите строчными буквами с подчёркиваниями, например
ruby_sword.png.
Куда кладутся текстуры
Текстуры хранятся в пакете ресурсов (RP):
| Вид | Папка | Пример |
|---|---|---|
| Предметы | RP/textures/items/ | ruby.png |
| Блоки | RP/textures/blocks/ | ruby_block.png |
| Скины мобов | RP/textures/entity/ | critter.png |
Скины мобов не 16x16: их размер совпадает с texture_width и texture_height модели, например 64x32. См. Ваш первый моб.
Короткие имена: item_texture.json и terrain_texture.json
Предметы и блоки не ссылаются на PNG напрямую. Они используют короткое имя, а два файла-списка превращают короткие имена в пути. Обратите внимание: в конце путей нет .png.
Для предметов:
{
"resource_pack_name": "myname",
"texture_name": "atlas.items",
"texture_data": {
"ruby": {
"textures": "textures/items/ruby"
}
}
}Затем предмет использует короткое имя ruby в компоненте иконки. См. Ваш первый предмет.
Для блоков:
{
"resource_pack_name": "myname",
"texture_name": "atlas.terrain",
"texture_data": {
"ruby_block": {
"textures": "textures/blocks/ruby_block"
}
}
}Затем блок использует ruby_block в minecraft:material_instances. См. Ваш первый блок.
Один файл, много текстур
В каждом пакете всегда только один item_texture.json и один terrain_texture.json. Добавляйте каждую новую текстуру ещё одной записью внутри texture_data.
Прозрачность
Полностью прозрачные пиксели (alpha 0) позволяют делать фигуры, которые не являются квадратами: мечи, цветы и стеклянные панели.
- Предметы: пустое место вокруг предмета должно быть полностью прозрачным. Полупрозрачные пиксели тоже работают.
- Блоки: что вы увидите, зависит от
render_methodблока вmaterial_instances:opaque: никакой прозрачности. Прозрачные пиксели превращаются в сплошной цвет. Лучше всего для камня, руд и досок.alpha_test: каждый пиксель либо полностью виден, либо полностью скрыт. Хорошо для листвы, цветов и обычного стекла.blend: разрешает полупрозрачные пиксели, как у цветного стекла.
- Мобы: используйте материал
entity_alphatestв клиентской сущности, чтобы полностью прозрачные пиксели исчезали.
Высокое разрешение
Можно использовать текстуры 32x32, 64x64 и больше. Помните эти правила:
- Для предметов и блоков картинка должна быть квадратной, а размер - степенью двойки (16, 32, 64, 128).
- Держите один размер для всего набора, чтобы всё выглядело единообразно. Меч 64x64 рядом с ванильными мечами 16x16 может смотреться чужеродно.
- Большие текстуры занимают больше памяти, особенно на телефонах. 16x16 - классический вид Minecraft и самый надёжный выбор.
Анимированные текстуры блоков (флипбуки)
Блоки вроде морского фонаря, магмы и лавы анимированы. Они используют флипбук (flipbook): одну высокую картинку, где все кадры сложены друг над другом.
- Сделайте PNG шириной 16 пикселей и высотой 16, умноженное на число кадров. Четыре кадра - это 16x64.
- Добавьте её в
terrain_texture.jsonкак обычную текстуру блока, например под именемglowing_ore. - Создайте
flipbook_textures.json, чтобы сказать игре, что текстура анимирована:
[
{
"flipbook_texture": "textures/blocks/glowing_ore",
"atlas_tile": "glowing_ore",
"ticks_per_frame": 8
}
]flipbook_texture- путь к высокому PNG, без.png.atlas_tile- короткое имя изterrain_texture.json.ticks_per_frame- сколько держится каждый кадр. В секунде 20 тиков, поэтому 8 означает, что каждый кадр показывается 0,4 секунды.- Необязательный
frames- список номеров кадров, которые проигрываются в своём порядке, начиная с 0. Ванильный призмарин использует его, чтобы показывать одни кадры дольше других. - Необязательный
blend_framesсо значениемfalseзаставляет кадры резко переключаться, а не плавно перетекать друг в друга.
Заметка
Флипбуки нужны для блоков. Иконки предметов не используют flipbook_textures.json.
Советы для хорошего пиксель-арта
Используйте маленькую палитру
Выберите от 3 до 5 оттенков одного цвета, от тёмного к светлому, и придерживайтесь их. Слишком много цветов делают рисунок 16x16 шумным. Ванильные текстуры часто используют всего несколько цветов на материал.
- Делайте тёмные оттенки чуть насыщеннее или слегка сдвигайте их к синему или фиолетовому. Светлые оттенки сдвигайте к жёлтому. Такой «сдвиг оттенка» выглядит гораздо живее, чем просто добавление чёрного или белого.
- Берите палитры у ванильных текстур, чтобы ваш аддон сочетался с игрой.
Свет падает слева сверху
Предметы и многие блоки Minecraft затенены так, будто свет падает слева сверху:
- Залейте фигуру средним оттенком.
- Положите самый светлый оттенок вдоль верхнего и левого краёв.
- Положите самый тёмный оттенок вдоль нижнего и правого краёв.
- Добавьте несколько самых ярких пикселей как блик, например отблеск на кристалле.
Обводка и читаемость
- У иконок предметов обычно есть тёмная обводка, чтобы они выделялись на любом фоне инвентаря.
- Избегайте одиноких пикселей случайного цвета: в маленьком размере они выглядят как шум.
- Почаще отдаляйте картинку. На экране ваша текстура будет крошечной, поэтому проверяйте её в масштабе 100%.
Блоки должны стыковаться
Текстуры блоков повторяются рядом друг с другом. Следите, чтобы левый край переходил в правый, а верхний в нижний, иначе на больших стенах будет видна сетка. Избегайте яркой рамки по всем сторонам, если только вы не хотите эффект плитки, как у кирпичей.
Проблемы с текстурами
Фиолетово-чёрная шахматная доска
Игра не нашла текстуру. Проверьте, что короткое имя везде написано одинаково и что путь в списке текстур совпадает с настоящим файлом без .png.
- Текстура размытая. PNG масштабировали со сглаживанием. Перерисуйте в настоящем размере или масштабируйте методом «по соседним пикселям» (nearest neighbor).
- Прозрачные места на блоке видны как чёрные или белые. Поменяйте
render_methodблока наalpha_testилиblend. - Изменения не появляются. Убедитесь, что вы экспортировали новую версию и перезагрузили мир. См. Когда что-то сломалось.