스프라이트 시트 분할기이란?
이 도구는 스프라이트 시트를 개별 프레임 이미지로 잘라 냅니다. 열과 행으로 격자를 지정하거나 타일 크기를 직접 입력하고, 시트 위에 겹쳐 보이는 절단선으로 확인한 뒤 모든 프레임을 번호가 매겨진 PNG로 묶어 ZIP으로 내려받을 수 있습니다. 게임 개발자는 아틀라스 한 장에서 애니메이션 프레임이나 아이콘 세트를 뽑아낼 때 이 도구를 씁니다.
파일을 올리면 알파 채널에서 투명한 간격을 훑어보고, 간격이 일정하면 타일 크기와 간격, 여백이 알아서 채워집니다. 빈 칸은 출력에서 뺄 수 있습니다. 프레임은 name_01.png처럼 번호가 붙어 나오고, 한 장씩 받거나 name_frames.zip으로 묶어 받습니다. 한 장당 최대 1024칸까지 자릅니다.
사용 방법
- 스프라이트 시트 PNG를 올리고 격자 방식을 고르세요. 열 × 행으로 나누거나 타일 너비와 높이를 직접 지정할 수 있습니다.
- 오프셋, 간격, 여백을 조정해 미리보기 격자선이 스프라이트에 정확히 맞도록 하세요.
- 프레임을 하나씩 확인하고 필요하면 빈 타일은 건너뛴 다음, 전체 프레임을 PNG ZIP으로 내려받으세요.
사용 시기
- 캐릭터 아틀라스에서 12프레임 달리기 동작을 뽑아 Godot 프로젝트에 넣을 때.
- 구매한 아이콘 시트를 낱개 PNG로 쪼개 UI 라이브러리에 담을 때.
- 원본이 사라진 옛 타일셋에서 타일을 한 칸씩 되살릴 때.
결과
게임 개발자가 512×512 캐릭터 아틀라스를 올리고 타일 크기를 64×64, 간격을 2px로 설정하면 격자가 56개 프레임에 딱 맞게 정렬되고, walk_01.png부터 walk_56.png까지 한 번에 ZIP으로 받을 수 있습니다.
자주 묻는 질문
- 업로드하기 전에 타일 크기를 직접 재야 하나요?
- 대개는 그럴 필요가 없습니다. 알파 채널에서 투명한 틈을 찾아 시트 전체의 간격이 일정하면 타일 크기와 여백, 간격이 채워집니다. 불규칙한 시트는 2의 거듭제곱으로 추측한 값을 주니 손보면 됩니다.
- TexturePacker로 압축한 아틀라스처럼 스프라이트가 제멋대로면 어떻게 하나요?
- 압축된 아틀라스에는 반복되는 간격이 없어 격자 절단으로는 손댈 수 없습니다. 그런 도구는 스프라이트마다 사각형 좌표를 담은 JSON이나 XML을 함께 내보내므로, 그 파일을 읽는 도구가 필요합니다.
- 잘라낸 뒤에도 각 프레임의 투명 배경이 남나요?
- 남습니다. 각 칸은 알파까지 포함해 픽셀 단위로 별도 PNG에 복사됩니다. 부드러운 그림자가 달린 스프라이트도 뒤에 흰 테두리가 생기지 않은 채 엔진으로 들어갑니다.
- 시트는 얼마나 큰 것까지 올릴 수 있고 프레임 수 제한은 어떻게 되나요?
- 파일은 20MB까지, 격자는 64열 64행까지, 자르기는 1024칸에서 멈춥니다. 32×32 타일 1024개면 1024×1024 이미지이니 실제로 쓰이는 시트는 거의 다 들어갑니다.
- 프레임은 어떤 순서로 나오고 파일 이름은 어떻게 붙나요?
- 읽는 순서대로 왼쪽에서 오른쪽으로 간 뒤 아래 줄로 넘어갑니다. 이름은 원본 파일명에 0을 채운 번호가 붙어 hero.png가 hero_01.png부터 hero_56.png까지가 되고 정렬도 어긋나지 않습니다.