Изображение представляет собой вертикальную ленту
Текстура 16x16 с четырьмя кадрами анимации представляет собой файл 16x64 PNG: каждый квадрат кадра расположен вертикально друг под другом, первый кадр сверху. Игра определяет размер кадра по ширине, поэтому высота просто должна быть кратна ей. Именно так ванильная игра анимирует огонь, воду и призрак.
prismarine.png 16 wide × 64 tall = 4 frames of 16×16
┌────────┐ frame 0
├────────┤ frame 1
├────────┤ frame 2
├────────┤ frame 3
└────────┘Файл .mcmeta
Рядом с текстурой находится файл с тем же именем плюс .mcmeta — так prismarine.png сопровождается prismarine.png.mcmeta. Обратите внимание, что посередине остается файл .png; это часто сбивает людей с толку.
{
"animation": {
"frametime": 2,
"interpolate": true
}
}Без этого файла высокий PNG не воспринимается как анимация — он считается сжатым файлом неправильного размера. Сама по себе лента ничего не делает.
frametime
Сколько игровых тиков удерживается каждый кадр. В секунду 20 тиков, поэтому frametime: 2 соответствует десяти кадрам в секунду, а frametime: 20 соответствует одному кадру в секунду. По умолчанию установлено значение 1 — один кадр за тик, что очень быстро и редко бывает нужно.
interpolate
С interpolate: true, Minecraft плавно смешивает кадры друг с другом вместо резкой смены. Именно так ванильная игра делает медленное мерцание всего из нескольких кадров — она генерирует промежуточные кадры за вас.
Используйте для плавных эффектов: свечения, воды, мягких цветовых переходов. Отключите для всего, что должно выглядеть как четкие шаги, например, мигающий свет или вращающийся узор, где смешивание даст лишь кашу.
Управление порядком и таймингом кадров
По умолчанию кадры воспроизводятся в порядке файла и зацикливаются. frames переопределяет это — вы можете менять порядок кадров, повторять их и задавать индивидуальную длительность для каждого кадра:
{
"animation": {
"frametime": 4,
"frames": [
0,
1,
{ "index": 2, "time": 20 },
1
]
}
}Это воспроизводит кадры 0, 1, 2, 1 (пин-понг вместо цикла) и удерживает кадр 2 целую секунду, пока остальные используют стандартные 4 тика. Повторное использование кадров позволяет сохранить PNG маленьким; для отскока не нужно дублировать кадры в картинке.
Делайте анимацию короткой
Как это сделать без написания JSON
Файл редактор обрабатывает анимацию как кадры, а не как формат файла: вы создаете кадры, задаете скорость, а лента и файл .mcmeta генерируются при экспорте с правильными именами. Вы также можете импортировать GIF и конвертировать его в кадры, что обычно быстрее, чем рисовать цикл вручную.
Если что-то анимируется в неправильном порядке или вообще не анимируется, почти всегда дело в названии .mcmeta — проверьте texture.png.mcmeta а не texture.mcmeta. Другие ошибки рассмотрены в почему ваш набор текстур не работает.
