
19. 애니메이션 기반 동작 확인용 Preview Pawn 구현(2)
- date
- 4월 4, 2026
- status
- 완료
- tags
- unrealRL
1. 이어서…#
이어서 작성을 진행해보자
2. 구현#
2.15. AnimBP에서 Preview Pawn 입력값 읽기#
- 이제
BP_SpiderAnimPreviewPawn에서 처리한 입력값을ABP_SpiderPreview에서 읽어오도록 구성해주자 - 지금까지 입력값은 Preview Pawn 내부 변수에 저장되어 있다.
- 하지만 실제 애니메이션을 재생하는 것은
ABP_SpiderPreview이므로, AnimBP가 Preview Pawn의 값을 읽어와야 2D Blend Space나Top_M본 회전에 사용할 수 있다.
현재 Preview Pawn 쪽에서 준비한 주요 값은 다음과 같다.
| 변수명 | 의미 | AnimBP에서의 사용처 |
|---|---|---|
MoveRightValue | 좌우 이동 입력 | 2D Blend Space X축 |
MoveForwardValue | 전후 이동 입력 | 2D Blend Space Y축 |
AimYaw | 상부 몸체 좌우 회전값 | Top_M Yaw 회전 |
AimPitch | 상부 몸체 상하 회전값 | Top_M Pitch 회전 |
bLandingPressed | Landing 입력 요청 | Landing / Jump 계열 애니메이션 조건 |
따라서 ABP_SpiderPreview에도 같은 이름의 변수를 만들어주자.

| 변수명 | 타입 | 용도 |
|---|---|---|
MoveRightValue | Float | Blend Space 좌우 입력 |
MoveForwardValue | Float | Blend Space 전후 입력 |
AimYaw | Float | 상부 몸체 좌우 회전 |
AimPitch | Float | 상부 몸체 상하 회전 |
bLandingPressed | Boolean | Landing / Jump 계열 입력 상태 |
Event Blueprint Update Animation 구성#
ABP_SpiderPreview를 열고 Event Graph로 이동한다.Event Blueprint Update Animation에서 현재 Animation Blueprint가 붙어 있는 Pawn을 가져와주자이후 이 Pawn을
BP_SpiderAnimPreviewPawn으로 Cast하고, Preview Pawn 안의 변수값을 AnimBP 변수에 복사한다.연결은 다음과 같이 구성해주자

Event Blueprint Update Animation / 실행 출력핀 → Cast To BP_SpiderAnimPreviewPawn / 실행 입력핀 Try Get Pawn Owner / Return Value → Cast To BP_SpiderAnimPreviewPawn / Object 입력핀여기서
Try Get Pawn Owner는 현재 AnimBP를 사용 중인 Skeletal Mesh가 어떤 Pawn에 속해 있는지 가져오는 노드다.Preview Pawn의
SpiderMesh에ABP_SpiderPreview를 연결했으므로, 정상적으로 연결되어 있다면Try Get Pawn Owner는BP_SpiderAnimPreviewPawn을 반환하게 된다.
이동 입력값 읽기#
Cast가 성공하면 Preview Pawn의 이동 입력값을 AnimBP 변수에 저장하자
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get MoveRightValue / Target 입력핀
Get MoveRightValue / Return Value
→ Set MoveRightValue / MoveRightValue 입력핀실행핀은 다음과 같이 연결한다.
Cast To BP_SpiderAnimPreviewPawn / 실행 출력핀
→ Set MoveRightValue / 실행 입력핀그 다음 전후 입력값도 저장한다.
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get MoveForwardValue / Target 입력핀
Get MoveForwardValue / Return Value
→ Set MoveForwardValue / MoveForwardValue 입력핀실행핀은 다음과 같이 이어준다.
Set MoveRightValue / 실행 출력핀
→ Set MoveForwardValue / 실행 입력핀상부 몸체 회전값 읽기#
다음으로 AimYaw, AimPitch 값을 AnimBP 변수에 저장한다.
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get AimYaw / Target 입력핀
Get AimYaw / Return Value
→ Set AimYaw / AimYaw 입력핀실행핀은 다음과 같이 이어준다.
Set MoveForwardValue / 실행 출력핀
→ Set AimYaw / 실행 입력핀AimPitch도 같은 방식으로 가져온다.
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get AimPitch / Target 입력핀
Get AimPitch / Return Value
→ Set AimPitch / AimPitch 입력핀실행핀은 다음과 같이 이어준다.
Set AimYaw / 실행 출력핀
→ Set AimPitch / 실행 입력핀Landing 입력값 읽기#
마지막으로 bLandingPressed 값을 AnimBP 변수에 저장한다.
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get bLandingPressed / Target 입력핀
Get bLandingPressed / Return Value
→ Set bLandingPressed / bLandingPressed 입력핀실행핀은 다음과 같이 이어준다.
Set AimPitch / 실행 출력핀
→ Set bLandingPressed / 실행 입력핀최종 연결 구조#
정리하면 ABP_SpiderPreview의 Event Graph에서는 다음과 같은 흐름으로 Preview Pawn의 값을 읽어온다.

Event Blueprint Update Animation / 실행 출력핀
→ Cast To BP_SpiderAnimPreviewPawn / 실행 입력핀
Try Get Pawn Owner / Return Value
→ Cast To BP_SpiderAnimPreviewPawn / Object 입력핀
Cast To BP_SpiderAnimPreviewPawn / 실행 출력핀
→ Set MoveRightValue / 실행 입력핀
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get MoveRightValue / Target 입력핀
Get MoveRightValue / Return Value
→ Set MoveRightValue / MoveRightValue 입력핀
Set MoveRightValue / 실행 출력핀
→ Set MoveForwardValue / 실행 입력핀
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get MoveForwardValue / Target 입력핀
Get MoveForwardValue / Return Value
→ Set MoveForwardValue / MoveForwardValue 입력핀
Set MoveForwardValue / 실행 출력핀
→ Set AimYaw / 실행 입력핀
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get AimYaw / Target 입력핀
Get AimYaw / Return Value
→ Set AimYaw / AimYaw 입력핀
Set AimYaw / 실행 출력핀
→ Set AimPitch / 실행 입력핀
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get AimPitch / Target 입력핀
Get AimPitch / Return Value
→ Set AimPitch / AimPitch 입력핀
Set AimPitch / 실행 출력핀
→ Set bLandingPressed / 실행 입력핀
Cast To BP_SpiderAnimPreviewPawn / As BP_SpiderAnimPreviewPawn
→ Get bLandingPressed / Target 입력핀
Get bLandingPressed / Return Value
→ Set bLandingPressed / bLandingPressed 입력핀구조로 표현하면 다음과 같다.
flowchart TD
Update[Event Blueprint Update Animation] --> Owner[Try Get Pawn Owner]
Owner --> Cast[Cast To BP_SpiderAnimPreviewPawn]
Cast --> MoveRight[Set MoveRightValue]
Cast --> MoveForward[Set MoveForwardValue]
Cast --> AimYaw[Set AimYaw]
Cast --> AimPitch[Set AimPitch]
Cast --> Landing[Set bLandingPressed]이 단계가 완료되면 BP_SpiderAnimPreviewPawn에서 처리한 입력값이 ABP_SpiderPreview 안으로 전달된다.
다음 단계에서는 MoveRightValue, MoveForwardValue를 이용해 2D Blend Space를 구동하고, AimYaw, AimPitch를 이용해 Top_M 본을 회전시키는 구조를 만든다.
2.16. 이동 애니메이션용 2D Blend Space 생성#
- 이제
ABP_SpiderPreview에서 읽어온MoveRightValue,MoveForwardValue를 실제 이동 애니메이션에 연결하기 위해 2D Blend Space를 생성해보자 - Blend Space를 사용하는 이유는 전진, 후진, 좌우 이동 애니메이션을 각각 따로 전환하는 것이 아니라, 입력 방향에 따라 자연스럽게 섞기 위해서다.
- 예를 들어 W만 누르면 전진 애니메이션이 재생되고, D만 누르면 우측 이동 애니메이션이 재생된다.
- W와 D를 동시에 누르면 전진 애니메이션과 우측 이동 애니메이션이 함께 섞인 결과를 확인할 수 있다.
즉 이번 구조는 다음과 같다.
MoveRightValue = 좌우 이동 입력
MoveForwardValue = 전후 이동 입력
MoveRightValue / MoveForwardValue
→ 2D Blend Space 입력값
→ Idle / Forward / Backward / Left / Right 애니메이션 블렌딩BS_SpiderMove 생성#
- Content Browser에서 거미 로봇 애니메이션을 관리하는 폴더로 이동한다.
- 이후 다음 에셋을 생성한다.
Content Browser 우클릭
→ Animation
→ Blend Space
→ 거미 로봇 Skeleton 선택
→ 이름: BS_SpiderMove
좌우 이동과 전후 이동을 동시에 다루기 위해서는 2개의 축이 필요하기 때문이다.
Blend Space 축 설정#
BS_SpiderMove를 열고, Axis Settings를 다음과 같이 설정해주자
| 축 | 이름 | Min | Max | 의미 |
|---|---|---|---|---|
| Horizontal Axis | MoveRight | -1.0 | 1.0 | 좌우 이동 |
| Vertical Axis | MoveForward | -1.0 | 1.0 | 전후 이동 |

각 값의 의미는 다음과 같다.
| 값 | 의미 |
|---|---|
MoveRight = -1 | 좌측 이동 |
MoveRight = 0 | 좌우 입력 없음 |
MoveRight = 1 | 우측 이동 |
MoveForward = -1 | 후진 |
MoveForward = 0 | 전후 입력 없음 |
MoveForward = 1 | 전진 |
이렇게 설정하면 MoveRightValue, MoveForwardValue를 그대로 Blend Space의 입력값으로 사용할 수 있다.
애니메이션 배치#
Blend Space Grid에는 기존 애니메이션을 다음과 같이 배치해주자
| 위치 | 애니메이션 |
|---|---|
X = 0, Y = 0 | A_ISO_Mech_Idle_01 |
X = 0, Y = 1 | A_ISO_Mech_WalkForward_01 |
X = 0, Y = -1 | A_ISO_Mech_WalkBackward_01 |
X = -1, Y = 0 | A_ISO_Mech_Walk_L_01 |
X = 1, Y = 0 | A_ISO_Mech_Walk_R_01 |
배치 구조를 그림으로 보면 다음과 같다.

MoveForward +1
|
|
WalkForward
|
|
MoveRight -1 --- Idle --- MoveRight +1
Walk_L | Walk_R
|
|
WalkBackward
|
MoveForward -1이 구조를 사용하면 입력값에 따라 다음과 같은 결과를 얻을 수 있다.
| 입력 | Blend Space 입력값 | 결과 |
|---|---|---|
| 입력 없음 | (0, 0) | Idle |
| W | (0, 1) | 전진 |
| S | (0, -1) | 후진 |
| A | (-1, 0) | 좌측 이동 |
| D | (1, 0) | 우측 이동 |
| W + D | (1, 1) 근처 | 전진 + 우측 이동 블렌딩 |
| W + A | (-1, 1) 근처 | 전진 + 좌측 이동 블렌딩 |
현재 에셋에는 대각선 전용 애니메이션이 따로 없기 때문에, W+D 입력이 완벽한 대각 보행 애니메이션으로 재생되는 것은 아니다.
하지만 전진과 우측 이동 애니메이션이 섞이면서, 입력 방향이 섞였을 때 모델의 자세와 관절 움직임이 어떻게 변하는지 확인할 수 있다.
이 단계의 의미#
이전까지는 입력값을 BP_SpiderAnimPreviewPawn에서 받아 ABP_SpiderPreview로 전달하는 구조를 만들었다.
이번 단계에서는 그 입력값을 실제 애니메이션 재생에 사용할 수 있도록 BS_SpiderMove를 준비한다.
정리하면 흐름은 다음과 같다.
flowchart TD
Input[WASD 입력] --> Pawn[BP_SpiderAnimPreviewPawn]
Pawn --> Raw[RawMoveInput]
Raw --> Smooth[SmoothedMoveInput]
Smooth --> Values[MoveRightValue / MoveForwardValue]
Values --> AnimBP[ABP_SpiderPreview]
AnimBP --> Blend[BS_SpiderMove]
Blend --> Pose[이동 애니메이션 포즈]이 단계가 완료되면 다음으로 ABP_SpiderPreview의 AnimGraph에서 BS_SpiderMove를 배치하고, MoveRightValue, MoveForwardValue를 Blend Space 입력값으로 연결한다.
2.17. AnimGraph에 BS_SpiderMove 연결#
- 이제 앞에서 만든
BS_SpiderMove를ABP_SpiderPreview의 AnimGraph에 연결해보자. 2.16에서는 전후좌우 이동 애니메이션을 섞기 위한 Blend Space 에셋을 만들었다.- 하지만 Blend Space 에셋을 만들기만 해서는 실제 로봇 애니메이션에 적용되지 않는다.
ABP_SpiderPreview의 AnimGraph에서BS_SpiderMove를 배치하고,MoveRightValue,MoveForwardValue를 입력으로 연결해야 실제 포즈가 출력된다.
현재 입력값 흐름은 다음과 같다.
BP_SpiderAnimPreviewPawn
→ MoveRightValue / MoveForwardValue 계산
→ ABP_SpiderPreview에서 값 읽기
→ BS_SpiderMove 입력값으로 사용
→ Output Pose로 출력BS_SpiderMove 노드 추가#

ABP_SpiderPreview를 열고AnimGraph로 이동- 빈 공간에서 우클릭 후
BS_SpiderMove를 검색해 Blend Space 노드를 추가 - 이후
BS_SpiderMove의 Pose 출력핀을Output Pose의 Result 입력핀에 연결
연결은 다음과 같이 구성해주자

BS_SpiderMove / Pose 출력핀 → Output Pose / Result 입력핀Blend Space 입력값 연결#
BS_SpiderMove에는 앞에서 설정한 두 축이 있다.
| Blend Space 입력 | 의미 | 연결할 AnimBP 변수 |
|---|---|---|
MoveRight | 좌우 이동 입력 | MoveRightValue |
MoveForward | 전후 이동 입력 | MoveForwardValue |
MoveRightValue는 좌우 이동값이므로BS_SpiderMove의MoveRight입력핀에 연결MoveForwardValue는 전후 이동값이므로BS_SpiderMove의MoveForward입력핀에 연결
연결은 다음과 같이 구성해주자
MoveRightValue / 출력핀 → BS_SpiderMove / MoveRight 입력핀
MoveForwardValue / 출력핀 → BS_SpiderMove / MoveForward 입력핀최종 연결 구조는 다음과 같다.

MoveRightValue → BS_SpiderMove / MoveRight
MoveForwardValue → BS_SpiderMove / MoveForward
BS_SpiderMove / Pose → Output Pose / Result구조로 표현하면 다음과 같다.
flowchart TD
Right[MoveRightValue] --> BS[BS_SpiderMove]
Forward[MoveForwardValue] --> BS
BS --> Output[Output Pose]이 단계의 의미#
이전 단계까지는 입력값을 계산하고 AnimBP 안으로 전달하는 구조를 만들었다.
이번 단계에서는 그 입력값을 실제 이동 애니메이션에 반영한다.
이제 MoveRightValue, MoveForwardValue 값에 따라 BS_SpiderMove가 다음 애니메이션들을 자동으로 섞어준다.
| 입력 | 기대 애니메이션 |
|---|---|
| 입력 없음 | Idle |
| W | WalkForward |
| S | WalkBackward |
| A | Walk_L |
| D | Walk_R |
| W + D | WalkForward + Walk_R 블렌딩 |
| W + A | WalkForward + Walk_L 블렌딩 |
이 단계가 완료되면 WASD 입력에 따라 Preview Pawn의 이동 애니메이션이 자연스럽게 전환되는지 확인할 수 있다.
아직 Top_M 마우스 회전이나 Landing 애니메이션은 연결하지 않는다.
먼저 지상 이동용 Blend Space가 정상적으로 동작하는지 확인하는 것이 이번 단계의 목표다.
2.18. 애니메이션 Preview 전용 레벨 생성#
이제
BP_SpiderAnimPreviewPawn을 실제 레벨에 배치해 WASD 입력과 Blend Space 애니메이션 전환이 정상적으로 동작하는지 확인해보자.다만 기존 학습용 레벨인
TestArena에는 이미BP_SpiderRobot,BP_SpiderTrainingManager, Learning Agents 관련 구성이 들어가 있다.
이 상태에서 Preview Pawn까지 같은 레벨에 배치하면, 이후 문제가 발생했을 때 원인을 구분하기 어려워진다.
예를 들어 입력이 동작하지 않을 때 다음 중 어느 쪽 문제인지 헷갈릴 수 있다.
| 가능 원인 | 설명 |
|---|---|
| Preview Pawn 입력 문제 | IMC_SpiderPreview 등록 또는 Auto Possess Player 문제 |
| AnimBP 문제 | ABP_SpiderPreview에서 변수 전달 또는 Blend Space 연결 문제 |
| 기존 학습 구조 문제 | BP_SpiderTrainingManager 또는 Learning Agents 루프와의 충돌 |
| 기존 로봇 Actor 문제 | BP_SpiderRobot과 Preview Pawn이 동시에 존재하면서 입력 대상이 꼬이는 문제 |
따라서 이번 애니메이션 확인 작업은 기존 학습용 TestArena가 아니라, 별도의 Preview 전용 레벨에서 진행해보자
새 레벨 생성#
먼저 새 레벨을 만들어주자
File→ New Level→ Basic→ Save As→ L_SpiderAnimPreview(레벨 이름)이 레벨은 강화학습을 실행하는 레벨이 아니라, 기존 애니메이션과 입력 처리 구조를 확인하기 위한 테스트 레벨이다.
Preview Pawn 배치#
새로 만든 L_SpiderAnimPreview 레벨에 BP_SpiderAnimPreviewPawn을 배치해주자

Content Browser
→ BP_SpiderAnimPreviewPawn
→ 레벨에 드래그 앤 드롭입력 소유 설정 확인#
BP_SpiderAnimPreviewPawn을 선택하고 Details 패널에서 다음 값을 확인해주자

Auto Possess Player(플레이어 자동 빙의) = Player 0이 설정을 해야 Play를 눌렀을 때 플레이어 입력이 Preview Pawn으로 들어간다.
만약 이 값이 설정되어 있지 않으면 IMC_SpiderPreview를 등록했더라도 WASD, Mouse, Space 입력이 Pawn에 전달되지 않을 수 있다.
Preview 카메라 구성#
- WASD 입력과 Blend Space 전환을 확인하려면 로봇을 가까운 위치에서 안정적으로 볼 수 있는 카메라가 필요하다.
- 기본 에디터 카메라나 PlayerStart 기준 시점만 사용하면 로봇의 다리 움직임, 몸체 흔들림, 상부 차체의 회전 상태를 관찰하기 어렵다.
- 따라서
BP_SpiderAnimPreviewPawn안에 Preview 전용 3인칭 카메라를 추가해주자
구성은 다음과 같이 잡아주자
BP_SpiderAnimPreviewPawn
├─ DefaultSceneRoot
├─ SpiderMesh
└─ CameraBoom
└─ FollowCameraCameraBoom은 Spring Arm Component이고, FollowCamera는 Camera Component이다.
Spring Arm을 사용하는 이유는 카메라를 로봇 뒤쪽 일정 거리에서 따라오게 만들기 위해서다. 이렇게 하면 Play 중에도 로봇의 움직임을 뒤쪽에서 안정적으로 확인할 수 있다.
Spring Arm 추가#
BP_SpiderAnimPreviewPawn을 열고 Components 패널에서 Spring Arm을 추가해주자

폰의 뷰포트 화면으로 넘어와서 이후 CameraBoom의 기본값을 다음과 같이 설정해주자

Target Arm Length = 500
Relative Location = X 0, Y 0, Z 160
Relative Rotation = Pitch -10, Yaw 0, Roll 0
Do Collision Test = false각 값의 의미는 다음과 같다.
| 항목 | 값 | 의미 |
|---|---|---|
Target Arm Length | 500 | 로봇과 카메라 사이 거리 |
Relative Location Z | 160 | 카메라 기준점을 로봇보다 약간 위로 올림 |
Pitch | -10 | 로봇을 살짝 내려다보는 각도 |
Do Collision Test | false | Preview 테스트 중 카메라가 바닥이나 로봇 부품에 의해 갑자기 당겨지는 것을 방지 |
처음에는 이 값을 기준으로 두고, 로봇이 너무 크게 보이면 Target Arm Length를 늘리고, 너무 작게 보이면 줄이면 된다.
가까운 시점 = Target Arm Length 감소
먼 시점 = Target Arm Length 증가Camera 추가#
CameraBoom을 선택한 상태에서 Camera Component를 추가해주자

CameraBoom 선택 → Add Component → Camera 컴포넌트→ 이름: FollowCamera이때 FollowCamera는 반드시 CameraBoom의 자식으로 들어가야 한다.
그래야 Spring Arm 끝에 카메라가 붙어서 로봇 뒤쪽 시점을 만들 수 있다.
FollowCamera의 기본값은 다음과 같이 설정해주자
Field Of View = 85
Auto Activate = trueField Of View는 화면에 보이는 범위를 의미한다.
값이 작으면 망원처럼 좁게 보이고, 값이 크면 게임 카메라처럼 넓게 보인다. Preview 단계에서는 로봇 전체 움직임을 보기 위해 80 ~ 90 정도가 적당하다.
입력과 카메라 역할 분리#
현재 IA_Look은 마우스 X/Y 입력을 받아 AimYaw, AimPitch 값을 갱신하도록 구성했다.
이 값은 이후 Top_M 본을 회전시켜 상부 몸체의 자연스러운 회전 범위를 확인하는 데 사용할 예정이다.
따라서 이번 단계에서는 마우스 입력으로 카메라를 회전시키지 않고, 카메라는 고정된 후방 3인칭 시점으로 둔다.
역할을 정리하면 다음과 같다.
| 입력 또는 구성 | 역할 |
|---|---|
CameraBoom + FollowCamera | 로봇을 뒤쪽에서 보는 Preview 카메라 |
IA_Look | Top_M 상부 몸체 회전 테스트용 입력 |
IA_Move | Blend Space 이동 입력 |
IA_Landing | Landing / Jump 계열 입력 테스트 |
이렇게 분리하면 카메라 조작과 상부 몸체 회전 테스트가 서로 섞이지 않는다.
카메라 테스트 기준#
Preview 카메라를 추가한 뒤 Play를 눌러 다음 항목을 확인해보자
| 확인 항목 | 기준 |
|---|---|
| 시작 시점 | 로봇 뒤쪽에서 시작되는가 |
| 로봇 크기 | 화면에 로봇 전체가 적당히 들어오는가 |
| 다리 확인 | 전후좌우 이동 시 다리 움직임이 보이는가 |
| 상부 몸체 확인 | Top_M 주변 상부 차체가 잘 보이는가 |
| 입력 충돌 | 마우스 입력이 카메라 회전과 섞이지 않는가 |
레벨 분리 구조#
기존 학습용 레벨과 애니메이션 Preview 전용 레벨의 역할은 다음과 같이 나눈다.
flowchart TD
TestArena[TestArena<br/>학습용 레벨] --> Robot[BP_SpiderRobot]
TestArena --> Manager[BP_SpiderTrainingManager]
Manager --> LA[Learning Agents 학습 루프]
PreviewLevel[L_SpiderAnimPreview<br/>애니메이션 확인용 레벨] --> PreviewPawn[BP_SpiderAnimPreviewPawn]
PreviewPawn --> Input[WASD / Mouse / Space 입력]
PreviewPawn --> AnimBP[ABP_SpiderPreview]
AnimBP --> Blend[BS_SpiderMove]이렇게 레벨을 분리하면 학습 구조와 애니메이션 확인 구조가 섞이지 않는다.
따라서 WASD 입력, Blend Space 전환, Top_M 회전 테스트를 독립적으로 확인할 수 있다.
테스트 기준#
새 레벨에서 Play를 눌렀을 때 확인할 항목은 다음과 같다.
| 입력 | 기대 결과 |
|---|---|
| 입력 없음 | Idle 애니메이션 |
| W | 전진 애니메이션 |
| S | 후진 애니메이션 |
| A | 좌측 이동 애니메이션 |
| D | 우측 이동 애니메이션 |
| W + D | 전진 + 우측 이동 블렌딩 |
| W + A | 전진 + 좌측 이동 블렌딩 |
| Space | bLandingPressed가 짧게 true가 됐다가 false로 복귀 |