6주차 1교시 / 교수자 설명

한 장의 그림이
움직임이 되는 법

Sprite Sheet를 정확한 프레임으로 나누고, 같은 Pivot에 정렬한 그림을 일정한 속도로 바꾸면 움직임이 됩니다.

주황색 캐릭터의 여섯 걷기 프레임이 같은 발 위치의 Pivot과 타임라인을 따라 하나의 움직임으로 이어지는 모습
SPRITE SHEET를 프레임으로 나누고 같은 PIVOT에 정렬한 뒤 순서대로 재생하면 움직임이 됩니다.

1교시의 도착점

지금은 제작보다 구조를 정확히 보는 시간입니다. 3교시 실습에서 어떤 설정을 왜 확인해야 하는지 말로 설명할 수 있게 합니다.

  • 01

    Texture, Sprite Sheet, Sprite, Animation Clip을 서로 다른 말로 설명합니다.

  • 02

    Sprite Mode, Pixels Per Unit, Filter Mode가 화면에 미치는 영향을 예측합니다.

  • 03

    규칙적인 시트는 Grid로 Slicing하고 모든 프레임의 Pivot을 맞추는 이유를 설명합니다.

  • 04

    프레임 수, Samples, Loop Time으로 한 바퀴의 재생 시간을 계산합니다.

60분의 설명 흐름

완성된 걷기 장면을 먼저 본 뒤, 결과를 만든 에셋과 설정을 역순으로 분해합니다.

00-60분

그림을 재생 가능한 데이터로 바꾸기

교수자 설명 중심

  1. 5주차 결과와 연결

    움직이는 Player가 멈춰 보이는 이유와, 물리 이동과 시각적 움직임의 차이를 묻습니다.

  2. 네 가지 에셋 구분

    Texture → Sprite Sheet → 개별 Sprite → Animation Clip의 변환 관계를 설명합니다.

  3. Import Settings

    Sprite Mode, Pixels Per Unit, Filter Mode와 Compression을 비교합니다.

  4. Slicing과 Pivot

    Grid와 Automatic의 차이, 일정한 Cell Size와 발 중심 Pivot의 역할을 시연합니다.

  5. Animation Clip

    프레임 순서, Samples와 Loop Time을 바꾸며 속도와 반복을 관찰합니다.

  6. 오류 진단과 회수

    흐림, 크기 차이, 떨림과 멈춤의 원인을 한 단계씩 말로 찾습니다.

이동과 애니메이션은 서로 다른 변화입니다

Rigidbody2D는 Player의 세계 위치를 바꾸고, Sprite Animation은 같은 위치에서 보이는 그림을 바꿉니다. 둘을 분리해야 충돌과 표현을 각각 안전하게 조절할 수 있습니다.

게임 동작

세계에서 어디에 있는가

Rigidbody2D.linearVelocity와 Collider2D가 위치 변화와 충돌을 담당합니다.

화면 표현

그 위치에서 어떻게 보이는가

SpriteRenderer와 Animator가 현재 상태에 맞는 그림을 선택해 보여 줍니다.

핵심 구분 캐릭터가 이동하지 않아도 Idle 그림은 바뀔 수 있고, 이동해도 Animation Clip이 없으면 한 장의 그림으로 보입니다.

한 파일이 네 단계의 역할로 나뉩니다

이름이 비슷하지만 서로 대신할 수 없습니다. “원본 그림 → 나눌 규칙 → 한 장면 → 시간 순서”로 읽습니다.

  1. 01
    Texture

    프로젝트로 가져온 PNG 같은 원본 이미지 데이터입니다.

  2. 02
    Sprite Sheet

    여러 자세나 타일을 일정한 칸에 모아 둔 한 장의 Texture입니다.

  3. 03
    Sprite

    Sprite Editor가 시트에서 잘라 낸 하나의 표시 가능한 그림입니다.

  4. 04
    Animation Clip

    여러 Sprite를 시간 순서대로 배치한 재생 규칙입니다.

여러 Sprite재생 순서재생 속도Animation Clip

가져오는 순간에 크기와 선명도가 결정됩니다

먼저 전체 프로젝트의 기준을 정하고, 같은 종류의 캐릭터 시트에는 같은 기준을 적용합니다.

설정권장 시작값어긋나면 보이는 현상
Texture TypeSprite (2D and UI)Texture를 2D Sprite로 사용합니다.Sprite Editor와 SpriteRenderer 흐름을 사용할 수 없음
Sprite ModeMultiple한 이미지 안의 여러 프레임을 개별 Sprite로 나눕니다.시트 전체가 한 장으로 선택됨
Pixels Per Unit시트 전체에 같은 값몇 픽셀이 월드 1 Unit인지 정합니다.같은 캐릭터 프레임의 크기가 달라짐
Filter Mode픽셀 아트는 Point확대·축소 때 픽셀 사이를 보간할지 정합니다.Bilinear에서는 가까이 볼 때 부드럽거나 흐려짐
Compression선명도 우선이면 None플랫폼용 Texture 압축 정도를 정합니다.작은 픽셀 가장자리에 색 번짐이 생길 수 있음
PPU = 16

16픽셀 높이가 월드 1 Unit입니다. 32픽셀 높이 Sprite는 2 Unit로 보입니다.

PPU = 32

32픽셀 높이가 월드 1 Unit입니다. 숫자가 커지면 같은 이미지가 월드에서는 더 작게 보입니다.

프레임의 사각형과 기준점을 함께 맞춥니다

Slicing은 그림을 잘라 내는 일만이 아닙니다. 각 프레임이 차지하는 영역과 물체의 원점을 정의합니다.

REGULAR SHEET

Grid by Cell Size

모든 칸이 32×32처럼 일정할 때 사용합니다. 시트 제작자가 정한 칸 크기를 그대로 입력하므로 프레임 폭과 높이가 일정합니다.

Cell Size = 32 × 32
SEPARATED ART

Automatic

투명 영역을 기준으로 보이는 그림의 경계를 찾습니다. 자세마다 경계가 달라질 수 있어 Pivot과 프레임 크기를 다시 확인합니다.

alpha boundary
  1. 01

    Open
    Sprite Editor

  2. 02

    Slice
    Grid by Cell Size

  3. 03

    Pivot
    Bottom Center

  4. 04

    Apply
    결과 저장

떨림을 막는 기준 걷기 프레임마다 Pivot이 다른 곳에 있으면 Sprite가 바뀔 때 기준점도 이동해, Rigidbody2D가 멈춰 있어도 캐릭터가 흔들려 보입니다.

프레임을 시간 위에 놓습니다

Animation Clip은 “어떤 Sprite를 어느 시점에 보여 줄지” 저장합니다. 처음에는 SpriteRenderer의 Sprite 속성 하나만 바꾸는 단순한 Clip으로 시작합니다.

Target propertySpriteRenderer / Sprite시간에 따라 바뀔 표시 속성
KeyframesIdle_0, Idle_1, Idle_2, Idle_3시간 순서로 놓인 개별 Sprite
Samples초당 재생할 프레임 수값이 크면 같은 프레임 수를 더 빨리 재생
Loop Time마지막 뒤에 처음부터 반복Idle과 Move 같은 반복 행동에 사용
프레임 수Samples한 바퀴 재생 시간
프레임Samples한 프레임한 바퀴느낌
6장6약 0.167초1초차분하고 무거움
6장12약 0.083초0.5초가볍고 빠름
6장18약 0.056초약 0.333초매우 빠르고 분주함

보이는 증상에서 가까운 설정을 찾습니다

모든 값을 한꺼번에 바꾸지 않습니다. 원본 → Import → Slice → Pivot → Clip 순서로 처음 어긋난 지점을 찾습니다.

픽셀 아트가 흐릿하게 보입니다

먼저: Filter Mode가 Point (no filter)인지 확인합니다. 다음: Compression과 Game View 축척을 확인합니다. PPU는 선명도보다 월드 크기 기준에 가깝습니다.

시트 전체가 한 장으로 선택됩니다

Texture Type이 Sprite (2D and UI), Sprite Mode가 Multiple인지 확인하고 Sprite Editor에서 Slice 후 Apply했는지 봅니다.

프레임이 바뀔 때 캐릭터가 떨립니다

Rigidbody2D보다 먼저 각 Sprite의 Rect 크기와 Pivot 위치를 비교합니다. 발 중심 같은 기준점이 모든 프레임에서 같은 위치에 있어야 합니다.

한 번 재생한 뒤 멈춥니다

Animation Clip 에셋을 선택하고 Inspector의 Loop Time이 켜져 있는지 확인합니다. Idle과 Move는 보통 반복합니다.

프레임 순서가 튀어 보입니다

Animation 창의 Sprite Keyframe 순서를 확인합니다. 파일명의 숫자가 텍스트 순서로 정렬될 수 있으므로 walk_00처럼 자릿수를 맞추면 관리하기 쉽습니다.

화면을 덮고 구조를 복원합니다

먼저 자신의 말로 답한 다음 펼쳐 확인합니다. 답의 핵심은 메뉴 이름보다 역할의 연결입니다.

Q1. Sprite Mode를 Multiple로 바꾸는 이유는?

한 Texture 안의 여러 자세를 개별 Sprite 하위 에셋으로 나누기 위해서입니다. Single이면 시트 전체를 하나의 Sprite로 취급합니다.

Q2. PPU가 서로 다르면 무엇이 달라집니까?

같은 픽셀 크기의 그림이 월드에서 서로 다른 크기로 보입니다. PPU는 월드 1 Unit에 대응하는 픽셀 수입니다.

Q3. Pivot이 프레임마다 다르면 왜 떨립니까?

Sprite 교체 때 각 그림의 원점이 Transform의 같은 위치에 놓이므로, 그림 속 발이나 몸통의 실제 위치가 프레임마다 이동하기 때문입니다.

Q4. 6프레임을 Samples 12로 재생하면 한 바퀴는 몇 초입니까?

6 ÷ 12 = 0.5이므로 0.5초입니다. Loop Time이 켜져 있으면 그 뒤 첫 프레임부터 반복합니다.

01

Sprite Sheet는 여러 ______을 한 Texture에 모아 둔 이미지입니다.

02

규칙적인 시트는 Grid by ______로 나누면 칸 크기를 일정하게 유지할 수 있습니다.

03

Animation Clip의 한 바퀴 시간은 ______ 수를 Samples로 나누어 계산합니다.

Unity 공식 자료

용어와 설정은 Unity 6.6 문서를 기준으로 정리했습니다.