홈 › 이미지 도구

스프라이트 시트 만들기·자르기

게임·웹 애니메이션용 스프라이트를 만들거나, 받은 스프라이트 시트를 장면별로 나눌 때 쓰세요.

파일은 서버로 전송되지 않고 내 기기에서만 처리돼요

처음 쓸 때 이미지 엔진(ImageMagick, 약 15MB)을 한 번 내려받아요. 그다음부터는 브라우저에 저장된 것을 써요.

움짤 1개 또는 그림 여러 장을 놓으세요.gif · .webp · APNG · .png · .jpg (여러 장은 넣은 순서대로)

스프라이트 시트란?

스프라이트 시트는 캐릭터 동작이나 아이콘 애니메이션의 장면들을 한 장의 큰 그림에 격자로 붙여 놓은 거예요. 게임 엔진과 웹 페이지는 그림 한 장만 불러온 뒤 보여 줄 칸만 바꿔 가며 애니메이션을 만들어서, 장면마다 파일을 따로 불러오는 것보다 빠르고 가벼워요. 이 도구는 움짤을 시트로 바꾸거나, 받은 시트를 다시 장면별 그림으로 잘라 줘요.

시트 만들기

시트 자르기

가로·세로 칸 수와 칸 사이 간격을 넣으면 자를 선을 파란 격자로 미리 보여 줘요. 가로가 세로의 정수배인 한 줄 시트는 칸 수를 자동으로 맞춰요. 빈 칸(완전히 투명한 칸)은 빼고, 장면별 PNG를 ZIP으로 받거나 지정한 장면 시간으로 움직이는 GIF를 만들어요.

어떻게 동작하나요와 한계

움짤 해독과 GIF 저장은 ImageMagick 7(magick-wasm)이 브라우저 작업자에서, 배치와 자르기는 캔버스가 처리해요. 파일은 서버로 보내지 않아요. 빈 공간을 줄이는 자동 배치(빈틈 채우기, 회전 배치)와 장면 테두리 자르기(트림)는 하지 않아요. 칸 크기가 다른 불규칙한 시트는 JSON 없이 자르기 어려워요.

참고한 자료

자주 묻는 질문

Phaser에서 어떻게 불러오나요?

받은 PNG와 JSON을 함께 올리고 this.load.atlas('이름', '시트.png', '시트.json')으로 불러오면 돼요. 칸이 모두 같으므로 load.spritesheet에 칸 크기(frameWidth·frameHeight)를 넣어도 돼요.

장면 시간이 다른 움짤도 되나요?

네. JSON에는 장면별 시간(duration, 밀리초)이 들어가고, CSS 애니메이션도 장면별 시간 비율대로 넘어가요.

파일이 서버로 올라가나요?

아니요. 이 기기 브라우저 안에서만 처리해요.

함께 쓰면 좋은 도구