언리얼엔진/구현·실습

언리얼엔진 게임개발 4일차

write76465 2026. 2. 26. 20:54

블루프린트로 캐릭터 조작하게 만들기

 

1) 캐릭터 액터 생성

 

캐릭터를 조작하게위해서 캐릭터 액터에 블루프린트 기능이 들어가있어야한다.

 

컨텐츠 드로어 들어가서 파일안에 우클릭 후 블루프린트 클래스클릭

 

그럼 이 창이 나오고 캐릭터를 클릭

 

요기 메쉬에 None 클릭하면 가지고 있는 캐릭터 파일이 나옵니다. 거기서 사용할 캐릭터 파일 선택

그럼 이렇게 캐릭터가 나오게 됩니다.

 

이제 캐릭터의 시점을 설정해주겠습니다. 

3인칭으로 만들기 위해

화면 왼쪽상단에 add를 누른 후 spring arm 생성,그리고 다시 add 누른 후 카메라 생성(spring arm안에 넣어서 생성)

 

 

요렇게 만들어집니다. 카메라의 각도와 길이도 다 조절 가능 

레벨에 추가된 모습입니다.

 

이제 액터에 움직임을 넣어주겠습니다.

 

2)캐릭터 움직이게 하기

 

먼저 캐릭터의 움직임 w a s d에 단축키를 설정해보겠습니다.

 

inputs파일을 만든 후에

 

inputs폴더 안에서 빈공간 우클릭 후 input 누르고 Input Mapping Context클릭 파일생성

이게 이제 전체 제어를 활성화해주는 input이 됩니다.

 

그리고 저기 Input Action을

클릭 후 움직임, 시점, 점프 등 세세한 동작파일을 만듭니다.

 

 

그런 후에 전체제어를 해줄 IMC파일에 들어가줍니다

 

들어가서 Mapping에 내가 만들어놓은 move, look, jump파일을 전부 넣어줍니다.

 

 

 

move파일을 먼저 설정해줍니다. 각 단축키마다 움직이는 방향을 설정해줍니다.

기본값은 x축 즉 정면으로 움직입니다.

부정은 반대값이므로 뒤로 움직입니다.

Swizzle은 y축 오른쪽으로 움직입니다.

제일 밑은 Y축과 부정을 두개 달았으므로 왼쪽으로 움직입니다.

 

 

마우스와 점프의 설정값입니다. 점프는 언리얼엔진에서 구현된 시스템이 있기때문에 딱히 건드릴것이 없고

마우스는 단축키가 아니라 움직임이기 때문에 마우스모양옆의설정에서 Mouse XY 2D-Axis로 선택해주시면 됩니다.

그리고 우리가 아는 위아래 반전을 주기위해 부정을 걸고 y축에만 적용을 시켰습니다.

 

그리고 Move, Look 액션파일을 클릭해서 Value type을 2D로 변경해줍니다.

이유는 점프를 제외한 움직임은 2차원 움직임이고 마우스 역시 위아래 이동이 불가능하므로 2차원 움직임입니다

마지막 Jump는 단일 움직임이므로 그냥 기본값bool로 설정해놓습니다.

 

3) 캐릭터 블루프린트 설정

움직임을 만들었으므로 이제 캐릭터에 적용시켜보겠습니다.

블루프린트를 이용해 적용하면 쉽게 가능합니다.

 

 

우선 블루프린트 창을열고 BeginPlay에 연결시켜 전체제어를 활성화시켜준다고 생각하면 쉽습니다.

Get Player Controller를 열고 캐릭터의 인덱스번호 0번으로 고정 후에 

Enhanced블럭을 불러와서 AddMapping System과 연결해줍니다. 빨간글씨 있는곳에

아까 만든 input파일 이름을 찾아서 설정해줍니다.

캐릭터 디테일패널에서 possess검색후 player0으로 설정

 

 

이제 input이 활성화되었으므로 아까설정한 세부사항 무브 점프 룩을 설정하겠습니다.

먼저 만든 무브파일이 있는 블럭을 가져온 후 add movement input을 생성 연결해줍니다.(x축용도 y축용도 두개 만들어줍니다.)

그리고 get controller rocation을 생성(마우스가 있는방향을 기준으로하는 블럭입니다.) get foward vector(말그대로 전진),

get right vector(오른쪽)생성 후 무브먼트 인풋에 각각 연결해줍니다. 

로케이션에서 z축부분만 연결한이유는 move는 2차원 움직임이기때문에 위아래로 움직일수없기때문에 굳이 연결하지않았습니다.(연결해도 문제는 없음, 아무것도 바뀌지않음)

점프는 그냥 언리얼 기본시스템에 있기때문에 불러오기만 하면 됩니다.

 

시야를 설정해줍니다. 마우스가 움직이는방향으로 시야를 바꿔주는것인데

3차원에서는 크게 Taw, Pitch, Roll로 나뉩니다. 사람의 머리로 예를 들자면 pitch는 끄덕끄덕 yaw는 도리도리 roll은 갸우뚱입니다.

그렇기때문에 roll은 마우스의 움직임에 필요가 없으므로 yaw input과 pitch input만 불러서 연결해줍니다.

(yaw는 끄덕끄덕이라 x축, pitch는 도리도리라 y축)

 

이것으로 캐릭터액터는 정상작동하는것을 볼수있습니다.

 

4)과제 혼자 레벨디자인해보기

 

간단한 플랫폼 게임을 만들어보는 과제입니다.

 

 

 

처음은 가볍게 계단을 올라가줍니다.

그럼 한번 떨어져주는 구간 있구여

 

무난하게? 서랍을 밟고 쓰레기통도 밟고 올라가줍시다.

 

그럼 앞에 평범한 거대한 망치가 있습니다. 옆에 빛나는 버튼도 있는데 밟아지지만 아무일도 일어나지는 않습니다.

 

이제 저기 공중부양 책상을 밟고 바깥으로 나가보겠습니다.

 

일로 나와서 아래로 떨어져서 왼쪽으로 쭉 돌아갑니다.

 

그럼 요런 발판들이 나오는데 올라가다보면 마지막발판에서 떨어집니다. 일부러 마지막 발판에 콜리젼을 제거해서 밟히지 않도록 설정해놓아주었기 때문입니다.

 

다른쪽 계단을 찾았지만 마찬가지로 똑같이만들어서 올라가지 못하게 해줍니다.

 

 

 

그럼 어떻게 나가야 할까요

아까 첫번째 발판있던곳에 살짝 들어가있는 곳이있습니다. 이 기둥으로 들어가게되면..

처음 게임을 시작했던 장소로 나오게 됩니다.

이상입니다.

 

5) 마무리

좀 더 많은 사물의 상호작용과 움직임을 넣고싶다는 생각을 했습니다.

움직이는 발판, 문열리게하는 버튼 앞으로 조금 더 업그레이드 시켜보도록 하겠습니다.