스프라이트 랩

시트 한 장으로 자르기·정렬·애니메이션·기준점·히트박스·아틀라스까지 한 화면에서.

스프라이트 작업 공간은 완성된 그림과 게임 엔진 사이의 단계입니다. PNG 시트, 번호 붙은 프레임 파일, GIF·APNG, .aseprite 파일, JSON·XML이 딸린 기존 아틀라스를 가져와서, 프레임마다 밀리초 길이가 있는 애니메이션(태그), 프레임별 피벗, 히트·허트·사용자 박스로 바꿉니다. 그다음 Pack & Export가 Godot 4, Unity 6, Phaser, PixiJS, LÖVE 등이 읽는 파일을 씁니다. 픽셀을 그리는 일은 같은 프로젝트의 픽셀 작업 공간에서 합니다.

이미지을(를) 여기에 놓으세요여러 개를 한 번에 처리할 수 있습니다
업로드 없음 · 이 기기에서 처리

게임에 쓰려면 픽셀 말고도 필요한 것

엔진은 그림 한 장이 아니라 프레임 목록을 재생합니다. 프레임마다 텍스처 위 사각형, 원래 속한 캔버스(트림된 프레임이 그린 자리에 오도록), 오브젝트 위치에 놓일 픽셀을 뜻하는 피벗, 길이가 필요합니다. 애니메이션은 방향과 반복 횟수가 있는 이름 붙은 프레임 묶음이고, 히트·허트 박스는 게임 코드가 검사하는 프레임별 사각형입니다.

Studio는 바로 이 문서를 저장합니다. 시트는 공유 그림 한 장이고 프레임은 그 위의 영역이라, 순서를 바꾸거나 태그를 다시 달아도 픽셀은 건드리지 않습니다. 피벗은 프레임 캔버스 기준 0~1로 저장하고(따로 정하지 않으면 아래 가운데 0.5, 1.0), 길이는 밀리초(Aseprite처럼 기본 100), 태그의 반복은 Aseprite 방식(0은 무한 반복, n은 n번 재생)입니다. 가져올 때의 자동 추측은 모두 신뢰도와 원클릭 대안과 함께 표시되고, 적용은 되돌리기 한 번 단위입니다.

내보내기 대상마다 그 엔진이 읽을 수 있는 것을 쓰고, 담지 못하는 것은 알려 줍니다. Godot는 프레임별 길이와 박스(리소스 메타데이터)를 받고, Unity는 프레임별 피벗과 태그별 클립을 받지만 박스는 받지 않으며, Defold는 애니메이션마다 FPS 하나로 재생합니다.

태그
방향(정방향·역방향·핑퐁)과 반복 횟수가 있는, 이름 붙은 프레임 묶음.
피벗
오브젝트 위치에 놓이는 프레임의 점. 프레임 캔버스 기준 0~1로 저장.
프레임 캔버스
불투명한 부분만 패킹되더라도 프레임이 그려지는 원래 크기.

예시: 384 × 256 시트 한 장을 Godot 4 번들로

48 × 64 프레임이 8열 × 4행, 한 줄에 동작 하나인 시트입니다.

가져오기   격자 48 × 64, 마진 0, 간격 0 · 프레임 32개 · 줄마다 애니메이션 하나
타임라인   줄 이름을 idle, run, jump, attack으로 변경
idle       8 × 100ms = 800ms, 반복 0(무한)
attack     7 × 100ms + 5번 프레임 250ms 유지 = 950ms, 반복 1(한 번 재생)
피벗       아래 가운데(0.5, 1.0) = 모든 프레임에서 픽셀 (24, 64)
히트 박스  attack 4~6번 프레임: (34, 30)에 16 × 12px, 세 프레임 모두 같은 박스 id
내보내기   Godot 4 → hero.tres(애니메이션 4개) + hero.png + hero.tscn + hero.png.import
           Godot에서 attack은 loop 끔, idle은 loop 켬

같은 프로젝트를 타임라인을 다시 만들지 않고 Unity나 Phaser로도 내보낼 수 있습니다. Godot에서 이어지는 단계는 Aseprite를 Godot로와 Godot에서 스프라이트 시트 쓰기에 있습니다.

결과 확인

  • 내보내기 전에 모든 태그를 Enter로 재생합니다. 프레임마다 자기 밀리초만큼 보이고, 한 번 재생 태그는 마지막 프레임에서 멈춰야 합니다.
  • Pack & Export에서 대상 아래 줄을 읽습니다. "Loaded in Godot 4.7.2"(GameMaker는 주황색 UNVERIFIED)와, 내보내기 전에 대상이 바꾸는 설정이 표시됩니다.
  • 내보낸 뒤 안내를 읽습니다. 한 Godot 애니메이션 안의 서로 다른 피벗, Unity가 받지 않는 박스처럼 대상이 담지 못한 것이 나옵니다.
  • 엔진에서 결과를 열고 같은 배율로 Nerulio 미리보기와 나란히 태그 하나를 재생해 봅니다.

문제 해결

증상유력한 원인확인 방법해결
제안된 격자가 틀림간격이 고르지 않거나, 격자처럼 보이는 시트에 크기가 제각각인 스프라이트결정의 신뢰도가 중간·낮음이고 근거에 칸 분할·경계 침범이 나옴대안이나 아일랜드를 선택. 자르기가 어긋날 때 참고
.aseprite 파일이 합쳐진 채 들어옴레이어가 Studio에서 정확히 합성되지 않거나(테스트 231개 중 5개), 셀이 z-index를 씀(231개 중 4개)가져오기 패널에 이유가 나옴프레임과 타이밍은 그대로 맞음. 레이어 편집은 Aseprite에서 하고 다시 가져오기
엔진에서 박스나 피벗이 없음대상에 들어갈 자리가 없음: Unity는 피벗만 받고 박스는 없음, Defold와 CSS는 둘 다 없음내보내기 버튼 아래 안내박스가 필요하면 Godot 번들이나 일반 JSON으로 내보내거나 엔진에서 추가
애니메이션이 바뀔 때 캐릭터가 튐프레임마다 피벗이 다른데 Godot 씬 노드의 오프셋은 하나Godot 내보내기 안내에 피벗 불일치 경고태그 전체에 피벗 하나를 쓰기. 프레임별 피벗 참고

다른 방법

방법이럴 때 더 낫습니다
Aseprite에서 File › Export Sprite Sheet 후 엔진 플러그인어차피 Aseprite에서 그리고 움직이며, 엔진에 관리되는 가져오기 도구가 있을 때. Aseprite를 호출하는 플러그인은 가져오는 모든 컴퓨터에 Aseprite가 있어야 합니다.
TexturePacker주로 낱장 이미지를 여러 프레임워크용 아틀라스로 패킹하고 명령줄 자동화가 필요할 때. 태그, 프레임별 피벗, 박스를 스프라이트 편집기처럼 다루지는 않습니다.
엔진 자체 편집기(Unity Sprite Editor, Godot SpriteFrames 패널)타이밍이 일정한 애니메이션 한두 개를 프로젝트 안에서 설정하는 편이 좋을 때.

이 방법의 한계

  • 가져온 아틀라스의 회전된 프레임은 회전된 채 남고, 내보내기는 UNVERIFIED입니다. 회전 없이 다시 패킹하세요.
  • GameMaker 스트립은 GameMaker 자체에서 검증하지 않았습니다.
  • 그리기 도구는 픽셀 작업 공간에 있고, Aseprite 도구 일부(레이어 그룹, 타일맵 레이어, RotSprite, 텍스트)는 없습니다.

버전과 출처

가져오기: 기본 선택으로 실제 에셋 16개 모두 프레임이 맞았고, .aseprite 231개는 Nerulio의 쓰기를 거쳐 Aseprite 1.3.18에서 같은 태그·길이·픽셀로 다시 열렸습니다. 내보내기: 엔진 실행 49건 중 47건 통과(Godot 4.7.2, Unity 6000.5.3f1, Phaser 3.90·4.2, PixiJS 8.21, LÖVE 11.5, Spine 런타임 4.2, Defold bob.jar 1.13.1). 실패 2건은 트림된 Sparrow XML에 대한 Phaser 3.90의 버그이며, Sparrow XML (Phaser 3) 프리셋으로 피할 수 있습니다.

참고한 공식 문서

스프라이트 랩

시트 한 장으로 자르기·정렬·애니메이션·기준점·히트박스·아틀라스까지 한 화면에서.

사용 방법

  1. 이미지 넣기
  2. 필요한 설정을 조정하고 결과 확인
  3. 다운로드로 새 파일 저장

지원 형식

PNG / JPG / WebP / AVIF / HEIC → PNG + JSON (ZIP) — 입력 디코딩은 브라우저 지원과 추가 엔진 사용 여부에 따라 다릅니다.

이 도구로 할 수 있는 일

시트 한 장으로 자르기·정렬·애니메이션·기준점·히트박스·아틀라스까지 한 화면에서.

처리 방식과 검증 수준

advanced · Studio Sprite workspace: measured grid (margin, spacing) or alpha islands, colour key, previewed import decisions; GIF/APNG/.aseprite decoders; timeline, pivots, boxes, alpha contour collision. 품질 검증을 진행 중입니다. Pro·Flagship 수준은 아직 입증되지 않았습니다.

저장 전에 확인하세요

떨어진 조각은 거리 기준으로 합칩니다. 겹친 캐릭터를 의미적으로 구분하지 않고, 회전 패킹은 지원하지 않습니다. Unity 가져오기는 검증되지 않았습니다.

자주 묻는 질문

이 도구의 한계는 무엇인가요?

떨어진 조각은 거리 기준으로 합칩니다. 겹친 캐릭터를 의미적으로 구분하지 않고, 회전 패킹은 지원하지 않습니다. Unity 가져오기는 검증되지 않았습니다.

파일이 서버에 업로드되나요?

이 도구에서 연 파일은 서버에 업로드하지 않고 사용자 기기에서 처리합니다. 커뮤니티 글에 직접 첨부하는 이미지는 별도로 업로드됩니다. 일부 엔진과 모델은 외부에서 내려받으므로 IP 주소 등 연결 정보가 해당 서비스에 전달됩니다.

작업이 자동 저장되나요?

아니요. 이미지와 편집 상태는 이 탭에 있고 미디어 결과는 기기 내 임시 저장소를 사용할 수 있습니다. 언어를 바꿔도 작업은 유지되지만 새로고침, 탭 닫기, 다른 페이지로 이동하면 사라질 수 있습니다.