UE4

[UE4] Pawn & Character

Honey Badger 2022. 9. 30. 19:59

폰(Pawn)이란?

폰은 움직이는 액터에 조종당하는 기능이 추가된 액터다. 자동차가 될 수도 비행기가 될 수도 인간이 될 수도 있다. 내가 설정한 입력 세팅을 폰의 함수와 Binding 했다면, 이를 폰의 움직임으로 활용해야 한다.

 

폰의 움직임

  PawnMovementComponent의 AddMovementInput()를 사용하면 -1부터 1사이의 입력 값을 PawnMovementComponent에 전달해서 폰을 움직이게 만든다. 자동차에 비유하자면 PawnMovementComponent는 엔진이고 AddMovementInput()명령은 운전석의 인터페이스라 할 수 있다. 이 명령에 들어가는 Scale값은 액셀을 밟는 세기를 의미한다. AddMovementInput()에는 추가로 이동할 방향을 WorldDirection에 지정해야 한다. 핸들에 비유할 수 있는데, 월드 좌표계를 기준으로 하는 방향벡터데이터를 전달해줘야 한다. 이는 GetActorForwardVector() 를 사용해 가져올 수 있다. 

AddMovementInput(GetActorForwardVector(), NewAxisValue);

 

캐릭터(Character)란?

언리얼 엔진에서는 인간형 폰을 좀 더 효과적으로 제작하기 위한 특수한 모델을 제공하는데 이를 캐릭터 (Character) 라고 한다. ACharacter의 선언을 보면 APawn 클래스를 상속받고 있고, Capsule, SKeletalMesh 컴포넌트를 사용하고 있음을 알 수 있다. (또한 움직임을 CharacterMovement라는 컴포넌트를 사용해 관리하고 있다. 

 

캐릭터의 움직임 (폰과 다른 장점)

  캐릭터모델은 폰모델과 다르게 CharacterMovement 컴포넌트를 사용한다. 이 컴포넌트는 FloatingPawnMovement에 비해 장점을 가지는데 중력을 반영한 움직임을 제공하고, 다양한 움직임을 설정할 수 있다. (걷기 , 기어가기, 날아가기, 수영) 또한 현재 움직임에 대한 더 많은 정보를 전달해주고 멀티 플레이 네트워크 환경에서 캐릭터들의 움직임을 자동으로 동기화해준다.