PART 1 · 강의 3/3

키프레임 애니메이션

커브 에디터와 보간 방식을 마스터하고, 시간 관리 시스템과 Easing 기법을 학습합니다

01

키프레임 기초

시간과 값의 쌍으로 애니메이션 정의하기

키프레임은 특정 시간(Time)에서의 목표 값(Value)을 정의합니다. 시퀀서는 두 키프레임 사이를 보간(Interpolation)하여 매끄러운 애니메이션을 생성합니다.

FFrameNumber와 FFrameTime

UE5 시퀀서는 틱 기반(Tick-based) 시간 시스템을 사용합니다. 내부적으로 모든 시간은 FFrameNumber(정수 틱)로 저장되며, 보간 시에만 FFrameTime(틱 + 서브프레임)으로 확장됩니다.

C++ - 시간 해상도
// 틱 해상도 (Tick Resolution) - 기본값: 24000 ticks/sec FFrameRate TickResolution = MovieScene->GetTickResolution(); // 디스플레이 레이트 (Display Rate) - 에디터에서 보이는 프레임 레이트 FFrameRate DisplayRate = MovieScene->GetDisplayRate(); // 예: 30fps, 24fps, 60fps 등 // 프레임 번호를 시간(초)으로 변환 FFrameNumber Frame(720000); // 24000 * 30 = 720000 ticks = 30초 double TimeInSeconds = Frame.Value / TickResolution.AsDecimal(); // 시간(초)을 프레임으로 변환 FFrameNumber TargetFrame = (TimeInSeconds * TickResolution.AsDecimal());
틱 해상도 vs 디스플레이 레이트

틱 해상도(24,000 ticks/sec)는 내부 정밀도이고, 디스플레이 레이트는 에디터 UI에서 보이는 프레임 단위입니다. 높은 틱 해상도 덕분에 어떤 프레임 레이트에서도 정확한 키프레임 배치가 가능합니다.

02

보간 모드 (Interpolation)

키프레임 사이의 값 계산 방식

ERichCurveInterpMode

모드설명특징
RCIM_Linear 선형 보간 일정한 속도, 꺾이는 모션
RCIM_Cubic 큐빅 보간 (기본값) 부드러운 커브, 탄젠트 조절 가능
RCIM_Constant 상수 (스텝) 키프레임까지 이전 값 유지, 즉시 전환
RCIM_None 보간 없음 키프레임에서만 값 존재

탄젠트 (Tangent) 타입

큐빅 보간 시 키프레임의 탄젠트가 커브의 형태를 결정합니다.

탄젠트설명사용 시나리오
Auto 자동 계산, 인접 키 기반 일반적인 애니메이션
User 사용자 직접 조절 정밀한 커브 제어
Break 입/출 탄젠트 분리 비대칭 커브 (예: 급정지)
Weighted 가중치 기반 탄젠트 S-커브, 복잡한 이징
SmartAuto 개선된 자동 (UE5 기본) 오버슈트 방지 자동 커브
Weighted Tangent 활용

Weighted Tangent를 사용하면 베지어 커브의 제어점 거리를 조절하여 S-커브나 비대칭 가속/감속을 정밀하게 제어할 수 있습니다. 커브 에디터에서 키프레임 우클릭 후 "Weighted Tangents"를 활성화합니다.

03

커브 에디터 활용

시각적 커브 편집 도구 마스터하기

커브 에디터는 시퀀서 내장 도구로, 키프레임의 시간-값 관계를 시각적으로 편집합니다. 시퀀서 하단의 커브 아이콘을 클릭하여 열 수 있습니다.

핵심 조작법

조작단축키설명
키프레임 추가 Enter / 우클릭 메뉴 현재 시간에 키 삽입
키프레임 삭제 Delete 선택한 키 제거
보간 변경 1 (Linear) / 2 (Cubic) / 3 (Constant) 선택한 키의 보간 모드 변경
커브 전체 보기 F 선택된 커브를 화면에 맞춤
탄젠트 핸들 드래그 커브 형태 조절
다중 선택 Ctrl + 클릭 여러 키프레임 동시 편집
스냅 커브 에디터 툴바 프레임/값 그리드에 스냅

Pre/Post Infinity

시퀀스 범위 바깥에서 커브가 어떻게 확장되는지 결정합니다.

모드동작
Constant첫/마지막 키값 유지
Cycle커브를 반복 재생
CycleWithOffset반복하되 마지막 값에서 이어감
Oscillate핑퐁 반복 (앞뒤 왕복)
Linear마지막 탄젠트 방향으로 무한 연장
04

시간 관리와 재생 설정

시퀀서의 시간 범위, 재생 속도, 루핑

Playback Range

시퀀서의 Playback Range는 실제 재생되는 시간 범위입니다. Working Range와 구분되며, 초록색 마커로 표시됩니다.

C++ - 재생 설정
// FMovieSceneSequencePlaybackSettings FMovieSceneSequencePlaybackSettings Settings; Settings.bAutoPlay = true; // 자동 재생 Settings.bPauseAtEnd = false; // 끝에서 일시정지 Settings.LoopCount.Value = 3; // 3회 반복 (0 = 무한) Settings.PlayRate = 1.0f; // 재생 속도 Settings.StartTime = 0.0f; // 시작 시간(초) Settings.bRestoreState = true; // 종료 시 원래 상태 복원 Settings.bDisableMovementInput = true; // 재생 중 입력 차단 Settings.bHidePlayer = true; // 플레이어 캐릭터 숨김 Settings.bHideHud = true; // HUD 숨김

Time Dilation (시간 확장)

Play Rate 트랙을 사용하면 시퀀스 재생 중 특정 구간의 속도를 키프레임으로 제어할 수 있습니다. 슬로우 모션이나 타임랩스 효과에 활용됩니다.

bRestoreState의 중요성

bRestoreState = true로 설정하면 시퀀스 종료 후 모든 오브젝트가 시퀀스 시작 전 상태로 복원됩니다. 컷씬에서는 보통 false로 설정하여 최종 상태를 유지하고, 게임플레이 연출에서는 true로 설정하여 원래 상태를 복구합니다.

SUMMARY

핵심 요약

  • UE5 시퀀서는 틱 기반(24,000 ticks/sec) 시간 시스템을 사용하여 높은 정밀도를 보장한다
  • 보간 모드는 Linear, Cubic, Constant, None 4가지이며, 큐빅이 기본값이다
  • 탄젠트 타입에는 Auto, User, Break, Weighted, SmartAuto가 있으며, UE5에서는 SmartAuto가 기본이다
  • 커브 에디터에서 Pre/Post Infinity를 설정하여 시퀀스 범위 밖의 커브 동작을 제어할 수 있다
  • bRestoreState 설정으로 시퀀스 종료 후 오브젝트 상태 복원 여부를 결정한다
  • Play Rate 트랙으로 구간별 재생 속도를 키프레임 제어할 수 있다
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: 키프레임 보간 모드 비교

Transform Track에 4개의 위치 키프레임을 설정하고, 보간 모드를 Linear, Cubic, Constant로 변경하세요. 움직임 차이를 관찰하고 적합한 사용 사례를 정리하세요.

실습 2: 커브 에디터 활용

Curve Editor를 열어 키프레임의 Tangent를 직접 수정하세요. Ease In/Out 커브를 만들고, Auto/Manual Tangent의 차이를 비교하여 자연스러운 가감속 모션을 만드세요.

심화 과제: 복합 애니메이션 시퀀스

카메라 이동 + 조명 변화 + 머티리얼 전환 + 파티클 활성화를 동기화하여 30초 분량의 인트로 시네마틱을 제작하세요. 타이밍 동기화와 시각적 연출에 집중하세요.