Руководства / Строительство и ресурсы
Текстура плаща — это 2 048 пикселей, а сам плащ занимает лишь 372 из них
Файл имеет размер 64×32, плащ располагается в углу 22×17, элитры — в блоке рядом, а сторона, которую все видят, — это 160 пикселей, меньше 8% изображения. Плюс смещение на один пиксель, на котором спотыкаются все.
Текстура плаща в Minecraft — это PNG-файл 64 × 32, то есть 2 048 пикселей. Плащ использует 372 из них, элитры читают ещё 520 из блока рядом, а остальная часть файла игнорируется. Та часть, на которую игрок реально смотрит, ещё меньше.
Шесть областей
| область | позиция | размер | пиксели |
|---|---|---|---|
| внешняя | (1, 1) | 10 × 16 | 160 |
| внутренняя | (12, 1) | 10 × 16 | 160 |
| верх | (1, 0) | 10 × 1 | 10 |
| низ | (11, 0) | 10 × 1 | 10 |
| лево | (0, 1) | 1 × 16 | 16 |
| право | (11, 1) | 1 × 16 | 16 |
| итого | 372 |
Это 18,2% файла. Внешняя сторона — единственная, которую кто-либо видит, пока вы идёте, — это 160 пикселей, или 7,8% изображения, которое вы редактируете.
Всё это помещается в рамку 22 × 17 в левом верхнем углу. И даже внутри этой рамки не используются всего два пикселя: (0, 0) и (21, 0) — два угла верхнего ряда, до которых не достаёт ни верхняя полоса, ни нижняя.
За пределами плаща и блока элитр файл — мёртвое пространство
Элитры занимают блок 24 × 22, начиная с (22, 0), прямо рядом с плащом. Оставшиеся 1 156 пикселей — это не второй плащ, не маска и не зарезервированная область. Это ничто. Можете оставить их прозрачными, залить своей подписью или вставить фотографию — игра читает шесть прямоугольников для плаща, ещё шесть для элитр и игнорирует остальную часть файла.
Знать это стоит в основном потому, что так задача сильно упрощается. «Нарисовать плащ» звучит как создание изображения 64 × 32. На деле это создание прямоугольника 10 × 16, дважды — спереди и сзади — плюс окантовка шириной в четыре пикселя.
Смещение на один пиксель, на котором спотыкаются все
Посмотрите, где находятся top и bottom:
- верх занимает x 1–10, прямо над внешней стороной
- низ занимает x 11–20
Внешняя сторона — это x 1–10, а внутренняя — x 12–21. Значит, верхняя полоса совпадает с внешней стороной, а нижняя не совпадает ни с одной — она на один пиксель левее внутренней стороны.
Этот сдвиг на один столбец — самая частая причина, по которой нарисованный вручную плащ выглядит неправильно. Если выделить диапазон столбцов внутренней стороны и закрасить полосу над ней, нижний край окажется смещён на один пиксель, что в игре проявится тонкой полоской неправильного цвета по нижнему краю. В редакторе это незаметно, потому что полоса высотой всего в один пиксель.
Пропорции не такие, как подсказывает развёрнутая текстура
Видимый плащ — 10 в ширину и 16 в высоту, то есть в 1,6 раза выше, чем шире. В развёрнутой текстуре внешняя и внутренняя стороны лежат рядом, поэтому пара читается как горизонтальный блок 20 × 16, и легко случайно рисовать именно под эту форму.
Всё, что центрировано по обеим сторонам, будет разрезано пополам по линии сгиба. Узор нужно составлять внутри одной половины 10 × 16 или осознанно зеркалить его между двумя.
Этот же файл — ещё и ваши элитры
Одна текстура служит и тем, и другим: предпросмотр на этой странице надевает её как плащ или как элитры из одного и того же изображения, потому что именно так игра это и использует — если только ваша учётная запись не предоставляет отдельную текстуру элитр, которая тогда побеждает. Поэтому дизайн плаща никогда не бывает только дизайном плаща.
Однако они читают не одни и те же пиксели. Плащ свисает с панели 10 × 16 в точке (1, 1); элитры читают свой собственный блок 24 × 22 в точке (22, 0), зеркально отражённый на оба крыла. Дизайн, нарисованный только на панели плаща, оставит элитры пустыми. Проверяйте оба предпросмотра, прежде чем останавливаться на дизайне: файл общий, а области — нет.