Animation의 Play Rate란?
- 애니메이션의 재생 속도 배율이라고 생각하시면 됩니다.
- 1.0: 원속도
- 0.5: 절반 속도
- 2.0: 두 배 속도
Animation의 Play Rate은 어디서 설정하는가?
- Montage: Montage_Play(Montage, PlayRate) , 블루프린트 Montage Play 노드의 Play Rate
- AnimSequence 에셋: Rate Scale(에셋 기본 배수)
- Anim BP: 변수로 받아 상태별로 가변 (예: Speed → PlayRate)
- Curve(모션 커브): 구간별 배속 제어(가속/감속 연출)
왜 Animation의 Play Rate를 “프레임별로” 조절해야 할까?
게임에서는 캐릭터의 애니메이션이 항상 일정한 속도로만 재생되지는 않습니다.
예를 들어,
- 검을 휘두르는 첫 동작은 느리게,
- 타격 직전에는 짧게 폭발적으로 빠르게,
- 타격 후 마무리 동작은 부드럽게 감속시키는 방식처럼,
한 애니메이션 안에서도 프레임 구간에 따라 재생 속도를 유동적으로 조절해 연출의 리듬감을 조절하게 됩니다.
이처럼 Play Rate를 프레임 단위로 세밀하게 조절하면 단순한 움직임 재생을 넘어서,
- 타격감 (빠르게 몰아치거나 무게감 강조할 때)
- 연출 연기력 (집중하는 구간만 슬로우 연출 등)
- 캐릭터 성격 표현 (민첩한/묵직한 느낌을 애니메이션만으로 전달)
- 몰입도 & 감정선 유도 (시네마틱, 경직 연출, 슬로모션 등)
같은 게임 경험의 ‘감정적인 레벨’을 직접적으로 컨트롤할 수 있게 됩니다.
Animation의 Play Rate를 “ 조절하는 방법들
1. AnimSequence에서 전체 애니메이션 트랙의 속도를 조절하는 방법

해당 사진은 애니메이션 트랙 전체의 Play Rate를 조절하는 방법으로 해당 빨간 박스의 값을 조절하면 애니메이션 배속을 조절할 수 있습니다.
2. AnimSequence에서 하나의 애니메이션에서 프레임별 구간을 나누어 속도를 조절하는 방법
해당 방법은 2가지로 구성되어 있다.
첫 번째 방법은 시퀀스 레벨을 이용하여 애니메이션의 프레임 별 속도를 조절한 다음 애니메이션을 bake해 만드는 방법
두 번째 방법은 Cuves Asset을 이용하여 EventGraph에 연결하여 프레임 별 속도를 조절하는 방법이 있다.
2-1 시퀀스 레벨을 이용하여 애니메이션의 프레임 별 속도를 조절해보기

다음과 같이 시퀀스 레벨을 생성한다

해당 화면에서 레벨에 존재하는 플레이어의 모델을 시퀀서에 drag하여 추가하고 작업할 애니메이션을 넣어준다.


추가하면 다음과 같은 화면이 나오게 된다.

이렇게 마우스를 가져다 대보면 해당 애니메이션의 Play Rate와 전체 프레임 구간의 길이를 알 수 있다.
또한 "Space Bar" 키를 이용하여 해당 애니메이션을 재생 시킬 수 있고 아니면 Bar를 마우스 드래그를 통해 특정 프레임 구간의 움직임을 눈으로 확인할 수 있다.

해당 애니메이션 트랙을 마우스 우클릭을 한 뒤 같이 원하는 부분의 프레임의 섹션을 두 부분으로 나누어 줄 수 있으며 단축키로는 "Ctrl + /" 이다. ( 이 때 나눠지는 섹션의 기준은 Drag Bar의 현재 위치를 기준으로 나누어진다.)

마찬가지로 마우스 우클릭 후 해당 애니메이션의 Properties에 들어가 Playback 하단 메뉴에 Play Rate을 조절할 수 있음을 볼 수 있다.
다음과 같이 애니메이션 트랙 별로 속도 완급 조절을 마치고 저장하고 싶다면, 애니메이션을 bake 해주면 된다.

다음 사진과 같이 모델을 아래 시퀀스의 모델을 우클릭하고 Bake Animation Sequence를 클릭하여 저장위치를 결정하면 완료다.
여기까지가 Sequencer 레벨을 이용하여 한 애니메이션 안의 프레임 별 속도 조절을 설명해보았다.
2-2 Curve을 이용하여 애니메이션의 프레임 별 속도를 조절해보기
이 방법은 첫 번째 방법보다는 조금 더 복잡하고 Preview를 보면서 작업하기가 어려웠다.

우선 Curve를 만들어 주어야 한다.
저는 애니메이션의 속도를 다루는 Curve를 만들거기 때문에 "Speed"라는 명칭으로 Curve를 만들어 주었습니다.

그럼 다음과 같이 Curve가 추가된 모습이 보이며 이제 해당 Curve Edit 화면으로 들어가 Add Key를 통해 프레임 별 애니메이션 속도 완급 조절을 해보겠습니다.

다음과 같이 화살표를 만들어 값을 변경할 수 있습니다. ( 해당 애니메이션의 속도를 1로 설정하였습니다.)

이제 Curve값을 적용하여야 합니다.
Animation BluePrint로 들어가 EventGraph에서 Update Animation의 Exec를 Speed Rate의 Exec에 연결해줍니다.
( ※ 여기서 Speed Rate는 제가 float 형으로 blue print에서 만든 변수입니다.)
다음 매 틱마다 커브의 값을 받아올 Get Curve Value 노드를 추가해줍니다.
(※ 여기서 주의할 점으로는 Get Curve Value 의 Curve Name을 반드시 만들어준 Curve Name과 동일 시 해야합니다.)
해당 값의 return value를 Speed Rate에 연결해줍니다.
필자는 완급 조절이 필요한 애니메이션이 Montage안에 있기 때문에 Montage Set Play Rate 노드를 추가해 연결해 주었습니다.

몽타주에 연결된 애니메이션이 아니라 단독 애니메이션 이라면 다음과 같이 연결하시면 됩니다.
여기까지를 한번 정리해 보자면,
Event Blueprint Update Animation은 매 프레임(= 매 Tick)마다 호출되는 이벤트입니다.
즉, 게임이 실행되고 애니 인스턴스가 활성화되어 있는 동안 계속 반복적으로 불립니다.
| Event Blueprint Initialize Animation | 애니메이션 인스턴스가 처음 생성될 때 1회 | 초기 값 세팅용 |
| Event Blueprint Update Animation | 매 프레임마다 자동 호출 | 캐릭터 속도, 이동, 상태값 갱신용 |
| Anim Notify | 애니메이션 특정 프레임에 도달했을 때 | 타이밍 이벤트 |
을 이용하여 먼저 Event Blueprint Update Animation을 이용하여 매 틱마다 Curve값을 가져오도록 유도하였고
해당 값을 다시 Speed Rate라는 float 변수에 넣어 각 애니메이션이
"최종 재생속도 = 에셋 RateScale × 코드/노드 PlayRate × (옵션)커브배수 × 게임 타임스케일"
을 따르도록 구현해 보았습니다.
'Unreal Project > Unreal Study' 카테고리의 다른 글
| Data_Asset 및 Quater View, Shoulder View 구현 (0) | 2026.02.26 |
|---|---|
| Unreal Collision에 관하여 (0) | 2025.10.31 |
| Combo Attack 구현해보기 및 구조 정리하기 (0) | 2025.10.27 |
| Unreal Weapon Socket 다루기 (0) | 2025.10.27 |
| Character Movement Component에 대하여 알아보 (0) | 2025.10.22 |
