캐릭터 스프라이트 메이커 · 프롬프트 하나로 완성되는 시트

캐릭터 스프라이트 메이커: 프롬프트 하나로 완성하는 스프라이트 시트

나만의 캐릭터 스프라이트 메이커 만들기

설명 하나로 캐릭터 스프라이트를 만드세요 — 대기, 걷기, 공격, 8방향까지. 투명 프레임, 정돈된 그리드, 엔진에 바로 쓸 수 있는 형태로. 그다음 그 캐릭터를 직접 걸어 다닐 수 있는 3D 월드에 넣으세요.

✦스프라이트
캐릭터 스프라이트 만들기: 창을 든 기사 소녀

캐릭터 스프라이트 메이커는 글로 된 설명을 입력받아 완성된 스프라이트 시트를 돌려줍니다. 대기, 걷기, 달리기, 공격, 시전을 8방향으로, 투명 프레임 위에, 고정 그리드에 맞춰, 원점은 발밑에 두고 만듭니다. 캐릭터의 체형, 실루엣, 팔레트, 든 무기, 의상 레이어를 입력하면, 일일이 손으로 다시 그려야 하는 영웅 프레임 하나가 아니라 그 설명에 담긴 모든 포즈를 렌더링합니다.

스프라이트와 스프라이트 시트의 차이는 이미지와 애니메이션 시스템의 차이입니다. 잘 만든 대기 프레임 하나는 그림입니다. 시트는 상태 머신입니다. 엔진이 반복 재생할 프레임 수, 인덱싱할 방향, 그리고 걷기 사이클이 도중에 형태가 바뀌지 않도록 모든 셀에서 일관된 캐릭터를 갖춥니다. Neta Studio는 프롬프트로 시트 전체를 만들고, 그 캐릭터를 직접 걸어 다닐 수 있는 3D 월드에 넣을 수 있게 합니다.

프롬프트 하나로 완성되는 캐릭터 시트

캐릭터를 일상적인 언어로 설명합니다. 종족이나 체형 구조, 그리드 대비 키, 체격, 머리카락이나 투구, 의상 레이어, 들고 있는 것, 팔레트 범위, 그리고 아트 방향(픽셀, 페인팅, 플랫 벡터)까지. 메이커는 이를 캐릭터 명세로 해석하고 동일한 명세에서 전체 행렬, 즉 모든 애니메이션과 모든 방향을 렌더링합니다. 결과물은 포즈 선택기가 아니라 시트입니다.

프레임 하나만으로는 그 캐릭터가 게임에서 작동하는지 거의 알 수 없습니다. 움직이는 순간 세 가지가 유지되어야 합니다. 실제로 그리는 크기에서 실루엣이 읽혀야 하고, 프레임 사이에 팔레트가 흔들리지 않아야 하며, 피벗이 떠돌지 않아야 합니다. 시트는 이런 제약을 즉시 눈에 보이게 합니다. 걷기를 대기 옆에 두고 보고, 3번 프레임을 1번 프레임과 비교하며, 엔진에 도달하기 전에 어긋남을 잡아냅니다.

설명 하나로 작업하면 캐릭터의 재현성도 유지됩니다. 프롬프트를 바꿔 망토를 판금으로 교체하거나 팔레트를 두 단계 차갑게 옮기면, 그 변경이 전체에 적용된 상태로 시트 전체가 다시 생성됩니다. 새로운 색 결정에 맞추려고 마흔 개의 프레임을 손으로 고칠 필요가 없습니다.

1

01

캐릭터 설명을 작성합니다. 체형, 그리드 단위 기준 키, 체격, 의상과 소지품, 팔레트, 아트 방향.

2

02

프레임 그리드를 설정합니다. 정사각형 셀, 2의 거듭제곱에 맞춘 크기, 문서에 정의된 애니메이션 행 순서.

3

03

시트를 생성하고 각 애니메이션의 첫 프레임과 마지막 프레임을 확인합니다. 두 프레임은 인접해야 하며 동일해서는 안 됩니다.

4

04

확대해서가 아니라 최종 표시 크기에서 실루엣을 점검합니다.

5

05

문서화된 그리드와 발밑 원점을 적용해 투명 PNG 프레임으로 내보냅니다.

대기, 걷기, 달리기, 공격, 시전

다섯 가지 애니메이션이면 대부분의 2D 캐릭터를 커버합니다. 대기, 걷기, 달리기, 공격, 시전입니다. 대기는 캐릭터가 생애 대부분을 보내는 호흡 루프입니다. 걷기는 이동 루프이며, 보통 발이 땅에 닿는 접지가 가장 잘 드러나는 동작입니다. 달리기는 같은 동작을 더 빠르고 상체를 더 기울여 표현합니다. 공격은 준비 동작, 타격 프레임, 후속 동작으로 이어지는 단발 동작입니다. 시전은 유지 프레임이 있는 단발 동작, 즉 발사체나 광역 효과가 처리되는 동안 캐릭터가 취하고 있는 자세입니다.

프레임 수는 생각보다 중요합니다. 게임 플레이 크기, 즉 320×180이나 640×360 화면에서 캐릭터 키가 대략 32~64픽셀일 때, 걷기 4프레임은 걷기로 읽히고 6프레임은 더 부드럽게 읽히며 8프레임부터는 얻는 것보다 드는 비용이 커집니다. 달리기 사이클은 4프레임이면 충분한 경우가 많습니다. 대기는 2~4프레임이며, 2프레임은 고전적인 호흡이고 4프레임이면 흔들림이나 무기 흔들림 같은 2차 동작을 넣을 수 있습니다. 공격은 보통 3~5프레임으로 준비, 타격, 후속, 복귀 순입니다. 시전은 유지 프레임을 포함해 4~6프레임입니다.

여기서 실패하는 지점은 프레임 수가 아니라 타이밍입니다. 프레임 간 지연 없이 내보낸 4프레임 걷기는 엔진 프레임레이트로 재생되어 걸음이 아니라 떨림처럼 보입니다. 시트에는 애니메이션별 권장 fps가 함께 제공되므로 엔진 임포터가 이를 기본값으로 두고 필요에 따라 덮어쓸 수 있습니다.

애니메이션프레임루프비고
대기2–4예호흡 또는 흔들림, 첫 프레임과 마지막 프레임이 인접
걷기4–8예짝수 프레임에 접지를 두면 가장 깔끔하게 읽힘
달리기4예걷기보다 기울기가 크고 보폭이 김
공격3–5아니오준비, 타격, 후속 동작
시전4–6아니오효과 처리용 유지 프레임 포함

스트립 하나, 설명 하나

8방향이란 시트가 N, NE, E, SE, S, SW, W, NW를 커버한다는 뜻입니다. 45도 간격으로 한 바퀴 전체입니다. 탑다운과 아이소메트릭 게임에서 이게 필요한 이유는 플레이어가 고정 카메라로 캐릭터를 보면서 어느 방향으로든 움직일 수 있기 때문입니다. 4방향(N, E, S, W)은 대각선을 시각적 거짓으로 남깁니다. 캐릭터가 북동쪽으로 걷는데 스프라이트는 동쪽을 향하게 됩니다. 8방향이면 바라보는 방향이 이동 벡터와 일치합니다.

시트는 행렬로 배치됩니다. 방향마다 한 행, 애니메이션 내 프레임마다 한 열이거나, 방향마다 한 블록 안에 모든 애니메이션을 같은 순서로 담는 방식입니다. 순서만 문서화되어 있으면 어느 쪽이든 됩니다. Unity의 Sprite Editor는 그리드 단위로 잘라내고, Godot의 AnimatedSprite2D는 개별 영역 사각형이나 잘라낸 텍스처를 요구하며, GameMaker의 스프라이트 에디터는 그리드와 프레임별 원점을 받습니다. 엔진에서 인덱싱하는 순서가 시트를 렌더링한 순서와 일치해야 하며, 그렇지 않으면 캐릭터가 뒷걸음질하게 됩니다.

미묘한 부분은 전환 프레임입니다. 8개의 기준 방향만 렌더링하면 이동 벡터가 22.5도 경계를 넘을 때 스프라이트가 뚝 끊겨 보입니다. 두 가지 완화책이 있습니다. 8개 방향을 렌더링하고 짧은 회전 애니메이션으로 경계를 덮거나, 끊김을 감수하고 캐릭터 회전을 8방향 중 가장 가까운 쪽으로 스냅시키는 것입니다. 둘 다 유효하며, 시트는 회전 프레임의 존재를 전제하지 않으므로 어느 쪽이든 지원합니다.

세트 전체에서 일관된 캐릭터

스프라이트 작업의 진짜 실패는 어긋남입니다. 첫 번째 캐릭터는 특정 머리 대 몸 비율, 특정 팔레트, 특정 선 굵기로 생성됩니다. 두 번째 캐릭터는 나중에 다른 표현의 프롬프트로 생성되어 머리 하나만큼 크고 피부톤은 더 차갑고 외곽선은 더 두껍게 나옵니다. 파티 화면에서 나란히 놓으면 같은 게임에 속한다고 보이지 않습니다.

어긋남은 불충분하게 명시된 프롬프트에서 비롯됩니다. 첫 프롬프트가 '키가 작고 다부진 체형, 차분한 흙색 팔레트, 32픽셀 셀, 1픽셀 외곽선'이었고 두 번째가 '갑옷을 입은 기사'였다면, 세트를 설명한 것이 아니라 서로 무관한 두 가지를 설명한 것입니다. 스타일 구절은 캐스트 전체에서 동일하게 유지하고, 정체성 구절만 바꾸세요. 종족, 체격, 장비, 명시된 팔레트 안에서의 색상 같은 것들입니다.

Agent Sprite Forge는 이 스타일 구절을 일정하게 유지하도록 만들어졌습니다. 공유 스타일 명세로 캐스트를 생성하므로 머리 비율, 외곽선 굵기, 팔레트 범위는 일정하게 유지되고 개별 캐릭터만 달라집니다. 확인 방법은 간단합니다. 캐스트 전체의 대기 프레임을 최종 표시 크기로 나란히 놓아 보세요. 하나라도 다른 게임처럼 읽히면 스타일 명세가 어긋난 것입니다.

캐스트 전체에서 하나의 스타일 유지하기

정체성 프롬프트를 쓰기 전에 스타일 축을 고정하세요. 셀 크기, 머리 대 몸 비율, 픽셀 단위 외곽선 굵기, 팔레트 범위와 음영 방향, 아트 방향입니다. 이것들을 상수로 취급하세요. 모든 캐릭터 프롬프트는 이를 상속하고 정체성만 추가합니다. 캐릭터가 스타일에서 벗어나 돌아올 때, 원인은 거의 항상 정체성 구절이 아니라 스타일 구절에 있습니다.

엔진에 바로 쓰는 내보내기

모든 프레임은 투명 PNG로 내보내집니다. 시트에는 문서화된 그리드, 즉 셀 너비와 높이, 방향당 행 수, 프레임당 열 수, 애니메이션 순서가 함께 제공되므로 임포터가 각 셀의 위치를 알 수 있습니다. 원점은 발밑, 가로로는 캐릭터의 무게 중심에 맞춰져 있어, 스프라이트를 지면 위치에 놓으면 이미지 중앙이 아니라 발이 땅에 닿습니다.

이 원점 선택은 모든 엔진에서 중요합니다. Unity의 Sprite Editor에서는 사용자 피벗을 설정할 수 있으니 문서화된 원점에 맞춰 하단 중앙으로 지정하세요. Godot의 AnimatedSprite2D는 잘라낸 텍스처의 프레임별 영역 사각형을 사용하므로, 슬라이스를 문서화된 그리드에 맞춰 유지하지 않으면 루프가 한 프레임씩 어긋납니다. GameMaker의 스프라이트 속성은 그리드와 스프라이트별 원점을 받으며, 여기에도 동일한 하단 중앙 값을 적용합니다.

내보내기 프리셋은 덮어쓸 수 있습니다. 게임이 다른 셀 크기로 돌아간다면 시트는 정수 배수로 깔끔하게 확대됩니다. 흐림을 만드는 것은 비정수 배율입니다. 픽셀 아트에는 포인트 필터링, 페인팅에는 바이리니어를 사용하세요. 투명 알파가 보존되므로 임포트 전에 매트 정리가 필요 없습니다.

엔진임포트 경로설정할 항목
UnitySprite Editor사용자 피벗을 하단 중앙으로, 그리드 단위로 자르기
GodotAnimatedSprite2D + SpriteFrames텍스처를 문서화된 그리드로 자르기, 프레임별 영역 사각형
GameMaker스프라이트 속성문서의 그리드 크기, 원점은 하단 중앙

캐릭터의 다음 생: 3D 월드

스프라이트 시트는 캐릭터입니다. 월드는 그 캐릭터가 사는 곳입니다. 시트를 만든 것과 같은 설명이 3D 게임 빌더로 들어가, 걸어 다닐 수 있는 Three.js 월드로 바뀝니다. 지면, 충돌, 카메라, 그리고 캐릭터가 설 자리까지. 도구 사이로 파일을 옮기는 것이 아니라, 설명 자체가 에셋입니다.

그 월드는 브라우저에서 걸어 다닐 수 있습니다. 캐릭터를 넣고 카메라를 조작하며, 월드가 실제로 보여주는 크기에서 스프라이트가 읽히는지 확인하세요. 평면 스프라이트 뷰어에서 맞아 보이던 캐릭터도 원근과 그림자가 더해진 조명 있는 3D 바닥 위에서는 틀려 보일 수 있습니다. 둘을 동시에 보면 어긋남을 일찍 잡을 수 있습니다.

이것은 The Cyclops' Island가 취하는 것과 같은 경로입니다. 설명 하나, 플레이 가능한 월드 하나. Mini World는 그것의 소규모 버전입니다. 스프라이트 메이커는 같은 파이프라인의 2D 쪽 끝입니다. 무언가를 설명하고, 쓸 수 있는 에셋을 얻고, 그다음 돌아다닐 수 있는 어딘가에 놓습니다.

  • Agent Sprite Forge캐릭터 설명 하나로 완전한 스프라이트 시트를 생성합니다. 8방향에 걸친 대기, 걷기, 달리기, 공격, 시전을 투명 PNG 프레임과 문서화된 그리드로 제공합니다.
  • The Cyclops' Island손으로 배치하는 대신 설명으로부터 만들어진, 걸어 다닐 수 있는 생성형 3D 월드로, 스프라이트 메이커에서 만든 캐릭터의 목적지로 쓰입니다.
  • Mini World전체 장면을 제작하지 않고도 걸어 다닐 수 있는 공간에서 캐릭터를 빠르게 확인하기 위한 소규모 3D 월드 프리셋입니다.
  • 3D 게임 빌더글로 된 설명을 실제 플레이 가능한 Three.js 월드로 바꾸고, 캐릭터를 조작 가능한 액터로 넣어 주는 브라우저 기반 빌더입니다.
기사 — 설명 하나로 만든 6프레임, 한 행.
The Cyclops' Island — 같은 캐릭터 파이프라인을 3D로 한 단계 더 밀어붙인 결과.

캐릭터가 속한 월드로 걸어 들어가기

스프라이트는 설 곳이 없는 캐릭터입니다. 마지막 단계는 다른 곳에서는 제공하지 않는 것입니다. 방금 만든 시트를 누군가 걸어 다닐 수 있는 월드, 작은 섬, 행성, 비 내리는 거리 모퉁이에 넣는 것입니다. 이 사이트의 모든 월드는 글 설명 하나로 만들어져 플레이 가능한 페이지로 게시되었습니다.

FAQ

캐릭터 스프라이트 메이커란 무엇인가요? +

캐릭터 스프라이트 메이커는 글 설명을 완전한 스프라이트 시트로 바꿉니다. 8방향에 걸친 대기, 걷기, 달리기, 공격, 시전을 투명 프레임, 문서화된 그리드, 발밑 원점으로 제공합니다. 모든 포즈를 손으로 그리는 작업을 설명 하나로부터의 생성 단계로 대체합니다.

걷기 사이클에는 프레임이 몇 개 필요한가요? +

4~8개입니다. 게임 플레이 크기, 대략 32~64픽셀 키에서 4프레임은 걷기로 읽히고 8프레임은 더 부드럽게 읽힙니다. 8개를 넘으면 추가 프레임은 가독성으로 돌아오는 것보다 시트 크기와 임포트 시간에서 더 많은 비용을 발생시킵니다.

4방향이 아니라 8방향을 쓰는 이유는 무엇인가요? +

탑다운과 아이소메트릭 게임은 고정 카메라를 쓰고 어느 방향으로든 이동을 허용하므로, 4방향은 대각선을 시각적 거짓으로 남깁니다. 45도 간격의 8방향은 스프라이트가 바라보는 방향을 이동 벡터와 일치시킵니다.

스프라이트는 어떤 형식으로 내보내지나요? +

투명 PNG 프레임으로, 문서화된 그리드 위에 발밑 원점을 두고 가로로는 캐릭터 중앙에 맞춰 배치됩니다. 같은 시트를 Unity, Godot, GameMaker에서 피벗이나 원점을 하단 중앙으로 설정한 뒤 임포트할 수 있습니다.

세트 안의 캐릭터들이 서로 달라 보이지 않게 하려면 어떻게 하나요? +

스타일 축을 고정하세요. 셀 크기, 머리 대 몸 비율, 외곽선 굵기, 팔레트 범위, 음영 방향을 고정하고 캐릭터별로 정체성만 바꾸세요. 어긋남은 거의 항상 정체성 설명이 아니라 불충분하게 명시된 스타일 구절에서 비롯됩니다.

같은 캐릭터를 3D 월드에서도 쓸 수 있나요? +

네. 스프라이트 시트를 생성한 것과 같은 설명이 3D 게임 빌더로 들어가 걸어 다닐 수 있는 Three.js 월드로 바뀝니다. 브라우저에서 그 안을 움직이며 월드가 보여주는 크기에서 캐릭터가 어떻게 읽히는지 확인할 수 있습니다.

3D 게임 빌더로 돌아가기

완성된 31개의 3D 월드, 게임, 장면이 한 페이지에 모여 있으며 모두 플레이할 수 있습니다.

플랫폼: Neta Studio페이지: 캐릭터 스프라이트 메이커: 프롬프트 하나로 완성하는 스프라이트 시트다음으로 읽기: /explore/tool/sprite-sheet-maker · /explore/tool/sprite-animator · /explore/tool/sprite-resource-library

실제 캐릭터 시트 보기

이 라이브러리의 모든 에셋은 프롬프트가 기록된 투명한 게임용 PNG입니다. 캐릭터 스프라이트 시트와 스프라이트 리소스 라이브러리는 동작, 스타일, 주제로 태그가 붙어 있습니다. 무료로 둘러보고 내려받을 수 있습니다.

×