언리얼 엔진/개념 정리

개념 정리 - 캐릭터 생성 및 이동 설정

journey46110 2026. 6. 13. 00:47

I. 캐릭터 생성

1) 블루프린트 클래스

① 블루프린트 클래스 생성

② 부모 클래스 캐릭터 선택

블루프린트 클래스 생성

 

2) 캐릭터 메시

① Skeletal Mesh Asset 선택

- 캐릭터 외형으로 사용할 스켈레탈 메시 지정

SKM_BOT을 선택

 

② 메시 방향 조정

- 메시가 화살표 컴포넌트 방향과 일치하도록 회전값 조정

- 캐릭터의 전진 방향과 메시 방향을 맞추기 위함

 

③ 메시 및 캡슐 크기 조정

- 메시 크기를 적절히 조절

- 캡슐 컴포넌트 크기에 맞게 위치 조정

캡슐 컴포넌트 - 디테일

 

캡슐 컴포넌트

- 캐릭터의 충돌(Collision)을 담당

- 이동 및 물리 판정의 기준이 됨

- 캡슐 절반 높이, 캡슐 반경 값을 조절하여 캐릭터 크기에 맞게 설정

 

II. 카메라 추가

1) 스프링 암(Spring Arm) 및 카메라(Camera) 추가

① 스프링 암 컴포넌트 추가

 

② 카메라 컴포넌트 추가

- 카메라 컴포넌트는 스프링 암 컴포넌트의 자식으로 추가해야 함

- 일반적으로 아래 사진과 같은 구조를 사용

컴포넌트 추가

 

2) 스프링 암 설정

① Target Arm Length 및 위치 조정

- 타깃 암 길이를 통해 캐릭터와 카메라 사이의 거리를 조절

- 스프링 암의 위치를 조정하여 카메라 높이를 변경 가능

카메라의 위치 변경 가능

 

②스프링 암(Spring Arm)의 역할

- 카메라를 캐릭터로부터 일정 거리만큼 떨어뜨려 배치

- 캐릭터를 따라 움직이는 3인칭(TPS) 시점을 구현

- 벽이나 장애물과 충돌 시 카메라를 자동으로 앞으로 당겨 시야를 확보

- 플레이어의 시점 회전을 카메라에 전달 가능

 

3) 카메라(Camera)

- 플레이어가 실제로 보게 되는 시점을 담당

- 스프링 암 끝에 배치되어 캐릭터를 뒤에서 바라보는 시점을 제공

Viewport 우측 하단에 핀 프리뷰가 나타남

 

4) 플레이어 자동 빙의 → Player 0 설정

- 게임 시작 시 PlayerController가 해당 캐릭터를 자동으로 소유(Possess)

- 별도의 Possess 로직 없이 바로 캐릭터를 조작할 수 있음

 

플레이어 자동 빙의

 

 

III. 이동 설정

1) 캐릭터 이동

① 입력 액션 및 입력 매핑 컨텍스트 생성

Input Action(IA) 생성

- 어떤 입력을 받을지 정의

IMC(Input Mapping Context) 생성

- 실제 입력 장치(키보드, 마우스 등)와 Input Action을 연결

입력 액션 및 입력 매핑 컨텍스트

 

② IA_Move 설정

Value Type → Axis 2D (Vector 2D)

- 이동 입력은 X축과 Y축 두 개의 값을 사용

- 전/후 이동과 좌/우 이동을 하나의 입력으로 처리 가능

IA_Move 디테일

 

③ IMC 설정

- WASD 키를 IA_Move에 매핑

IMC 디테일 - 입력 모디파이어 설정

키결과

 

W X = +1
S X = -1 (부정)
A Y = -1 (스위즐 + 부정)
D Y = +1 (스위즐)

 

④ Add Input Mapping 블루프린트 작성

- 플레이어에게 Input Mapping Context를 등록

ADD Input Mapping 블루프린트

처리 흐름

PlayerController를 Player 0에 연결
↓
Enhanced Input Local Player Subsystem
↓
Add Mapping Context
↓
IMC_Default 등록
↓
IA_Move / IA_Look / IA_Jump 사용 가능

 

⑤ Movement Input 블루프린트 작성

- 키보드 입력을 받아 캐릭터를 이동시킴

Movement Input 블루프린트

처리 흐름

IA_Move
↓
Action Value
↓
X 값 실행 / Y 값 실행

 

- X : 전진 / 후진

- Y : 좌측 / 우측

 

역할

- 액터가 바라보는 방향 기준으로 이동

- 이동 방향 벡터를 이용해 캐릭터 이동

 

⑥ 캐릭터 이동 방식 개선

기본 상태

W/S
→ 전진, 후진

A/D
→ 제자리 회전

캐릭터가 바라보는 방향 기준 이동

Movment Input 블루프린트_ver.2

 

개선 후 -> 컨트롤러 회전값을 이용하여 이동 방향 계산

W → 앞
S → 뒤
A → 왼쪽
D → 오른쪽

입력한 방향으로 캐릭터가 회전한 뒤 이동

 

2) 시점 이동

① IA_Look 설정

Value Type → Axis 2D (Vector 2D)

- 마우스 X축, Y축 입력 사용

IA_Look 디테일

 

② IMC 설정

- Mouse XY 2D Axis를 IA_Look에 매핑

IMC 디테일

 

③ Camera Input 블루프린트 작성

- 마우스 입력을 받아 플레이어 시점을 회전시킴

Camera Input 블루프린트

처리 흐름

IA_Look
↓
Action Value
↓
Add Controller Yaw Input / Add Controller Pitch Input

역할

- Yaw : 좌우 회전

- Pitch : 상하 회전

 

④ 자연스러운 TPS 움직임 설정

컨트롤러 회전 피치 사용 = False
컨트롤러 회전 요 사용 = False

 

- 캐릭터가 컨트롤러 회전에 직접 따라가지 않음

둘 다 체크 해제

무브먼트 방향으로 회전 조정 = True

- 이동 방향으로 캐릭터 회전

체크

폰 제어 회전 사용 = True

- 컨트롤러 회전을 카메라에 전달

체크

결과

마우스
↓
카메라 회전

WASD
↓
이동 방향으로 캐릭터 회전
 

- 자연스러운 TPS 조작 방식 구현 성공

 

⑤ 카메라 피치 반전

IMC의 IA_Look 설정

 

Modifier

Negate

Y만 체크

결과

마우스 위로
→ 시선 아래

마우스 아래로
→ 시선 위

 

3) 캐릭터 점프

① IA_Jump 설정

Value Type → Digital (Bool)

- 점프는 On/Off 형태의 입력

- 이동처럼 연속적인 값이 필요 없음

IA_Jump 디테일

 

②IMC 세팅

- Space Bar를 IA_Jump에 매핑

IMC 디테일

 

③ Jump Input 블루프린트 작성

- 키보드 입력을 받아 캐릭터를 점프시킴

 

Jump Input 블루프린트

처리 흐름

IA_Jump Started
↓
Jump()

IA_Jump Completed
↓
StopJumping()

역할

- Started : 점프 시작

- Completed : 점프 종료