MushRog

Шлем меняется, и спрайт тоже

12 октября 2026 г. artearquitetura

Машинный перевод, ещё не проверен.

Прямоугольники превратились в персонажей. У Мага фиолетовая туника и посох, у Воина латная броня, шлем и длинный меч, а нажатие клавиши меняет стальной шлем на золотой без всякой перезагрузки. Это первый тест видимой экипировки, сделанный на арте, одолженном у Liberated Pixel Cup.

Зачем

Самый большой арт-риск MushRog в том, что экипировка видна на персонаже по частям. Прежде чем художница нарисует хоть одну вещь, игра должна была доказать, что собирает персонажа из слоёв, меняет один из них в реальном времени и анимирует все вместе. У LPC именно такой формат, поэтому мы использовали его, чтобы проверить «проводку», а не чтобы он остался.

Как это работает

Каждый персонаж — это рецепт: список слоёв (тень, тело, штаны, сапоги, торс, волосы, шлем, оружие) с порядком глубины. Сменить экипировку значит сменить картинку одного слоя. Все слои используют одну сетку кадров, так что анимация двигает тело, одежду и оружие синхронно. Ходьба, удар, каст, выпад и получение урона уже работают.

Сетка (размер кадра, строки каждой анимации, количество кадров) лежит в файле данных, и код никогда не опирается на 64 пикселя. Когда художница определит свой стандарт, мы заменим файл и папку со спрайтами.

Скрипт копирует из генератора LPC только используемые слои, проверяет размер листов и заново генерирует титры по таблице авторов самого LPC. Одолженные спрайты в репозиторий не попадают: кто клонирует проект, запускает скрипт и получает такой же прототип, а в версиях остаётся рецепт.

Босс стал мускулистым телом из LPC в двойном масштабе, окрашенным в оранжевый. Некрасиво, но сойдёт, потому что важно, что та же система работает и для врагов.

Смена источника

Мы перешли на официальный репозиторий генератора, который поддерживает организация Liberated Pixel Cup. Формат у него изменился: одна картинка на анимацию и цвета по палитре вместо отдельного файла на каждый цвет. Скрипт экспорта теперь собирает каждый слой в один лист в раскладке игры, а варианты цвета остаются на шейдере. Воин пока лишился длинного меча, ведь большое оружие использует кадры больше 64 пикселей, а игра этого ещё не читает. Он сражается кинжалом, пока это не появится.

Цвет без нового спрайта

В тот же день появился рекалор через шейдер: у слоя можно сдвигать оттенок, насыщенность и яркость на видеокарте. Каждый цвет спрайта превращается ровно в один другой цвет, так что у пиксель-арта то же число цветов и он не размывается. Клавиша H крутит цвет волос, а босс получил огненно-красный тем же путём. Художница рисует волосы один раз, а игра выдаёт все цвета.

Фаза 0 закрыта

Со сменой, реакциями, уклонением, многослойной экипировкой и рекалором, которые заработали, и с внутренним плейтестом, который говорит «понравилось, всё время проигрываю, хочу научиться», фаза 0 выполнила обещанное. Дальше: посадить четырёх человек в одну комнату.

Изменения

  • feat(client): layered paper-doll characters from LPC sprites

    PaperDoll node builds a character from a layer recipe (data/dolls.json) over a shared frame grid (data/sprite_spec.json) and animates walk, slash, thrust, spellcast and hurt across all layers. tools/lpc_export.py copies only the used sheets from a local LPC generator clone into the gitignored assets/lpc/ and regenerates CREDITS.md. E key swaps the warrior helmet as the live equipment test.

  • art: compose sprites from the official LiberatedPixelCup generator

    The upstream generator now ships one image per animation and recolors by palette. tools/lpc_export.py composes each layer into the game's single-sheet layout from data/sprite_spec.json; recipes point at layer folders; helmet variants come from the HSV shader. Warrior carries a dagger until oversize weapon frames are supported.

← Назад к девлогу