Есть текстурный атлас для 2D игры. Нужно выдрать оттуда отдельные картинки. Какие есть инструменты для этого? Подобный функционал есть в TexturePacker, называется Split Sheet, но он доступен только в платной Pro-версии приложения. Есть ли бесплатные аналоги?
Paint.
Selection -> Crop -> Save
А если по делу, не совсем ясно, в чем сложность? Опиши проблемы детальнее
Я бы попросил ChatGPT написать скрипт, который распарсит описание атласа в твоём формате, загрузит изображение, и сохранит отдельные картинки.
Атласы без всякого формата, сортировки и описания. Просто куча кадров на одной картинке без всяких XML/JSON. Вручную вырезать долго и нудно(но вполне можно). Просто Texture Packer умеет автоматически вырезать из атласа отдельные картинки в пару кликов. Неужто нет бесплатного инструмента для этого?
XnViewMP, в обозревателе - создать - разбивка изображения
nojiri
выложи пример атласа, проверю на своем велосипеде у которого данный функционал не был основным но был добавлен так как получался бесплатно.
nojiri
для такого атласа решение было дано в #1
ещё вариант: закрась буквы цветом фона (зелёным), и надми кнопку "автоматически". Целевой движок поищет спрайт, игнорируя цвет фона.
Ну и руками в любом случае, доводить придётся, потому что на этой картинке нет такой важной информации, как "якорь" спрайта. Указание того пикселя, который соответвует координатам игрока/моба
skalogryz
не придется
nojiri
выложу чуть позже как буду у компа
Aroch
> выложу чуть позже как буду у компа
ждём чо! очень интересно стало!
skalogryz
приводить в нормальный вид не буду, на это надо время и потребность как таковая, но с тем типом атласов что привел ТС она справится без тюнинга.
nojiri
https://drive.google.com/file/d/116tY4Rog190pLvE-1tF6uSzJnSMnYhbS… sp=drive_link
открываешь, выделяешь не нужные, удаляешь по delete, сохраняешь. Создается папка в месте где хранится открытый файл с тем же именем, в ней набор сохраненных спрайтов. Мелкие спрайты тюнь сам, в настройках (sprites_editor_settings.lua открываешь в текстовом файле, там разберешься что к чему) можно указать максимальную дистанцию по горизонтали и вертикали в пределах которой пиксели будут считаться принадлежащими одному спрайту. Если в картинке нет альфы, то за нее берется самый часто встречаемый цвет, поэтому если такой вариант не подходит, добавляй нужную альфу сам. В настройках также можешь указать минимальный порог для альфы, по умолчанию 127 если альфа у пикселя выше этого значения то пиксель обрабатывается как обычно, если ниже то считаем что он уже за пределами спрайта. При сохранении обрезания спрайтов по контору не происходит, сохраняется вся прямоугольная область целиком (можно сделать, но нет нужды). Если попросит доступ в "инет" (на самом деле на localhost) то смело запрещай, это нужно для связи с логгером который отдельной софтиной и тебе ни к чему, а выпиливать мне было лень.
Только сейчас подумал, что наверное вариант с выбором отдельных спрайтов для сохранения тоже нужен был бы, и если потребуется, то его можно легко добавить.
обновил, ссылка та же. Добавил:
1) в Edit->Mark/Unmark all as skip on save, позволяет пометить или снять со всех спрайтов метку на пропуск при сохранении, по умолчанию желтым цветом (в конфиге можно поменять) спрайты которые не надо сохранять.
2) выбираем отдельный спрайт, жмем S, снимаем или устанавливаем метку на пропуск при сохранении.
3) жмем правой кнопкой по спрайту, он добавляется в sprite sheet viewer -> Player's characters -> Body -> название файла с картинкой -> sprite #<число>.
sprite #<число> можешь изменить на любое название, оно будет использоваться для имени файла при сохранении для данного спрайта. Если оставить пустым то будет использоваться уникальное число. Если используешь одинаковое имя для нескольких спрайтов, то они перезапишут друг друга и останется только один при сохранении.
4) реакция на S и Delete при выбранном спрайте только если окно с картинкой в фокусе.
предполагаемый порядок работы: запускаем, открываем атлас.
Если нужно сохранить небольшое количество спрайтов edit->mark all as skip on save.
Выбираем нужные спрайты, тыкая по очереди пкм и S, переименовываем, File->Save.
Если нужно сохранить наоборот большое количество спрайтов edit->unmark all as skip on save, выбираешь не нужные жмешь S, пкм (если нужны определенные имена), запасаешься терпением и переименовываешь, File->Save.
Aroch
Спасибо.
Aroch
> приводить в нормальный вид не буду
а "якорь" она сможет найти?
skalogryz
> а "якорь" она сможет найти?
"якорь" это условное понятие и зависит от воли человека. Поэтому понятное дело что нужно выставлять самому. Изначально софтина делалась для тестирования фреймворка gui и всяких мелких штук (пример рейтресера внутри намекает, через пкм/wasd можно в слепую перемещать камеру), сохранение отдельных спрайтов появилось когда warzes спросил нечто подобное для своего атласа, после чего к ней не прикасался.