본문 바로가기
[ CODING STUDY ]/》언리얼엔진5 공부

언리얼엔진5 30장 [캐릭터 이동, Add movement Input함수, Character Movement, Action Mappings, Delay함수]

by MRG 2023. 2. 16.
728x90
반응형

▣ 안녕하세요. 이번장에서는

키를 누르면 캐릭터가 이동하는 노드, Add movement Input함수, Character Movement, Action Mappings, Delay함수에 대해 공부해 보겠습니다. 

 

▣ 먼저 Content에서 Character과 Game Mode Base를 생성합니다. 

 

▣ Character에 이름은 Player로 Game Mode Base에 이름은 B_GameMode로 지정합니다. 

 

▣ Window 메뉴에 World Settings에 GameMode를 설정합니다. 

GameModeOverride는 아까 생성한 B_GameMode로 지정해 주시고 

Default Pawn Class는 Player로 지정합니다. 

 

▣ 그럼 Player를 씬에 옮기지 않더라도 기본 GameMode와 Pawn에 기본값을 지정했기 때문에 플레이버튼을 클릭하면 

Player에 대한 부분들이 생성되고 아까 우리가 만든 Player로 카메라가 자동으로 가게 됩니다.

다시 말해 GameMode로 게임에 기본 룰을 지정했습니다.

 

▣ 그리고 Player에 들어가서 Body와 Eyes이름에 모양을 만듭니다.

여기서 중요한 건 일반 Actor로 만들 했을 때와 다르게 Mesh와 콜라이더 그리고

Mesh는 캐릭터의 모양을 그려주는 기능, 콜라이더는 충돌, Arrow라는 게 있는데 우리가 보고 있는 방향을 의미합니다.

Eyes 위치를 파란색 방향에 맞춰서 만들어주세요. 

그래야 우리가 키로 캐릭터를 움직였을 때 방향에 맞게 움직 일 수 있습니다.

컴파일 저장 후

 

▣ Project Settings에 Input에 Axis Mappings를 지정합니다. 

MoveForwar 앞, 뒤에 대한 입력,  MoveRightLeft 오른쪽, 왼쪽에 대한 입력을 각각 생성합니다. 

 

▣ Event Graph로 돌아가서 아까 생성한 MoveForward, MoveRightLeft를 검색하여 Axis Evets를 가지고 옵니다.

 

▣ 그런 다음에 오른쪽마우스를 클릭하여 Add Movement Input를 검색해서 함수를 불러옵니다.

그리고 오른쪽마우스를 클릭하여 Get Actor Forward Vector, Get Actor Right Vector 함수들을 검색해서 불러옵니다.

Add Movement Input함수는 왼쪽에 메뉴에 있는 Character Movement에 데이터 함수를 가지고 이동하는 함수입니다. 

여러 가지 기능을 다룰 수 있습니다.

Get Actor Forward Vector함수는 앞뒤에 방향에 대한 백터값,

Get Actor Right Vector함수는 오른쪽 윈쪽 방향에 대한 벡터값입니다. 

Add Movement Input함수에 입력핀 World Diection에 방향에 대한 백터값을

Scale Value에 입력받은 Axis Value값을 연결하고 컴파일 저장을 합니다. 

 

그리고 씬에서 플레이버튼을 클릭하고 W, S, A, D 키를 누르면 앞뒤 좌우 이동하는 걸 확인할 수 있습니다. 

 

▣ 그런데 카메라 위치가 너무 붙어있기 때문에 Player에 ViewPort메뉴에 들어가서 Components메뉴에

Add를 눌러 Spring Arm을 추가합니다. 

Spring Arm는 카메라의 고정대라고 생각하시면 됩니다. 

 

▣ Spring Arm에 카마라를 추가합니다.

 

▣ SpringArm을 클릭해서 Rotation을 조절하여 위로 보이게 회전을 하고

Target Arm Length를 설정하여 카메라의 거리를 조절합니다. 컴파일 저장 후

 

▣ 씬에서 플레이를 해보면 이렇게 카메라 위치가 변경된 걸 확인할 수 있습니다. 

 

▣ 다시 Project Settings에 들어가서 Action Mappings를 생성합니다. 

Attack이라는 이름에 Space Bar로 지정합니다. 

 

▣ Event Graph로 돌아가서 attack라고 검색하면 나옵니다. 이걸 추가하고

 

노드창에서 Delay함수를 검색합니다. 

 

그리고 이렇게 노드를 완성합니다. 컴파일 저장 후

 

▣ 플레이버튼을 클릭하고 Space 키를 누르면 1초 뒤에 Attack!!! 가 출력됩니다. 

 

▣ Action Mappings은 키를 한번 눌렀을 때의 이벤트를 생성합니다. 

키를 누르고 뗄 상태에 대한 흐름을 함수 형식으로 사용이 가능합니다.

 

▣ Delay함수는 말 그대로 딜레이 시켜주는 함수입니다. 

이 함수를 통해서 코드의 흐름을 느리게 할 수 있습니다. 

728x90
반응형

댓글