Как сделать анимированные текстуры
Анимированная текстура — это высокая картинка из кадров один под другим, которые игра показывает по очереди. Так работают вода, лава, огонь и порталы, и пак может анимировать и другие блоки и предметы. Texture Pack Maker превращает любой блок или предмет в анимацию, проигрывает её со скоростью игры, пока ты рисуешь, импортирует GIF и пишет файлы, которые нужны каждому изданию: файл .png.mcmeta для Java и запись flipbook для Bedrock.
По шагам
- Открой Texture Pack Maker и создай пак или открой тот, что у тебя уже есть.
- Открой текстуру блока или предмета и выбери в её меню (⋮) Сделать анимацию. У неё будет два кадра, а под холстом появится лента кадров.
- Нарисуй каждый кадр. + добавляет копию выбранного кадра; меню ⋯ дублирует, копирует, вставляет, двигает и удаляет кадры. Включи кальку, чтобы видеть предыдущий кадр бледно, пока рисуешь.
- Часы открывают Тайминг: сколько тактов показывается каждый кадр (20 тактов — 1 секунда), время отдельных кадров и Плавный переход. Нажми воспроизведение, чтобы посмотреть со скоростью игры.
- Нажми Экспорт. Паки для Java получают ленту кадров с её
.png.mcmeta, паки для Bedrock — запись вflipbook_textures.json.
Кадры, калька и лента
- Перетащи кадр мышью на новое место. На телефоне или планшете используй Сдвинуть раньше и Сдвинуть позже в меню ⋯.
- После щелчка по кадру: Alt + стрелки двигают его, Delete удаляет, а Ctrl+C и Ctrl+V копируют его и вставляют как новый кадр — в любую анимацию пака. Клавиши «запятая» и «точка» листают кадры, пока ты рисуешь.
- Калька показывает предыдущий кадр бледно поверх того, который ты рисуешь, чтобы движение совпадало. В меню ⋯ можно показать и следующий.
- Если удалить кадры до одного или выбрать Убрать анимацию, текстура снова станет неподвижной. И то и другое можно отменить.
Тайминг в тактах
Minecraft считает время в тактах (тиках): 20 тактов — это 1 секунда, значит, один такт — 0,05 секунды. Каждый кадр показывается целое число тактов:
| Тактов на кадр | Секунды | Кадров в секунду |
|---|---|---|
| 1 | 0,05 с | 20 |
| 2 | 0,1 с | 10 |
| 4 | 0,2 с | 5 |
| 10 | 0,5 с | 2 |
| 20 | 1 с | 1 |
- Каждый кадр показывается задаёт скорость всех кадров. Новая анимация начинается с 4 тактов.
- Время кадров даёт отдельным кадрам своё время — для паузы или короткой вспышки.
- Плавный переход такт за тактом перетекает из кадра в следующий, как текущая вода. Лучше всего с медленными кадрами.
- Порядок кадров показывает кадры в любом порядке и сколько угодно раз:
1, 2, 3, 2идёт обратно,1-8показывает диапазон, а3:40держит кадр 3 сорок тактов.
Java Edition: файл .png.mcmeta
Java читает анимацию из файла с именем текстуры и .mcmeta в конце, рядом с ней: у stone.png это stone.png.mcmeta. Кадры идут сверху вниз, frametime — скорость в тактах (1, если не указана), а frames — порядок кадров, с time у кадров, которые показываются дольше:
{
"animation": {
"interpolate": true,
"frametime": 4,
"frames": [
0,
1,
{
"index": 2,
"time": 10
},
1
]
}
}Неквадратным кадрам с 1.13 нужен их размер. Тогда игра читает их рядами, слева направо:
{
"animation": {
"width": 32,
"height": 16,
"frametime": 2
}
}| Версия | Что умеет анимация |
|---|---|
| 1.6.1 – 1.7.10 | Скорость (frametime) и порядок со временем (frames). Кадры — квадраты шириной с картинку. |
| 1.8 – 1.12.2 | Плюс плавный переход (interpolate). |
| 1.13 и новее | Кадры любого размера (width, height). |
| 1.21.2 и новее | Плавный переход смешивает и прозрачные пиксели. Раньше смешивались только цвета, а каждый кадр сохранял свою прозрачность. |
Редактор пишет то, что читает самая старая версия твоего пака, и при экспорте предупреждает, если какая-то версия из его диапазона не может что-то проиграть. Java анимирует текстуры, которые собирает в атлас текстур: блоки и предметы во всех версиях, частицы, картины и значки эффектов с 1.14, сундуки, кровати, таблички, флаги, щиты и шалкеры с 1.15 и спрайты интерфейса с 1.20.2. Скины мобов, броня, шрифты, карты цветов и значок пака рисуются отдельно и остаются неподвижными, поэтому редактор говорит об этом вместо анимации.
Bedrock Edition: текстуры flipbook
Bedrock перечисляет свои анимации в textures/flipbook_textures.json. Каждая запись называет текстуру и плитку блока из terrain_texture.json, которая её показывает:
[
{
"flipbook_texture": "textures/blocks/glowstone",
"atlas_tile": "glowstone",
"ticks_per_frame": 4,
"frames": [0, 1, 1],
"blend_frames": false
}
]| Поле | Что делает |
|---|---|
flipbook_texture | Путь к текстуре, без расширения. |
atlas_tile | Плитка блока в terrain_texture.json, которую нужно анимировать. |
atlas_index, atlas_tile_variant | Какая из нескольких текстур плитки (с 0). |
ticks_per_frame | Тактов на кадр (20 тактов = 1 секунда). Одна скорость для всех кадров. |
frames | Порядок кадров. Кадр, который показывается дольше, повторяется. |
blend_frames | Плавно смешивает кадры; включено, если не указано. Редактор пишет false, если ты не включишь «Плавный переход». |
replicate | Его использует игра для текущей воды и лавы; остаётся как есть. |
Кадры — квадраты шириной с картинку, сверху вниз. Редактор записывает записи игры вместе с твоими, чтобы вода, лава, огонь и другие анимированные блоки продолжали двигаться.
Импорт GIF и сохранение в GIF
- Импорт GIF или кадров… в меню текстуры или в меню ⋯ принимает анимированный GIF, спрайт-лист (кадры размером с текстуру рядом друг с другом или ленту из квадратов) или несколько картинок, по порядку их имён. GIF можно и просто перетащить на холст.
- Каждый кадр приводится к размеру текстуры без сглаживания, так что пиксель-арт остаётся чётким.
- Время в GIF задаётся в сотых долях секунды: 5 сотых — это один такт, поэтому тайминг GIF переводится в такты с округлением. Можно оставить и текущую скорость.
- Сохранить как GIF… сохраняет анимацию, чтобы поделиться ею, с увеличением до 16 раз. Плавные переходы сохраняются такт за тактом, как их показывает игра. В GIF нет полупрозрачных пикселей: они становятся непрозрачными или прозрачными.
Открыть пак с анимациями
Открой .zip для Java или .mcpack для Bedrock, и его анимации заиграют в редакторе, готовые к изменениям: кадры, скорость, время кадров и плавный переход берутся из его файлов .png.mcmeta или списка flipbook. Анимации сохраняются вместе с проектом, так что файлы проекта и резервные копии тоже их хранят.
Частые вопросы
Моя анимация не двигается в игре. Почему?
В Java файл .png.mcmeta должен лежать рядом с картинкой и называться точно как она плюс .mcmeta, а текстура должна быть из тех, что игра анимирует (блоки, предметы и другие текстуры атласа). В Bedrock двигаются только текстуры блоков с записью flipbook. Проверь, что пак включён и стоит выше других паков, которые меняют ту же текстуру.
Можно ли анимировать предметы в Bedrock?
Нет. Наборы ресурсов Bedrock могут анимировать только текстуры блоков, через flipbook_textures.json. Паки для Java могут анимировать предметы.
Насколько быстрой может быть анимация?
Быстрее всего — один кадр за такт: 20 кадров в секунду. Редактор принимает до 12 000 тактов (10 минут) на кадр.
Все кадры должны быть одного размера?
Да. Кадры вырезаются из одной картинки, поэтому у них одна ширина и одна высота. Импортированные картинки приводятся к размеру кадра.