티스토리 뷰



1. 애니메이션 블루프린트(Animation Blueprint, ABP) 정의 :
- 스켈레탈 메시(Skeletal Mesh)의 애니메이션 로직, 상태 전환(State Machine), 이벤트(Event Graph)를
시각적으로 설계하는 시스템
- 캐릭터 속도, 방향, 상태(공격/피격 등)에 따라 애니메이션을 재생할지 결정
ABP의 그래프 구성
| 그래프 | 역할 |
| Anim Graph | 상태 전환(State Machine)과 블렌드 로직을 연결, 최종 캐릭터 포즈 결정 |
| Event Graph | 캐릭터 속도, 방향, 입력 값 수집 → 애니메이션 변수 업데이트 |
애니메이션 에셋 종류
| 에셋 | 설명 |
| Animation Sequence | 단일 모션(걷기, 뛰기, 공격 등) |
| Animation Montage | 여러 시퀀스를 이벤트별로 합성, 재생 (특정 이벤트용) |
| Blend Space | 여러 시퀀스를 축(X/Y) 값에 따라 자연스럽게 섞어 재생 (걷기↔뛰기 등) |
애니메이션 적용 순서
1. 콘텐츠 브라우저에서 ABP 생성 → 스켈레톤 선택 → 이름 설정
2. 애니메이션 시퀀스를 Anim Graph의 Output Pose에 연결
3. 캐릭터 블루프린트(BP_Character)에 ABP 등록 → 적용 확인
2. 블렌드 스페이스(Blend Space)
걷기, 뛰기 등 서로 다른 애니메이션을 파라미터 값(예: Speed)에 따라 자연스럽게 연결
2-1. 블렌드 스페이스 생성
Anim 폴더 → Blend Space 생성 → 스켈레톤 선택 → 이름 설정
축 설정(X/Y), 이번 예제는 Y축 = Speed
애니메이션 배치:
- Speed = 0 → Idle
- Speed = Max → Run
Shift/ Ctrl 키로 정렬 및 프리뷰 가능
3. 스테이트머신(State machine)
상태(State) + 기계(Machine) → 이벤트에 따라 상태가 전환되는 시스템 (예시: 신호등, 자판기 등)
3-1. 속도값 수집
Event Graph에서 Try Get Pawn Owner → Get Velocity → 벡터 길이 → Speed 변수에 저장
Speed 변수를 블렌드 스페이스 Y축과 연결
3-2. 스테이트머신 적용
Anim Graph → Add New State Machine
내부에서 State 추가 → Idle, Run 생성
Idle → A_Bot_Idle, Run → Blend Space 연결
트랜지션 룰 설정 :
- Idle → Run: Speed > 0
- Run → Idle: Speed ≤ 0
3-3. 점프값 수집
Character Movement Component → IsFalling → IsInAir 변수 생성
Sequence 노드로 Speed + IsInAir 동시에 업데이트
3-4. Jump, Fall, Land 상태
| 상태 | 애니메이션 | 트랜지션 조건 |
| Jump | A_Bot_Idle_Jump | IsInAir = true |
| Fall | A_Bot_Fall | Jump 후 자동 전환 |
| Land | A_Bot_LandIdle | IsInAir = false, 자동 전환 |
| Idle/Run | A_Bot_Idle / Blend Space | 기본 상태 |
정리 & 핵심 포인트
ABP → 캐릭터 애니메이션 로직 시각적 설계
Blend Space → 여러 애니메이션을 자연스럽게 연결
State Machine → 여러 상태 관리 및 조건부 전환
Event Graph → 매 프레임 입력/속도/점프 등 변수 업데이트
Speed, IsInAir 등 변수를 잘 활용하면 캐릭터 움직임이 부드럽고 자연스러워진다.
캐릭터 이동 구현 (Part 2)
| 구분 | 내용 |
| 1. 오늘 배운 개념 요약 | - Character Movement Component는 언리얼의 기본 캐릭터 클래스에 포함된 이동 제어 컴포넌트로, 걷기 속도, 점프 높이, 중력 설정 등을 세밀하게 조정할 수 있음. - Spring Arm + Camera 시스템을 통해 카메라가 캐릭터를 자연스럽게 따라다니며 회전하도록 설정 가능. - InputAction Jump를 사용하면 블루프린트 노드만으로 손쉽게 점프 동작을 추가할 수 있음. - 회전과 점프, 속도 조절은 모두 캐릭터 컨트롤의 자연스러움에 직접적인 영향을 주므로 실무에서도 자주 조정하는 요소임. |
| 2. 구현 과정 요약 | [Step 1] 점프 기능 추가- Project Settings → Input → Jump(기본 Spacebar) 확인- MyCharacter 블루프린트 → Event Graph → InputAction Jump → Jump() / StopJumping() 노드 연결 [Step 2] 이동 속도·점프 높이 조정 - Character Movement 컴포넌트 선택 - Max Walk Speed: 600 → 800 - Jump Z Velocity: 700 → 900 [Step 3] 카메라 회전 설정 - Spring Arm: Use Pawn Control Rotation ✅ - Camera: Use Pawn Control Rotation ❌ - Class Defaults: Use Controller Rotation Yaw ✅ [Step 4] 테스트 플레이- WASD 이동 + 마우스 회전 + Space 점프 확인 - 캐릭터가 회전하면서 자연스럽게 이동 및 점프 동작 수행 |
| 3. 느낀 점 & 개선하고 싶은 점 | - 점프와 회전 기능을 직접 연결해보면서 캐릭터 조작 구조를 명확히 이해할 수 있었다. - Character Movement의 파라미터를 변경할 때 작은 수치 차이에도 움직임의 느낌이 크게 달라지는 점이 흥미로웠다. - 기본 Third Person 카메라보다 약간 더 부드럽게 회전하도록 Spring Arm Length나 Camera Lag 옵션을 조정해보고 싶다. |




'내일배움캠프 Unreal_7기 > 사전캠프' 카테고리의 다른 글
| 사전캠프 TIL - 8일차 (0) | 2025.11.12 |
|---|---|
| 사전캠프 TIL - 7일차 (0) | 2025.11.11 |
| 사전캠프 TIL - 5일차 (0) | 2025.11.07 |
| 사전캠프 TIL - 4일차 (0) | 2025.11.06 |
| 사전캠프 TIL - 3일차 (0) | 2025.11.05 |

