캐릭터를 구현하고 인풋 넣기
프로젝트를 새로 생성하고 강의 실습용 자료를 다운받아서 임포트를 한다.

스켈레탈 메시는 3D 모델이 가지고있는 뼈대의 구조를 나타내는 애셋이다.
캐릭터 블루프린트를 생성하고 스켈레탈 메시를 추가하여 다운 받은 스켈레탈 메시 애셋과 머티리얼을 적용한다.





시작 시 유저가 컨트롤러로 캐릭터를 제어할 수 있도록 Controller를 Posses 한다.

Possess 노드의 InPawn 핀을 끌어 this를 검색하면 Self(캐릭터)가 나온다.
입력(Input)과 매핑(Mapping)
입력 액션(Input Action)을 생성한다.

점프는 키를 누름과 안누름을 판단해야 하므로 값 타입을 Digital로 하고 트리거를 눌림으로 설정한다.


입력 매핑 컨텍스트(Input Mapping Context)를 생성한다.

매핑이란 어떤 키에 어떤 입력이 들어갈 지 정하는 것이다.
매핑을 추가하고 방금 만든 IA_Jump를 넣어준다.


IA_Jump를 키보드의 스페이스 바 키로 지정해준다.

블루프린트에서 우클릭 후 IA_Jump를 검색하면 IA_Jump의 트리거를 발생 시 이벤트가 일어나는 노드를 생성할 수 있다.


캐릭터 액터에는 점프하는 기능의 노드가 기본적으로 저장되어있다.

여기까지 하면 스페이스 바를 누를 시 캐릭터가 점프를 한다 라는 규칙을 만들었지만
플레이어의 입력이 이 규칙을 따라가야 한다 라고 지정을 해줘야한다.


Add Mapping Context 노드로 만들어둔 IMC_Main을 불러와준다.

현재 상태로 실행을 하면 시점이 1인칭으로 된다.

스프링 암과 카메라를 캐릭터에 붙여서 시점을 3인칭으로 바꿔준다.


카메라 컴포넌트를 추가한 후 블루프린트에서 이 카메라를 활성화 시켜줘야한다.

카메라와 스프링 암의 설정을 조절 하여 시점을 원하는대로 바꿔준다.

캐릭터가 앞뒤좌우로 움직이도록 구현해보자.
IA생성후 값 타입을 2D(x, y), 트리거를 다운(누르는 동안)으로 설정한다.

IMC에서 매핑 추가를 하고 만든 IA_Move를 넣고 키를 4가지 사용하기 위해 +를 눌러 4개 추가하고 w,a,s,d를 넣어준다.

모디파이어를 이용하여 입력된 값들을 방향에 맞게 바꿔준다.
모디파이어는 입력을 1, 비입력을 0으로 봤을 때 이것을 두 개의 축으로 분리해 준다던가 값을 반전시켜 입력을 -1로 바꿔준다가 등 수정을 해주는 역할이다.
w는 앞으로 가야하므로 x값이 1(모디파이어 None, 추가를 안해줘도 된다.)

s는 뒤로 가야하므로 x값이 -1(모디파이어 부정)

a는 왼쪽으로 가야하므로 y값이 -1(모디파이어 부정, 스위즐 입력 축 값)

d는 오른쪽으로 가야하므로 y값이 1(스위즐 입력 축 값)

스위즐 입력 축 값은 X축의 값을 Y축으로 변환해 주는 것이다.
블루프린트에서 IA_Move노드를 생성한다

캐릭터 무브먼트 컴포넌트를 드래그하여 배치하고 Add Input Vector 노드를 생성한다.

IA_Move의 Action Value를 핀 분할 해주어 X, Y값을 따로 출력할 수 있도록 하고 Add Input Vector의 World Vector도 X Y값만 받도록 핀 분할을 하여 각 연결해준다.



이제 마우스의 움직임에 따라 카메라의 시점이 변하도록 구현해보자.
마우스의 입력을 받을 IA를 만들고 값 타입을 2D로 설정한다.

IMC에서 IA_Look을 추가하고 마우스 XY 2D축의 값을 받도록 한다.

마우스를 X축으로 움직였을 때 시점은 Z축 기준으로 회전하기 때문에 마우스의 X값을 Yaw(Z축)값으로

마우스를 Y축으로 움직였을 때 시점도 Y축 기준으로 회전하기 때문에 마우스의 Y값을 Pitch(Y축)값으로 받도록 한다.

Y값에 -1을 곱한 이유는 마우스를 위로 올릴 때 시점도 위로 가도록 하기 위함이다. 반대의 효과를 원할 시 안곱해도 된다.
마우스를 위 아래로 움직일 때 캐릭터도 같이 돌아가는 현상이 발생한다.

캐릭터 - 디테일 - 폰 - 컨트롤러 회전 피치 사용 체크를 해제해주면 해결된다.


마지막으로 남은 문제가 한가지 있는데 wasd를 누를 때 캐릭터 기준이 아닌 월드의 기준으로 움직이게 된다.
이를 해결하기 위해 입력값에 액터의 Forward Vector와 Right Vector를 곱하여 액터의 기준으로 움직이게 구현할 수 있다.

'3D 게임 개발이 처음이어도 언리얼 블루프린트로 쉽게 배우는 3D 게임' 카테고리의 다른 글
| 13일차 250730 (강의 3-3) (0) | 2025.07.30 |
|---|---|
| 13일차 250730 (강의 3-2) (0) | 2025.07.30 |
| 12일차 250729 (강의 2-4) (0) | 2025.07.29 |
| 12일차 250729 (강의 2-3) (0) | 2025.07.29 |
| 12일차 250729 (강의 2-1, 2-2) (0) | 2025.07.29 |
