Генератор спрайтов персонажа · один промпт — целый лист

Генератор спрайтов персонажа: полные спрайт-листы из промпта

Создайте собственный генератор спрайтов персонажа

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

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

Генератор спрайтов персонажа принимает текстовое описание и возвращает полный спрайт-лист: покой, ходьба, бег, атака, каст, в восьми направлениях, на прозрачных кадрах, на фиксированной сетке, с точкой привязки у ног. Вы описываете персонажа — тип телосложения, силуэт, палитру, оружие в руках, слои одежды — а инструмент отрисовывает каждую позу из этого описания, а не один основной кадр, который приходится перерисовывать вручную.

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

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

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

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

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

1

01

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

2

02

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

3

03

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

4

04

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

5

05

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

Покой, ходьба, бег, атака, каст

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

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

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

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

Восемь направлений из одного описания

Восемь направлений означают, что лист покрывает С, СВ, В, ЮВ, Ю, ЮЗ, З, СЗ — полный круг с шагом 45 градусов. Играм с видом сверху и изометрическим играм это нужно, потому что игрок видит персонажа с фиксированной камеры и может двигаться в любом направлении. Четыре направления (С, В, Ю, З) оставляют диагонали визуальной ложью: спрайт смотрит на восток, пока персонаж идёт на северо-восток. Восемь направлений приводят поворот спрайта в соответствие с вектором движения.

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

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

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

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

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

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

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

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

Экспорт, готовый для движка

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

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

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

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

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

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

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

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

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

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

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

Частые вопросы

Что такое генератор спрайтов персонажа? +

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

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

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

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

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

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

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

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

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

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

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

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

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

Платформа: Neta StudioСтраница: Генератор спрайтов персонажа: полные спрайт-листы из промптаЧитать далее: /explore/tool/sprite-sheet-maker · /explore/tool/sprite-animator · /explore/guide/sprite-resource-library
×