Генератор пиксельных персонажей Universal LPC — как собрать спрайтшит для 2D-игры за пару минут
Рисовать спрайты для пиксельной RPG — задача долгая и рутинная. Когда вам нужны десятки разных персонажей с анимациями ходьбы, замаха мечом, выстрела из лука и падения, объём работы разрастается мгновенно. Ещё сложнее сделать так, чтобы вся одежда, причёски и броня правильно накладывались друг на друга во всех кадрах.
В 2012 году сообщество OpenGameArt вместе с Creative Commons и Mozilla запустило конкурс Liberated Pixel Cup. Цель была простой: создать единый открытый графический стиль для 2D-игр. Из этого состязания вырос проект Universal LPC Spritesheet Character Generator. Это веб-приложение и набор совместимых между собой спрайтов, из которых можно конструировать готовых героев.
Как устроен генератор
Инструмент работает прямо в браузере. Вы выбираете базовую модель тела, добавляете элементы одежды, брони, выбираете причёску и оружие. Приложение накладывает слои в нужном порядке и генерирует единую картинку-спрайтшит.
![]()
У этого подхода два главных плюса:
- Каждая деталь заранее анимирована под стандартный набор движений (ходьба, атака мечом, бег, замах, получение урона).
- Разные элементы стиля LPC совпадают по пропорциям и пиксельной сетке.
Если вам нужен стражник в латах с алебардой или крестьянин в холщовой рубахе, вы собираете их из готовых кусочков за три клика.
Лицензии и юридические нюансы
Разные авторы создавали ассеты для проекта под разным соусом. В одном спрайтшите могут пересекаться элементы с лицензиями CC0, CC-BY, CC-BY-SA, OGA-BY и GPL.
Главная сложность открытой графики — необходимость указывать всех авторов. Если вы взяли кастомную бороду от одного художника и щит от другого, их нужно упомянуть в титрах.
Авторы генератора облегчили эту задачу. Вместе с итоговой картинкой сервис выдаёт текстовый файл или CSV со списком авторов всех использованных слоёв.
![]()
Вам остается только приложить CREDITS.csv к вашей игре или вывести имена во внутриигровом меню титров. Если планируете релиз на площадках с DRM (вроде Steam или App Store), разработчики рекомендуют быть аккуратнее с ассетами под CC-BY-SA и выбирать варианты с CC0 или OGA-BY.
Что под капотом
Фронтенд проекта собран на Vite и TypeScript. Интересная деталь — система смены цвета элементов.
Раньше перекраска штанги или волос происходила на CPU через попиксельную замену цветов в Canvas API. На больших спрайтшитах это вызывало задержки при переключении ползунков в интерфейсе. Разработчики переписали этот узловой механизм на шейдеры WebGL.
Теперь палитра передаётся в фрагментный шейдер как текстура, а перекраска происходит на GPU. Время генерации предпросмотра упало с 200 миллисекунд до 90. Если браузер или видеокарта не поддерживают WebGL, приложение автоматически откатывается на старый CPU-рендер.
Управлять режимом рендеринга можно прямо из консоли браузера:
// Проверить текущий режим
getPaletteRecolorConfig();
// Принудительно включить CPU для отладки
setPaletteRecolorMode("cpu");
// Вернуть WebGL
setPaletteRecolorMode("webgl");
Для отслеживания производительности в код встроили профайлер. В режиме локальной разработки он замеряет FPS, расход памяти и время отрисовки слоёв на Canvas.
Локальный запуск и интеграция с движками
Если вы хотите развернуть генератор у себя или добавить свои собственные спрайты, проект легко запускается локально:
git clone https://github.com/LiberatedPixelCup/Universal-LPC-Spritesheet-Character-Generator.git
cd Universal-LPC-Spritesheet-Character-Generator
npm install
npm run dev
После этого приложение доступно по адресу http://localhost:5173.
Для популярного движка Godot созданы готовые плагины (для версий 3.5 и 4.2), которые умеют импортировать LPC-спрайтшиты и автоматически нарезать их на анимационные треки. Сообщество также собирает стартовый набор плагинов для RPG Maker MZ.
Кому пригодится проект
Universal LPC Spritesheet Generator — спасение для инди-разработчиков и участников геймджемов. Когда нет бюджета на 2D-художника, этот инструмент закрывает потребности в персонажах для прототипа или даже полноценной retro-RPG.
Графика здесь специфическая, со своим узнаваемым стилем 16-битных игр 90-х. Но если этот стиль подходит вашей игре, вы сэкономите сотни часов работы над спрайтами.