목록으로

2026-07-26

Godot에서 스프라이트 시트로 2D 캐릭터 애니메이션 만들기 — 임포트부터 재생까지

Godot은 2D 게임에 강한 엔진이지만, 정작 움직일 캐릭터가 없으면 시작을 못 합니다. 이 글은 캐릭터 이미지 한 장에서 뽑은 스프라이트 시트를 Godot 4 프로젝트에 넣고, 프레임을 잘라 애니메이션으로 등록하고, 코드로 재생하기까지의 전 과정을 다룹니다.

시트와 메타데이터 준비하기

GenioPlus 애니메이션 도구에서 캐릭터 이미지를 올리고 동작 프리셋(대기·걷기·베기·점프·시전·피격) 중 하나를 고르면, 짧은 영상이 생성되고 거기서 프레임을 뽑아 스프라이트 시트를 만들 수 있습니다. 내려받을 때 PNG 시트와 함께 메타데이터 JSON이 같이 나오는데, 여기에 적힌 프레임 크기·열×행·간격(padding)이 다음 단계에서 그대로 필요합니다. 시트 PNG는 res:// 아래 아무 폴더에나 넣으면 Godot이 자동으로 임포트합니다.

AnimatedSprite2D로 프레임 자르기

씬에 AnimatedSprite2D 노드를 추가하고, 인스펙터의 Sprite Frames 속성에서 "New SpriteFrames"를 만들면 에디터 하단에 SpriteFrames 패널이 열립니다. 패널의 "Add frames from a Sprite Sheet" 버튼으로 시트 PNG를 고르면 설정 창이 뜨는데, 여기서 가로·세로 칸 수(Horizontal / Vertical)를 메타데이터 JSON의 열×행 값과 똑같이 넣습니다. 시트에 여백이 있다면 Separation과 Offset까지 맞춰주면 프레임 경계가 정확히 떨어집니다. 미리보기에서 쓸 프레임을 선택하고 "Add N Frames"를 누르면 등록이 끝납니다.

애니메이션 이름과 재생 속도

새로 만든 애니메이션의 기본 이름은 "default"입니다. 더블클릭해서 walk, idle, attack처럼 바꾸고, 패널 왼쪽 목록의 "+"로 애니메이션을 여러 개 만들어 하나의 SpriteFrames 리소스에 담을 수 있습니다. 재생 속도는 Speed (FPS) 값으로 조절하는데, 걷기 루프는 8~12 FPS 정도면 대체로 자연스럽습니다. 반복 재생은 Loop 스위치로 켜고, 공격처럼 한 번만 나와야 하는 동작은 꺼두세요.

코드로 재생하기

재생은 노드에 대고 play()를 호출하면 됩니다 — 예를 들어 $AnimatedSprite2D.play("walk") 처럼요. 좌우 이동은 시트를 하나 더 만들 필요 없이 flip_h 속성으로 뒤집습니다(velocity.x 부호에 따라 sprite.flip_h 값을 바꾸는 식). 이동 입력이 없을 때 play("idle")로 되돌리고, 공격처럼 한 번만 재생하는 동작은 animation_finished 시그널을 받아 대기 상태로 복귀시키면 상태 전환이 깔끔해집니다.

Sprite2D + AnimationPlayer를 쓰는 경우

프레임 전환을 위치·회전·콜리전 on/off·효과음 같은 다른 요소와 한 타임라인에서 묶고 싶다면 Sprite2D와 AnimationPlayer 조합이 낫습니다. Sprite2D의 Texture에 시트를 넣고 Animation 섹션의 Hframes/Vframes를 열·행 수로 지정하면 Frame 값으로 프레임을 고를 수 있게 됩니다. AnimationPlayer에서 새 애니메이션을 만들어 길이(예: 0.6초)와 Loop를 정하고, Frame 속성에 일정 간격으로 키를 찍으면 완성입니다. 프레임이 중간값으로 뭉개져 보이면 해당 트랙의 업데이트 모드를 Discrete로 바꾸면 딱딱 끊어서 바뀝니다.

픽셀아트라면 필터를 Nearest로

Godot 4부터 2D 텍스처 필터는 노드 쪽 CanvasItem 속성에서 정합니다(프로젝트 설정 값이 기본값 역할을 합니다). 도트 시트가 흐릿하게 보인다면 AnimatedSprite2D나 Sprite2D 인스펙터에서 CanvasItem > Texture > Filter를 Nearest로 바꾸세요. 프로젝트 전체에 적용하려면 프로젝트 설정의 렌더링 > 텍스처 쪽 기본 텍스처 필터를 Nearest로 두면 됩니다. 또 픽셀아트 텍스처는 압축을 Lossless로 두고, 밉맵은 카메라를 크게 줌아웃하지 않는 한 켜지 않는 편이 좋습니다.

시작하기

캐릭터 이미지 한 장만 있으면 걷기 프리셋으로 시트를 한 장 뽑아 위 순서대로 Godot에 넣어볼 수 있습니다. 배경 제거와 컷아웃 편집은 크레딧이 들지 않으니, 내 캐릭터가 얼마나 깔끔하게 따지는지부터 확인해 봐도 좋습니다.

캐릭터 이미지 한 장으로 직접 만들어 보세요

도구 사용해 보기
Godot에서 스프라이트 시트로 2D 캐릭터 애니메이션 만들기 — 임포트부터 재생까지