2026. 2. 27. 21:15ㆍUnreal
캐릭터 애니메이션
움직이기만 하는 캐릭터에게 생동감을 불어넣어줘야한다. 애니메이션 에셋과 블루프린트를 활용해 캐릭터의 상태와 간단한 움직임을 구현하는 것을 해보자.
애니메이션 블루프린트
먼저 애니메이션을 추가해주기 위해서 블루프린트를 생성

콘텐츠 브라우저 > 우클릭 > 애니메이션 > 애니메이션 블루프린트 로 생성한다.
앞에 ' ABP_ ' 로 시작해서 애니메이션 블루프린트를 구분해주는 것도 잊지 않는다.

생성을 누르면 저 창이 나오게 되는데, 애니메이션을 생성할 스켈레톤을 선택해주면 정상적으로 다음과 같이 만들어지는 모습을 볼 수 있다.


오른쪽 아래를 보면, 에셋 브라우저에 다운받은 에셋에서 미리 만들어져 있는 애니메이션을 확인할 수 있다.
여기서 'A_Bot_Idle'을 Anim Graph로 드래그 앤 드랍해주면

이렇게 나오게 되고, Output Pose에 연결 후 컴파일 해주면 왼쪽에 Idle 애니메이션을 확인할 수 있다.

BP_Character 캐릭터의 블루프린트에 가서 애님 클래스에 방금 만들었던 ABP_Character를 등록시킨다.
그리고 실행해보면

Idle 애니메이션이 나오는 모습을 확인할 수 있다.
블렌더 스페이스

폴더를 생성하고 우클릭 > 애니메이션 > 블렌드 스페이스를 생성한다.

그 후 애니메이션과 같이 스켈레톤을 선택하면 생성이 끝나게 된다.

왼쪽의 디테일 패널에서 Axis Settings의 가로축, 세로축을 세팅한다.
세로축인 Speed만 사용할 예정이다.

이 그래프에 Idle, Walk, Run을 배치한다. 맨 아래에는 Idle, 중간엔 Walk, 맨 위엔 Run을 배치하여 스피드의 변화에 따른 애니메이션이 동작하도록 한다.
저 마름모 모양의 오브젝트는 쉬프트를 누른 채 드래그하면 알맞게 배치할 수 있다.
이제 속도를 설정해야 한다.

ABP_Character에 Speed 변수를 Float로 만들어주고

BS_NBC_IdleRun에 Speed를 연결하고 아웃풋 포즈에 연결해준다.

ABP_Character 블루프린트의 이벤트 그래프로 이동해서 스피드를 정의해줘야 한다.
Try Get Pawn Owner > Get Velocity를 통해 캐릭터의 벡터를 가져와 X, Y 축의 수치만을 사용해서 벡터를 생성해준다.
벡터의 길이는 스칼라 값으로 속력을 뜻하기 때문에 이렇게 연결 후 실행해보면

정상적으로 실행된다!
그런데 일반적으로 달리기 기능을 가지고 있는 게임에서는 Shift키를 누르면 달리는 데, 그 기능을 구현 해보려고 한다.

이렇게 생성을 한 후 Value Type은 'Bool'로 한다. 입력을 받는지 안 받는지만 따지면 되기 때문이다.

생성을 마쳤으면 매핑 컨텍스트에 쉬프트키와 함께 매핑한다.
그리고 캐릭터를 설정해주어야 하는데, 이벤트 그래프에서

이런식으로 토글형식으로 만들 수 있다. 쉬프트를 누르기 시작할 때는 달리기 속도에 도달하게 하고, 그 외에는 걷는 속도로 맞춘다.

그걸 위해선 Walk의 스피드는 250

캐릭터의 기본 맥스 스피드도 250으로 설정해주면 된다.

정상적으로 달린다.
액터 이동
EventTick을 활용한 액터의 이동과 회전을 구현해보자.
Trigger Volume을 활용해 간단한 Overlap 이벤트를 구현한다.
회전하는 액터
회전하는 액터(발판)를 만들어보자.
먼저 블루프린트 클래스에서 '액터'를 생성하고 BP_RotationPlatform으로 이름을 정했다.

이벤트 그래프에서 Event Tick과 Add Actor Local Rotation을 연결해서 Z축을 기준으로 돌기 위해 Z축에 연결해준다.
여기서 Velocity라는 변수를 Float로 지정해서 Delta Seconds에 연결해주는 이유는 컴퓨터의 사양에 따른 변화를 주지 않기 위한 절대적인 이동을 위해서 Velocity와 Delta Seconds를 Multiply해준다. 그 후 Velocity의 기본값을 지정한 후 실행해보면,

잘 돌아간다.
상황에 따라 반대 방향으로 돌리고 싶을 수도 있어 반대 방향으로 돌리는 것도 구현하겠다.

Direction 변수를 Bool값으로 선언해서 체크박스에 체크 유무에 따라 시계방향, 반시계방향으로 돌 수 있도록 만드는 블루프린트 코드이다. Direction을 False로 지정하고 돌려보면

반대방향으로 잘 돈다.
이동하는 액터
이동하는 액터를 만들기 위해서 사용할 변수는 총 3개이다.
StartLocation : 액터가 배치된 기본 위치
PlatformVelocity : 액터가 움직일 방향과 속도
MoveDistance : 액터가 움직일 거리

BeginPlay 이벤트에 액터의 기본 위치를 StartLocation 변수에 초기화해준다.

이동은 회전에서 했던 것과 거의 같다. DeltaSeconds에 속도를 곱해준 값을 현재 위치에 더해 Set Actor Location 노드에 입력해준다.
이 노드들을 사용하면 한쪽 방향으로 움직이는 것은 구현된다.


Greater Equal 연산자를 사용해서 현재 액터의 위치가 이동할 거리(Move Distance)보다 크다면 방향을 반대로 바꿔주는 노드들을 추가해준다.

'Unreal' 카테고리의 다른 글
| 언리얼 DAY9 언리얼 블루프린트 정리 (0) | 2026.03.03 |
|---|---|
| 내일배움캠프 Day 6 플랫폼 게임 만들기 (0) | 2026.03.01 |
| 내일배움캠프 DAY4 플레이어 캐릭터 (1) | 2026.02.27 |
| 내일배움캠프 DAY3 블루프린트를 이용한 비주얼 스크립팅 (0) | 2026.02.26 |
| 내일배움캠프 DAY2 언리얼 엔진과 놀아보기 (0) | 2026.02.26 |