언리얼 엔진에서 캐릭터 이동 애니메이션을 만들다 보면 Idle, Walk, Run을 각각 State로 나누는 방법부터 접하게 됩니다.
하지만 실제 게임에서는 캐릭터가 정지 → 천천히 걷기 → 빠르게 달리기처럼 속도가 연속적으로 변합니다. 애니메이션도 이 변화에 맞춰 자연스럽게 이어져야 합니다.
이럴 때 사용하는 것이 Blend Space입니다.
Blend Space는 하나 이상의 입력값을 기준으로 여러 Animation을 자연스럽게 섞어 재생하는 시스템입니다. 가장 대표적인 예가 Speed를 이용해 Idle, Walk, Run을 연결하는 방식입니다.
예를 들어 Speed가 0이면 Idle, 200이면 Walk, 500이면 Run을 배치해두면 캐릭터의 실제 이동 속도에 따라 중간 Animation이 자동으로 Blend됩니다.
💡 한 줄 정답 — Blend Space는 Speed나 Direction 같은 값을 기준으로 여러 Animation을 부드럽게 섞어주는 시스템입니다. 기본 이동은 Speed → Idle / Walk / Run, 방향 이동까지 필요하면 Speed + Direction → Blend Space 2D 구조로 이해하면 쉽습니다.
목차
- Blend Space란?
- Blend Space와 State Machine 차이
- Blend Space 1D와 2D 차이
- Idle Walk Run Blend Space 만들기
- Speed Axis 설정 방법
- Idle Walk Run 애니메이션 배치하기
- Animation Blueprint에서 Speed 값 만들기
- Blend Space를 State Machine에 연결하기
- Direction 값으로 좌우 이동 만들기
- Calculate Direction 사용 방법
- Blend Space 2D로 전후좌우 이동 만들기
- Blend가 부자연스러울 때 조절할 설정
- Blend Space가 작동하지 않을 때 확인할 것
- Blend Space와 Montage를 함께 사용하는 방법
- 마무리
Blend Space란?
Blend Space는 여러 Animation Sequence를 특정 값에 따라 자동으로 섞어주는 Animation Asset입니다.
가장 쉬운 예는 캐릭터의 이동 속도입니다.
Speed = 0
→ Idle
Speed = 200
→ Walk
Speed = 500
→ Run
이 세 Animation을 Blend Space에 배치하면 Speed가 100일 때는 Idle과 Walk가 섞이고, Speed가 350일 때는 Walk와 Run이 섞여서 재생됩니다.
즉 다음과 같은 방식입니다.
Idle -------- Walk -------- Run
0 200 500
캐릭터의 Speed가 계속 변하더라도 Animation이 갑자기 교체되지 않고 두 Animation 사이를 자연스럽게 보간합니다.
이 때문에 캐릭터 locomotion 시스템에서 굉장히 자주 사용됩니다.
Blend Space와 State Machine 차이
Blend Space와 State Machine은 같이 사용하는 경우가 많지만 역할은 다릅니다.
State Machine은 큰 상태를 관리합니다.
Locomotion
Jump
Fall
Land
반면 Blend Space는 하나의 State 내부에서 여러 Animation을 섞는 역할을 합니다.
예를 들어 다음 구조를 만들 수 있습니다.
State Machine
Entry
↓
Locomotion
↓
Jump
Locomotion State 안에는 Blend Space가 들어갑니다.
Speed
↓
Blend Space
↓
Idle / Walk / Run
정리하면 다음과 같습니다.
| 구분 | State Machine | Blend Space |
|---|---|---|
| 역할 | 큰 Animation 상태 관리 | Animation 간 보간 |
| 예시 | Ground / Jump / Fall | Idle / Walk / Run |
| 조건 | Transition Rule | Axis 값 |
| 대표 변수 | IsFalling | Speed, Direction |
| 사용 위치 | AnimGraph | State 내부 등 |
둘 중 하나만 선택하는 것이 아니라 State Machine과 Blend Space를 조합해서 사용하는 경우가 많다고 이해하면 됩니다.
Blend Space 1D와 2D 차이
Blend Space에는 대표적으로 1D와 2D 방식이 있습니다.
Blend Space 1D
하나의 값만 사용합니다.
예를 들어 Speed입니다.
0 200 500
Idle ------ Walk -------- Run
앞으로만 이동하는 단순한 locomotion 시스템이라면 1D만으로도 충분할 수 있습니다.
Blend Space 2D
두 개의 값을 사용합니다.
대표적으로:
Speed
Direction
입니다.
예를 들어 다음과 같이 배치할 수 있습니다.
Forward
↑
│
Left ←────────────┼────────────→ Right
│
↓
Backward
여기에 Speed까지 함께 사용하면 정지, 전진, 후진, 좌우 이동 등을 하나의 Blend Space에서 처리할 수 있습니다.
따라서 3인칭 액션 게임이나 전투 게임에서는 2D Blend Space를 많이 사용합니다.
Idle Walk Run Blend Space 만들기
Content Browser에서 새로운 Blend Space를 만들어보겠습니다.
Content Browser
↓
Right Click
↓
Animation
↓
Blend Space
사용할 Skeleton을 선택하면 Blend Space Asset이 만들어집니다.
예를 들어 이름을 다음처럼 설정할 수 있습니다.
BS_Locomotion
Blend Space를 열면 Grid 형태의 Editor를 볼 수 있습니다.
1D 방식이라면 한 방향으로 Animation Sample을 배치하고, 2D 방식이라면 X와 Y 두 축을 사용합니다.
처음 학습할 때는 Speed만 사용하는 1D 구성이 이해하기 쉽습니다.

[언리얼 엔진 Blend Space 만드는 방법]
Speed Axis 설정 방법
Blend Space를 만들었다면 먼저 Axis 설정을 해야 합니다.
1D Blend Space라면 Speed를 사용할 수 있습니다.
예를 들어:
Axis Name = Speed
Minimum Axis Value = 0
Maximum Axis Value = 600
처럼 설정합니다.
이 값은 캐릭터의 실제 Max Walk Speed와 완전히 똑같아야 하는 것은 아니지만 이동 속도 범위를 고려해서 설정하는 것이 좋습니다.
예를 들어 캐릭터가 최대 600 속도로 달린다면:
0 ~ 600
범위를 사용하면 이해하기 쉽습니다.
이때 Animation Sample은 다음처럼 배치할 수 있습니다.
Idle = 0
Walk = 200
Run = 600
Speed가 400이라면 Walk와 Run 사이 Animation이 자동으로 Blend됩니다.

[언리얼 엔진 Blend Space Speed Axis 설정]
Idle Walk Run 애니메이션 배치하기
이제 Animation Sequence를 Blend Space Grid에 배치합니다.
예를 들어:
A_Idle
A_Walk
A_Run
이 있다고 해보겠습니다.
Grid에서 각각 다음 위치에 배치합니다.
0
→ A_Idle
200
→ A_Walk
600
→ A_Run
그 결과는 다음과 같은 구조가 됩니다.
0 200 600
Idle ------- Walk ---------------- Run
Blend Space Preview에서 Speed 값을 움직이면 캐릭터 Animation이 자연스럽게 변화하는 것을 확인할 수 있습니다.
특히 중요한 것은 Animation마다 이동 속도와 발 움직임이 너무 다르면 중간 Blend가 어색해질 수 있다는 점입니다.
가능하면 같은 캐릭터와 유사한 locomotion 세트의 Animation을 사용하는 것이 좋습니다.

[언리얼 엔진 Idle Walk Run Blend Space 구성]
Animation Blueprint에서 Speed 값 만들기
앞 글에서 State Machine을 만들면서 Speed 변수를 사용했습니다.
Blend Space에서도 동일한 Speed 값을 사용할 수 있습니다.
Animation Blueprint Event Graph에서 기본 구조는 다음과 같습니다.
Event Blueprint Update Animation
↓
Try Get Pawn Owner
↓
Get Velocity
↓
Vector Length XY
↓
Set Speed
여기서 Vector Length XY를 사용하는 이유는 Z축 속도를 제외하고 지면 이동 속도만 계산하기 위해서입니다.
예를 들어 캐릭터가 점프하면 Velocity의 Z 값도 생길 수 있습니다.
하지만 locomotion Blend Space에서는 주로 수평 이동 속도만 필요하므로 XY Length를 사용하는 것이 편합니다.
결과적으로:
Velocity = (300, 0, 500)
이라고 해도 수평 Speed는 대략:
300
으로 처리할 수 있습니다.

[언리얼 엔진 Animation Blueprint Speed 계산]
Blend Space를 State Machine에 연결하기
Blend Space를 만들었다면 State Machine의 Locomotion State에 넣어줍니다.
Locomotion State를 더블 클릭합니다.
기존에 Idle Animation Sequence가 직접 연결돼 있었다면 이를 제거하고 Blend Space Player를 배치합니다.
BS_Locomotion
↓
Output Animation Pose
Blend Space의 입력값에는 Speed 변수를 연결합니다.
Speed
↓
BS_Locomotion
전체 구조는 다음과 같습니다.
Locomotion State
│
▼
BS_Locomotion
│
Speed
│
▼
Output Animation Pose
이제 캐릭터의 Speed가 증가하면 Idle → Walk → Run이 자연스럽게 Blend됩니다.

[언리얼 엔진 Blend Space State Machine 연결]
Direction 값으로 좌우 이동 만들기
앞으로만 움직이는 캐릭터라면 Speed만으로 충분합니다.
하지만 전투 게임처럼 캐릭터가 상대방을 바라본 상태에서 좌우로 움직이거나 뒤로 이동해야 한다면 Direction 값이 필요합니다.
대표적인 방향 값을 생각하면 다음과 같습니다.
Forward = 0도
Right = 90도
Left = -90도
Backward = 180도 또는 -180도
이를 Blend Space 2D의 한 축으로 사용할 수 있습니다.
예를 들어:
X Axis = Direction
Y Axis = Speed
구성으로 만들 수 있습니다.
Animation Sample도 다음처럼 준비할 수 있습니다.
Forward
Backward
Left
Right
그러면 캐릭터 방향에 따라 이동 Animation이 자동으로 Blend됩니다.
Calculate Direction 사용 방법
Direction 값을 직접 계산할 수도 있지만 Animation Blueprint에서는 Calculate Direction 노드를 사용할 수 있습니다.
기본 구조는 다음과 같습니다.
Velocity
↓
Calculate Direction
↑
Actor Rotation
↓
Set Direction
예를 들어 캐릭터가 바라보는 방향과 같은 방향으로 이동하면:
Direction ≈ 0
오른쪽으로 이동하면:
Direction ≈ 90
왼쪽으로 이동하면:
Direction ≈ -90
뒤로 이동하면:
Direction ≈ 180
정도의 값이 나옵니다.
이 값을 Blend Space에 전달하면 이동 방향에 맞는 Animation을 선택할 수 있습니다.
Blend Space 2D로 전후좌우 이동 만들기
전투 캐릭터처럼 상대를 바라보면서 움직이는 시스템이라면 2D Blend Space가 유용합니다.
예를 들어 다음 Animation이 있다고 해보겠습니다.
Idle
Walk Forward
Walk Backward
Walk Left
Walk Right
Run Forward
Run Backward
Run Left
Run Right
Blend Space를 다음과 같이 구성합니다.
Horizontal Axis
→ Direction
-180 ~ 180
Vertical Axis
→ Speed
0 ~ 600
그리고 Grid에는 각 Animation을 방향과 속도에 맞게 배치합니다.
개념적으로 보면:
Forward Run
Left Run Forward Right Run
Left Walk Idle Right Walk
Backward
형태가 됩니다.
이렇게 하면 Speed와 Direction 두 값만으로 다양한 이동 Animation을 자연스럽게 연결할 수 있습니다.
Blend가 부자연스러울 때 조절할 설정
Blend Space를 만들었는데 캐릭터 Animation이 너무 빠르게 변하거나 발이 튀는 것처럼 보일 수 있습니다.
이때 몇 가지 설정을 확인해볼 수 있습니다.
Axis Interpolation
입력값이 갑자기 바뀌더라도 Blend Space가 일정 시간에 걸쳐 따라가도록 설정할 수 있습니다.
예를 들어:
Speed
0 → 600
이 한 프레임에 크게 변하면 Animation도 빠르게 바뀔 수 있습니다.
Interpolation을 사용하면 변화가 조금 더 부드러워질 수 있습니다.
Animation Sample 위치
Walk Animation이 실제로는 느린데 너무 높은 Speed 값에 배치돼 있으면 발이 미끄러질 수 있습니다.
따라서:
실제 캐릭터 이동 속도
+
Animation의 움직임 속도
를 비교하면서 Sample 위치를 조절하는 것이 좋습니다.
Character Movement 속도
Max Walk Speed와 Blend Space 범위가 너무 다르면 Animation이 원하는 구간에 도달하지 못할 수도 있습니다.
예를 들어:
Max Walk Speed = 450
Blend Space Run = 600
이면 Run Animation을 완전히 재생하는 구간까지 Speed가 올라가지 않습니다.
Blend Space가 작동하지 않을 때 확인할 것
Blend Space가 항상 Idle만 재생하거나 이상한 Animation이 나온다면 다음 순서로 확인해보세요.
Blend Space 문제
↓
① Speed 값이 변하는가?
↓
② Blend Space Axis 범위가 맞는가?
↓
③ Animation Sample 위치가 맞는가?
↓
④ Blend Space 입력에 Speed가 연결됐는가?
↓
⑤ Locomotion State에 Blend Space가 들어갔는가?
↓
⑥ State Machine이 Output Pose까지 연결됐는가?
특히 Speed 자체가 0에서 변하지 않는 경우가 많습니다.
Animation Blueprint 디버깅 상태에서 Speed 값을 확인하거나 Print String 등을 통해 값이 실제로 업데이트되는지 확인해보는 것이 좋습니다.
또한 Preview에서 잘 작동하지만 실제 게임에서만 이상하다면 캐릭터가 사용하는 Animation Blueprint가 맞는지도 확인합니다.
Blend Space와 Montage를 함께 사용하는 방법
지금까지 배운 내용을 연결하면 캐릭터 Animation 구조를 상당히 깔끔하게 만들 수 있습니다.
기본 이동은 Blend Space가 담당합니다.
Speed + Direction
↓
Blend Space
↓
Locomotion
State Machine은 큰 상태를 관리합니다.
Locomotion
Jump
Fall
Land
공격과 스킬은 Montage를 사용합니다.
Attack Input
↓
Play Montage
전체 Animation 구조를 간단히 표현하면 다음과 같습니다.
Speed / Direction
↓
Blend Space
↓
State Machine
↓
Locomotion Pose
↓
Slot
↓
Animation Montage
↓
Output Pose
이 방식으로 구성하면 캐릭터는 평소에는 Blend Space로 자연스럽게 이동하고, 공격 입력이 들어올 때 Montage Animation을 재생할 수 있습니다.
마무리
Blend Space는 언리얼 엔진 캐릭터 Animation을 자연스럽게 만드는 데 매우 중요한 기능입니다.
특히 다음 구조만 먼저 이해하면 좋습니다.
Speed
↓
Blend Space
↓
Idle / Walk / Run
방향 이동까지 필요하다면:
Speed
+
Direction
↓
Blend Space 2D
↓
Forward / Back / Left / Right
으로 확장할 수 있습니다.
State Machine이 “현재 어떤 Animation 상태인가”를 관리한다면 Blend Space는 그 상태 안에서 여러 Animation을 얼마나 섞을지 결정한다고 생각하면 이해하기 쉽습니다.
여기에 Animation Montage까지 조합하면 이동, 점프, 공격, 콤보를 서로 역할별로 나누어 훨씬 관리하기 좋은 Animation Blueprint를 만들 수 있습니다.
참고 사이트
- Epic Games – Blend Spaces in Unreal Engine
Blend Space의 기본 개념과 Axis, Sample 구성 방법을 확인할 수 있는 공식 문서입니다. - Epic Games – Animation Blueprints
Animation Blueprint, AnimGraph와 Blend Space를 함께 사용하는 전체 구조를 확인할 수 있습니다. - Epic Games – State Machines
Blend Space를 State Machine 내부에서 사용하는 방법을 이해할 때 함께 참고하기 좋습니다. - Epic Games – Animation Montage
Locomotion Blend Space와 공격 Montage를 함께 구성할 때 참고할 수 있습니다.
함께 보면 좋은 글
- 언리얼 엔진 State Machine 사용법, Idle·Run·Jump 전환하기
→Blend Space와 State Machine 차이문단에 내부 링크 - 언리얼 엔진 Animation Montage와 Anim Notify 사용법
→Blend Space와 Montage를 함께 사용하는 방법에 내부 링크 - 언리얼 엔진 Collision 설정, Block·Overlap·Ignore 차이
→ 캐릭터 이동과 Collision 관련 설명에 내부 링크 - 언리얼 엔진 Line Trace·Sphere Trace·Box Trace 차이
→ 공격 Montage 연동 부분에 내부 링크 - 언리얼 엔진 Accessed None 오류 원인과 해결 방법
→ Animation Blueprint 캐릭터 Reference 문제에 내부 링크