Как разложить спрайт лист

9

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

Моими инструментами разработки являются XNA и C #, ориентированные на Windows. Как я могу разложить изображения?

Раймонд Холмбое
источник
1
Вы можете загрузить их краской и делать, как хотите: D
Shane.C
Texture2D.GetData/ SetDataи некоторые относительно простые математики. Зависит от того, как данные отформатированы. Следите за этим SaveAsPng.
Эндрю Рассел
Краска = боль :)
Рэймонд Холмбое
Я не уверен, как сделать простую математику, хотя
Raymond Holmboe

Ответы:

6

Попробуйте Sprite Decomposer или Sprite Vortex , я полагаю, что они оба имеют автоматическую обрезку спрайтов на основе альфа.

r2d2rigo
источник
1
Отлично! Sprite Vortex - это приложение, которое я искал.
Рэймонд Холмбое
1
Распаковщик Sprite НЕ РАБОТАЕТ НА MAC OS 10.9
GameLoading
Я разветвлял Sprite Decomposer и портировал его на QT5 для поддержки современной OS X. Пожалуйста, ознакомьтесь с репозиторием github с готовыми двоичными файлами, доступными на его сайте sourceforge
eriknelson
0

На ум приходят два метода, в зависимости от количества фрагментов, которые вы хотите создать:

Либо покрасьте, как отмечено в комментариях. Легче, чем кодирование чего-либо, если у вас небольшое количество спрайтов и / или если вы пропускаете большинство отображений.

Или вы можете написать небольшую программу XNA, которая выглядит примерно так:

Hackworth
источник
У меня нет сопоставлений, к сожалению,
Рэймонд Холмбое,
@RaymondHolmboe Тогда вам нужно предоставить более подробную информацию. Есть ли способ, которым программа могла бы отличить одну карту текстур от другой автоматически, или все субтекстуры имеют одинаковый размер или что-то еще? Если у вас есть больше информации, пожалуйста, добавьте ее в свой вопрос, иначе я не вижу, как вы можете решить ее, кроме как с помощью Paint.
Хакворт
0

Вам нужно эфир перейти на Adobe Fireworks или Paint

Но если вы занимаетесь рисованием, вам также понадобится paint.net! Потому что, если вы используете paint, у него будет фон, поэтому, когда вы откроете этот спрайт в paint.net, вы сможете убрать фон очень просто, но если вы беспокоитесь о текстурах, как в играх, вы должны создать свой собственный.

Пика
источник