Гайд

Как сделать анимированные текстуры

Анимированная текстура — это высокая картинка из кадров один под другим, которые игра показывает по очереди. Так работают вода, лава, огонь и порталы, и пак может анимировать и другие блоки и предметы. Texture Pack Maker превращает любой блок или предмет в анимацию, проигрывает её со скоростью игры, пока ты рисуешь, импортирует GIF и пишет файлы, которые нужны каждому изданию: файл .png.mcmeta для Java и запись flipbook для Bedrock.

Обновлено

По шагам

  1. Открой Texture Pack Maker и создай пак или открой тот, что у тебя уже есть.
  2. Открой текстуру блока или предмета и выбери в её меню (⋮) Сделать анимацию. У неё будет два кадра, а под холстом появится лента кадров.
  3. Нарисуй каждый кадр. + добавляет копию выбранного кадра; меню ⋯ дублирует, копирует, вставляет, двигает и удаляет кадры. Включи кальку, чтобы видеть предыдущий кадр бледно, пока рисуешь.
  4. Часы открывают Тайминг: сколько тактов показывается каждый кадр (20 тактов — 1 секунда), время отдельных кадров и Плавный переход. Нажми воспроизведение, чтобы посмотреть со скоростью игры.
  5. Нажми Экспорт. Паки для Java получают ленту кадров с её .png.mcmeta, паки для Bedrock — запись в flipbook_textures.json.

Кадры, калька и лента

  • Перетащи кадр мышью на новое место. На телефоне или планшете используй Сдвинуть раньше и Сдвинуть позже в меню ⋯.
  • После щелчка по кадру: Alt + стрелки двигают его, Delete удаляет, а Ctrl+C и Ctrl+V копируют его и вставляют как новый кадр — в любую анимацию пака. Клавиши «запятая» и «точка» листают кадры, пока ты рисуешь.
  • Калька показывает предыдущий кадр бледно поверх того, который ты рисуешь, чтобы движение совпадало. В меню ⋯ можно показать и следующий.
  • Если удалить кадры до одного или выбрать Убрать анимацию, текстура снова станет неподвижной. И то и другое можно отменить.

Тайминг в тактах

Minecraft считает время в тактах (тиках): 20 тактов — это 1 секунда, значит, один такт — 0,05 секунды. Каждый кадр показывается целое число тактов:

Тактов на кадрСекундыКадров в секунду
10,05 с20
20,1 с10
40,2 с5
100,5 с2
201 с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 минут) на кадр.

Все кадры должны быть одного размера?

Да. Кадры вырезаются из одной картинки, поэтому у них одна ширина и одна высота. Импортированные картинки приводятся к размеру кадра.