스켈레탈 애니메이션 트랙
시퀀서에서 스켈레탈 메시 애니메이션을 제어하고, 블렌딩과 웨이트를 활용하는 방법을 학습합니다
Animation Track 개요
UMovieSceneSkeletalAnimationTrack의 구조
스켈레탈 애니메이션 트랙은 USkeletalMeshComponent에 대해 Animation Sequence, Montage 등을 시간 기반으로 재생합니다. 게임플레이 ABP(Animation Blueprint)와 독립적으로 동작하거나 블렌딩할 수 있습니다.
class UMovieSceneSkeletalAnimationTrack : public UMovieSceneNameableTrack
{
// 애니메이션 섹션 목록
TArray<UMovieSceneSection*> AnimationSections;
// 트랙 행 수 (멀티 레이어)
int32 GetMaxRowIndex() const;
};
class UMovieSceneSkeletalAnimationSection : public UMovieSceneSection
{
// 재생할 애니메이션 에셋
FMovieSceneSkeletalAnimationParams Params;
// - Animation: UAnimSequence*
// - StartOffset: FFrameNumber
// - EndOffset: FFrameNumber
// - PlayRate: float
// - bReverse: bool
// - SlotName: FName
// - Weight: FMovieSceneFloatChannel
};
시퀀서에서 애니메이션 추가
- 스켈레탈 메시 액터를 시퀀서에 추가
- 액터 트랙에서 + Track → Animation 선택
- 타임라인에서 우클릭 → 재생할 Animation Sequence 선택
- 섹션의 시작/끝을 드래그하여 재생 범위 조절
- Start Offset / End Offset으로 클립 트리밍
블렌딩과 웨이트
여러 애니메이션을 레이어링하는 기법
Weight 채널
각 애니메이션 섹션에는 Weight 채널이 있어 0.0~1.0 사이의 값으로 해당 애니메이션의 영향력을 제어합니다. 여러 섹션이 겹칠 때 웨이트로 블렌딩 비율을 결정합니다.
| 파라미터 | 설명 | 기본값 |
|---|---|---|
| Weight | 애니메이션 영향력 (0~1) | 1.0 |
| PlayRate | 재생 속도 배율 | 1.0 |
| bReverse | 역재생 여부 | false |
| StartOffset | 애니메이션 시작 위치 오프셋 | 0 |
| EndOffset | 애니메이션 끝 위치 오프셋 | 0 |
| SlotName | ABP 슬롯 이름 | DefaultSlot |
멀티 레이어 블렌딩
// Row 0: Idle 애니메이션 (Weight = 1.0)
// - 전체 프레임에 걸친 기본 포즈
// Row 1: 손 흔들기 애니메이션 (상체만)
// Frame 30~90, Weight: 0 → 1 → 0 (페이드 인/아웃)
// BlendType: Additive
// Row 2: 감정 표현 (얼굴 본만)
// Frame 60~120, Weight: 1.0
// BoneMask로 얼굴 본만 적용
// 결과: Idle 위에 손 흔들기가 덧입혀지고,
// 동시에 얼굴은 감정 표현 애니메이션 재생
섹션의 Ease In/Out 기능을 활용하면 Weight를 키프레임하지 않아도 자동으로 부드러운 블렌딩이 적용됩니다. 섹션 양쪽 끝의 삼각형 핸들을 드래그하여 Easing 길이를 설정합니다.
슬롯과 ABP 연동
Animation Blueprint와의 상호작용
시퀀서의 애니메이션은 Slot 시스템을 통해 ABP(Animation Blueprint)와 연동됩니다.
ABP의 AnimGraph에 Slot 노드를 배치하면, 시퀀서가 해당 슬롯으로 애니메이션을 주입합니다.
슬롯 동작 방식
Animation Section
"DefaultSlot"
SkeletalMesh
// Animation Blueprint의 AnimGraph에서:
//
// [State Machine] → [Slot "DefaultSlot"] → [Output Pose]
//
// Slot 노드가 시퀀서의 애니메이션을 받아 블렌딩
// 시퀀서가 비활성일 때는 State Machine의 출력이 그대로 통과
// 시퀀서 활성 시 Weight에 따라 블렌딩
// 슬롯 그룹 설정 (Skeleton 에셋에서)
// - DefaultGroup.DefaultSlot (기본)
// - DefaultGroup.UpperBody (상체 전용)
// - DefaultGroup.FacialAnim (얼굴 전용)
ABP에 Slot 노드가 없으면 시퀀서 애니메이션이 ABP를 완전히 오버라이드합니다. 게임플레이 중 컷씬에서 ABP 상태를 유지하려면 반드시 Slot 노드를 사용하세요.
고급 애니메이션 제어
루트 모션, 모션 워핑, IK
Root Motion in Sequencer
시퀀서에서 Root Motion 애니메이션을 재생할 때, 루트 모션은 액터의 Transform에 자동 적용됩니다. 다만 시퀀서의 Transform 트랙과 충돌할 수 있으므로 주의가 필요합니다.
| 설정 | 동작 | 추천 시나리오 |
|---|---|---|
| Root Motion + Transform 트랙 없음 | 루트 모션이 액터 이동 | 캐릭터가 자유롭게 이동하는 컷씬 |
| Root Motion 없음 + Transform 트랙 | 시퀀서 Transform이 위치 제어 | 정확한 위치 제어가 필요한 컷씬 |
| Root Motion + Transform 트랙 | 충돌 가능, 예측 어려움 | 비권장 (둘 중 하나 선택) |
Force Root Lock
애니메이션 섹션의 bForceRootLock을 활성화하면 루트 본의 이동/회전을
강제로 0으로 고정하여, 시퀀서의 Transform 트랙만으로 위치를 제어할 수 있습니다.
UE5에서는 Control Rig 트랙을 사용하여 시퀀서에서 직접 FK/IK 포즈를 키프레임할 수 있습니다. 기존 애니메이션 위에 Additive로 Control Rig를 적용하면, 발 IK 보정이나 시선 방향 조정을 시퀀서 타임라인에서 바로 수행할 수 있습니다.
핵심 요약
- Animation Track은 Animation Sequence를 타임라인에 배치하여 재생 시간, 속도, 오프셋을 제어한다
- Weight 채널(0~1)로 애니메이션의 영향력을 제어하며, 여러 레이어의 블렌딩 비율을 결정한다
- ABP와 연동 시 Slot 노드를 사용하면 시퀀서와 게임플레이 애니메이션을 자연스럽게 블렌딩할 수 있다
- Root Motion과 Transform 트랙은 동시에 사용하지 않는 것을 권장한다
- Section Easing으로 Weight 키프레임 없이도 부드러운 블렌딩 전환이 가능하다
- Control Rig 트랙으로 시퀀서에서 직접 FK/IK 포즈를 키프레임할 수 있다
도전 과제
배운 내용을 직접 실습해보세요
캐릭터를 시퀀서에 추가하고 Animation Track에 걷기, 달리기, 공격 애니메이션을 순서대로 배치하세요. 각 섹션을 트리밍하고 Cross-Fade를 설정하세요.
두 개의 Animation Track을 동시에 사용하여 가중치 블렌딩을 실험하세요. Idle과 Wave 애니메이션을 블렌딩하여 자연스러운 동작을 만드세요.
2명의 캐릭터가 상호작용하는 대화 씬 시네마틱을 제작하세요. 몸짓, 표정 애니메이션을 동기화하고, Transform Track으로 미세한 위치 조정을 추가하세요.