Character sprite maker · one prompt, a full sheet

Character Sprite Maker: Full Sprite Sheets from a Prompt

Создайте собственный character sprite maker

Создавайте спрайты персонажей — idle, walk, attack, восемь направлений — из одного описания. Прозрачные кадры, ровная сетка, готовность к движку. Затем поместите персонажа в 3D-мир, по которому можно ходить.

✦Спрайт
Создайте спрайт персонажа: девушка-рыцарь с копьём

Character sprite maker принимает текстовое описание и возвращает полный спрайт-лист: idle, walk, run, attack, cast в восьми направлениях, на прозрачных кадрах, на фиксированной сетке, с точкой отсчёта у ступней. Вы описываете персонажа — тип телосложения, силуэт, палитру, оружие в руках, слои одежды — а инструмент отрисовывает все позы из этого описания, а не один героический кадр, который придётся перерисовывать вручную.

Разница между спрайтом и спрайт-листом — это разница между изображением и системой анимации. Один удачный кадр idle — это картинка. Лист — это конечный автомат: количество кадров, которое движок может зациклить, направления, по которым он может индексировать, и единый персонаж во всех ячейках, чтобы цикл ходьбы не менял форму на середине цикла. Neta Studio строит весь лист из промпта, а затем позволяет поместить этого персонажа в 3D-мир, по которому можно ходить.

Один промпт — полный лист персонажа

Вы описываете персонажа простым языком: вид или план тела, рост относительно сетки, телосложение, волосы или шлем, слои одежды, что он держит, диапазон палитры и художественное направление (pixel, painted, flat vector). Инструмент разбирает это в спецификацию персонажа и отрисовывает всю матрицу — каждую анимацию, каждое направление — из одной и той же спецификации. На выходе получается лист, а не выбор отдельной позы.

Отдельный кадр почти ничего не говорит о том, работает ли персонаж в игре. Как только он начинает двигаться, должны выдерживаться три вещи: силуэт должен оставаться читаемым в том размере, в котором вы его действительно рисуете, палитра не должна смещаться между кадрами, а точка привязки не должна блуждать. Лист делает эти ограничения видимыми сразу. Вы видите walk рядом с idle, видите кадр 3 рядом с кадром 1 и замечаете дрейф до того, как он дойдёт до движка.

Работа из одного описания также делает персонажа воспроизводимым. Измените промпт — замените плащ на латы, сдвиньте палитру на два шага в холодную сторону — и вы перегенерируете весь лист с применённым везде изменением. Вам не нужно вручную править сорок кадров под новое цветовое решение.

1

01

Напишите описание персонажа: тип телосложения, рост в единицах сетки, телосложение, одежда и предметы в руках, палитра, художественное направление.

2

02

Задайте сетку кадров: квадратные ячейки, кратные степени двойки, порядок строк анимаций — в документации.

3

03

Сгенерируйте лист и сравните первый кадр каждой анимации с последним — они должны быть соседними, а не идентичными.

4

04

Проверяйте силуэт в конечном масштабе отображения, а не в приближенном виде.

5

05

Экспортируйте прозрачные PNG-кадры с задокументированной сеткой и точкой отсчёта у ступней.

Idle, walk, run, attack, cast

Пять анимаций покрывают большинство 2D-персонажей: idle, walk, run, attack, cast. Idle — это цикл дыхания, в котором персонаж проводит большую часть своей жизни. Walk — цикл перемещения, обычно с наибольшим числом заметных касаний ступнями. Run — то же движение быстрее и с большим наклоном корпуса. Attack — одноразовая анимация с замахом, кадром контакта и восстановлением. Cast — одноразовая анимация с удержанием: поза, в которой персонаж находится, пока снаряд или AOE не разрешится.

Количество кадров важно сильнее, чем ожидают. В игровом масштабе — персонаж высотой примерно от 32 до 64 пикселей на виде 320×180 или 640×360 — четыре кадра ходьбы читаются как ходьба; шесть — как более плавная; восемь начинают стоить больше, чем дают. Циклы бега часто работают на четырёх. Idle — от двух до четырёх; два — классическое дыхание, четыре дают вторичное действие вроде покачивания или колебания оружия. Attack — обычно от трёх до пяти кадров: замах, контакт, продолжение движения, восстановление. Cast — от четырёх до шести с удержанным кадром.

Режим отказа здесь — это тайминг, а не количество кадров. Четырёхкадровая ходьба, экспортированная без задержки между кадрами, проигрывается на частоте кадров движка и выглядит как дрожание, а не как шаг. Лист поставляется с рекомендуемым fps для каждой анимации, чтобы у импортёра движка было разумное значение по умолчанию, которое можно переопределить.

АнимацияКадрыЦиклПримечания
Idle2–4дадыхание или покачивание; первый и последний кадр соседние
Walk4–8дакасания ступнями на чётных кадрах читаются чище всего
Run4дабольше наклона, длиннее шаг, чем в walk
Attack3–5нетзамах, контакт, продолжение движения
Cast4–6нетвключает удержанный кадр для разрешения

Одна полоса, одно описание

Восемь направлений означают, что лист покрывает N, NE, E, SE, S, SW, W, NW — полный круг шагами по 45 градусов. Играм с видом сверху и изометрии это необходимо, потому что игрок видит персонажа с фиксированной камеры и может двигаться в любом направлении. Четыре направления (N, E, S, W) оставляют диагонали визуальной ложью: спрайт смотрит на восток, пока персонаж идёт на северо-восток. Восемь направлений приводят направление взгляда в соответствие с вектором движения.

Лист раскладывается как матрица: одна строка на направление, один столбец на кадр внутри анимации, либо один блок на направление, содержащий все анимации в одном и том же порядке. Подходит любой вариант, если порядок задокументирован. Sprite Editor в Unity нарезает по сетке; Godot AnimatedSprite2D ожидает отдельные region rects или нарезанную текстуру; редактор спрайтов GameMaker принимает сетку плюс точку отсчёта для каждого кадра. Порядок, по которому вы индексируете в движке, должен совпадать с порядком, в котором лист был отрисован, иначе получите персонажа, идущего луной походкой.

Тонкая часть — это переходные кадры. Если отрисовать только восемь канонических направлений, спрайт скачком переключается между ними, когда вектор движения пересекает границу в 22,5 градуса. Два способа смягчить: отрисовать восемь направлений и позволить короткой анимации поворота закрыть границу, либо принять скачок и оставить поворот персонажа с привязкой к ближайшему из восьми. Оба варианта законны; лист поддерживает любой из них, потому что ничего в нём не предполагает наличия кадра поворота.

Единые персонажи во всём наборе

Настоящая проблема в работе со спрайтами — это дрейф. Первый персонаж сгенерирован с определённым соотношением головы к телу, определённой палитрой, определённой толщиной линий. Второй персонаж сгенерирован позже, по иначе сформулированному промпту, и возвращается на полголовы выше, с более холодными тонами кожи и более толстым контуром. Рядом друг с другом на экране отряда они не выглядят так, будто принадлежат одной игре.

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

Agent Sprite Forge создан для того, чтобы удерживать эту стилевую часть неизменной. Вы генерируете состав из общей стилевой спецификации, поэтому соотношение головы, толщина контура и диапазон палитры остаются постоянными, пока отдельные персонажи различаются. Проверка проста: выстройте кадры idle всего состава в конечном размере отображения. Если один читается как из другой игры, стилевая спецификация поплыла.

Сохранение единого стиля во всём составе

Зафиксируйте стилевые параметры до того, как напишете любой идентифицирующий промпт: размер ячейки, соотношение головы к телу, толщину контура в пикселях, диапазон палитры и направление затенения, художественное направление. Считайте их константами. Каждый промпт персонажа наследует их и добавляет только идентичность. Когда персонаж возвращается вне стиля, исправление почти всегда в стилевой части, а не в идентифицирующей.

Экспорт с готовностью к движку

Каждый кадр экспортируется как прозрачный PNG. Лист поставляется с задокументированной сеткой — ширина и высота ячейки, строк на направление, столбцов на кадр, порядок анимаций — чтобы импортёр знал, где находится каждая ячейка. Точка отсчёта находится у ступней, по горизонтали по центру центра масс персонажа, поэтому размещение спрайта в точке земли ставит ступни на землю, а не центр изображения.

Этот выбор точки отсчёта важен в любом движке. Sprite Editor в Unity позволяет задать пользовательскую точку привязки; установите её в bottom-center, чтобы соответствовать задокументированной точке отсчёта. Godot AnimatedSprite2D использует region rects для каждого кадра из нарезанной текстуры; держите нарезку выровненной по задокументированной сетке, иначе ваши циклы сместятся на один кадр. Свойства спрайта в GameMaker принимают сетку плюс точку отсчёта для каждого спрайта; применяется то же значение bottom-center.

Пресеты экспорта можно переопределять. Если ваша игра работает с другим размером ячейки, лист масштабируется чисто при целых множителях; именно нецелый масштаб вносит размытие. Точечная фильтрация для пиксель-арта, билинейная для рисованного. Прозрачная альфа сохраняется, поэтому очистка мата перед импортом не требуется.

ДвижокПуть импортаЧто настроить
UnitySprite Editorпользовательская точка привязки в bottom-center; нарезка по сетке
GodotAnimatedSprite2D + SpriteFramesнарезать текстуру по задокументированной сетке; region rects для каждого кадра
GameMakerсвойства спрайтаразмер сетки из документации; точка отсчёта bottom-center

Следующая жизнь персонажа: 3D-мир

Спрайт-лист — это персонаж. Мир — это то, где он живёт. То же описание, что дало спрайт-лист, питает 3D-конструктор игр, который превращает его в проходимый мир Three.js: земля, коллизии, камера и место, где персонаж может стоять. Вы не переносите файлы между инструментами — описание и есть ассет.

Вы можете ходить по этому миру прямо в браузере. Поместите персонажа внутрь, управляйте камерой и проверьте, читается ли спрайт в том масштабе, который мир действительно предлагает. Персонаж, выглядевший правильно в плоском просмотрщике спрайтов, может выглядеть неправильно на освещённом 3D-полу, как только появляются перспектива и тени. Видя и то и другое одновременно, вы замечаете несоответствие рано.

Это тот же путь, которым идёт The Cyclops' Island — одно описание, играбельный мир — а Mini World — его уменьшенная версия. Создатель спрайтов — это 2D-конец того же конвейера: опишите вещь, получите пригодный ассет, затем поместите его туда, где можно двигаться.

  • Agent Sprite ForgeГенерирует полные спрайт-листы — idle, walk, run, attack, cast в восьми направлениях — из одного описания персонажа, с прозрачными PNG-кадрами и задокументированной сеткой.
  • The Cyclops' IslandСгенерированный 3D-мир, по которому можно ходить, построенный из описания, а не расставленный вручную, используемый как цель для персонажей, созданных в создателе спрайтов.
  • Mini WorldПресет 3D-мира уменьшенного масштаба для быстрой проверки персонажа в проходимом пространстве без создания полной сцены.
  • Конструктор 3D-игрБраузерный конструктор, превращающий текстовое описание в настоящий играбельный мир Three.js, куда персонаж помещается как управляемый актор.
Рыцарь — шесть кадров, одна строка, из одного описания.
The Cyclops' Island — тот же конвейер персонажей, шаг дальше в 3D.

Войдите в мир, которому он принадлежит

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

FAQ

Что такое character sprite maker? +

Character sprite maker превращает текстовое описание в полный спрайт-лист — idle, walk, run, attack, cast в восьми направлениях — на прозрачных кадрах с задокументированной сеткой и точкой отсчёта у ступней. Он заменяет ручную отрисовку каждой позы этапом генерации из одного описания.

Сколько кадров нужно для цикла ходьбы? +

От четырёх до восьми. В игровом масштабе — примерно от 32 до 64 пикселей в высоту — четыре кадра читаются как ходьба, а восемь — как более плавная. Свыше восьми дополнительные кадры стоят больше по размеру листа и времени импорта, чем дают в читаемости.

Почему восемь направлений, а не четыре? +

Игры с видом сверху и изометрии используют фиксированную камеру и допускают движение в любом направлении, поэтому четыре направления оставляют диагонали визуальной ложью. Восемь направлений шагами по 45 градусов приводят направление взгляда спрайта в соответствие с вектором движения.

В каком формате экспортируются спрайты? +

Прозрачные PNG-кадры, разложенные на задокументированной сетке с точкой отсчёта у ступней, по горизонтали по центру персонажа. Тот же лист импортируется в Unity, Godot и GameMaker после установки точки привязки или отсчёта в bottom-center.

Как не дать персонажам в наборе выглядеть несогласованно? +

Зафиксируйте стилевые параметры — размер ячейки, соотношение головы к телу, толщину контура, диапазон палитры, направление затенения — и варьируйте только идентичность каждого персонажа. Дрейф почти всегда происходит из-за недоописанной стилевой части, а не из-за описания идентичности.

Можно ли использовать того же персонажа в 3D-мире? +

Да. То же описание, что сгенерировало спрайт-лист, питает конструктор 3D-игр, который превращает его в проходимый мир Three.js. Вы можете перемещаться по нему в браузере и проверять, как персонаж читается в том масштабе, который предлагает мир.

Назад к конструктору 3D-игр

Все 31 готовых 3D-миров, игр и сцен собраны на одной странице — в каждый из них можно играть.

Платформа: Neta StudioСтраница: Character Sprite Maker: Full Sprite Sheets from a PromptЧитать далее: /explore/tool/sprite-sheet-maker · /explore/tool/sprite-animator · /explore/tool/sprite-resource-library

Посмотрите реальные листы персонажей

Каждый ассет в этой библиотеке — прозрачный PNG, готовый для игры, с записанным промптом — спрайт-листы персонажей и библиотека спрайтовых ресурсов с тегами по действию, стилю и субъекту. Бесплатно для просмотра и скачивания.

×