Unreal 게임 개발 과정 TIL

Today's I Learning

사이드 프로젝트

05.14 사이드 프로젝트 Unreal 크레이지 아케이드) 캐릭터 생성 및 움직임 구현

Sunlight__ 2026. 5. 14. 20:49

 

오늘은 언리얼 본캠프 중 사이드 프로젝트를 진행해 보았다.

팀원 둘과 함꼐 첫 팀 프로젝트를 하는 경험을 쌓고자 간단하게 게임을 하나 만들어 볼 것이다.

에셋과 기본적인 틀은 미리 적용해두었으며 본격적으로 작업을 시작하였다.

 

C++과 블루프린트를 적절히 활용하여 역할 분담으로 캐릭터를 맡아서 하게 되었다.

C++을 활용하여 언리얼 엔진을 활용하는 것은 아직 배우지 않은 부분이기도 하고 어렵기에 이 부분은 바이브 코딩으로 진행하였다.

 

우선 캐릭터 클래스(DDE_Player)를 만들어 주었다.

 

그러자 Visual Studio에 DDE_Player.h 파일과 DDE_Player.cpp 파일이 생성되었다.

그 후 바이브 코딩을 활용해 캐릭터가 크레이지 아케이드 캐릭터처럼 움직일 수 있게 입력하였다.

중요한 점은 캐릭터의 움직임이 캐릭터가 바라보는 방향이 아닌 월드 방향을 기준으로 움직일 수 있게 하였다.

DDE_Player.h

 

그런 뒤 언리얼 에디터로 가서 IA_Move(Input Action)과 IMC_Player(Input Mapping Context)를 만들어주며,

IA_Move는 Value Type을 Axis2D(Vector2D)로 바꿔 주었다.

IMC_Player에서 IA_Move를 등록해 각각 키보드 방향키를 할당해주었으며, 각각 방향에 맞게 설정해주었다. 

 

C++ 클래스를 바탕으로 블루프린트(BP_DDE_Player)를 만들어 주었다. 

IMC_Player와 IA_Move를 연결해준 뒤 캐릭터 스켈레탈 메쉬를 넣어주었다.

 

다만 카메라의 위치가 캐릭터의 정수리만 보이게 되어 있었으므로 Camera Boom의 Rotation을 수정해주었다.

Y 값을 변경해주었다.

또한 가장 중요한 카메라에서 우리가 원하는 원근감이 없는 화면을 원하기에 Projection Mode를 Perspective에서 Orthograpic으로 바꿔주었다.

좌측) Perspective가 적용된 모습 / 우측) Orthograpic이 적용된 모습

 

애니메이션을 적용해주기 위해 Blend Space(BS_Locomotion)을 만들어주었다.

캐릭터 스켈레탈을 적용해 준 후 Horizontal Setting을 조정해주었다.

이름을 Speed로 바꿔주고 맥시멈 스피드를 600으로 해주었다. (플레이어 스피드이기 때문에 더 빠르거나 느리게 하고 싶다면 이것을 조정)

이후 그래프에서 Speed가 0일 때 Idle, Speed가 600일때 Run을 넣어준 뒤 저장해주었다.

 

이것을 바로 적용할 수 는 없으니 ABP_DDE_Player 블루프린트를 만들어서 이곳에 적용해주었다.

이벤트 그래프로 가서 변수 Speed를 Float 형식으로 만들어준 다음 Try Get Pawn Owner -> Get Velocity -> Vector Length -> Set Speed로 연결해 준 뒤 Update Animation과 연결해준다.

그 뒤 AnimGraph로 가서 만들어준 변수 Speed와 BS_Locomotion, Output포즈와 함께 이어준다.

 

컴파일을 해준 뒤 BP_DDE_Player로 돌아와서 캐릭터 메쉬에 적용해 주었다.

 

플레이어가 움직이는 영상을 끝으로 마치겠다.

https://youtu.be/nblsOIXyosw

 

첫 팀 프로젝트인 만큼 계속 긴장되고 팀원들에게 민폐를 끼치면 안된다는 마음으로 정말 열심히 개발에 열중하였다. 잠깐 잠깐 쉴 때도 무언가 미안한 마음이라 쉬는것도 쉬는게 아닌 느낌이었다.