UnrealEngine/개념

Character(=Pawn)의 AddMovementInput()

K.DJ 2022. 9. 20. 11:26

'메인 플레이어 폰'의 움직임을 제어하는 방법은 크게 2가지로 볼 수 있다.

 

1. Actor의 Location을 직접 조정.(AddActorLocalOffset 등)

2. Character(=Pawn) C++ 클래스에 있는 AddMovementInput을 사용.

 

보통 캐릭터 C++클래스를 만들면 딸려오는 함수인 AddMovementInput 함수로 이동을 구현하였는데,

어느 강의에서도 DeltaTime으로 보정해준다는 말이 없어서 알아보기로 하였다.

(DeltaTime: https://djgameprogramming.tistory.com/28?category=997144) 

 

Delta Time

 언리얼 엔진의 C++ 클래스에서 AddActorLocalOffset, 혹은 SetActorLocation 함수는 해당 액터의 로케이션 값을 변경할 수 있다.  단순 로케이션 변경이라는 결과를 도출할때는 적합하지만 캐릭터의 이동

djgameprogramming.tistory.com

 

Pawn Class에 정의되어있는 AddMovementInput

AddMovementInput 함수는 3가지 파라미터를 갖는 함수다.

첫번째는 이동할 방향값을 저장한 벡터

두번째는 스케일 값

세번째는 MovementInputIgnored() 값을 판단할지에 대한 여부

 

방향 벡터는 크기 1의 단위 벡터, 스케일 값은 방향벡터를 보정해주는 -1~1 사이의 float값, 세번째는 boolean 변수이므로

셋 모두 이동속도에 관여하지는 않는다.

 

AddMovementInput 함수의 정의를 보면 상단에 MovementComponent를 가져오는 것을 볼 수 있는데, 이동속도는 바로 CharacterMovementComponent에 저장되어있다.

 

CharacterMovementComponent에 저장된 이동속도와 공기저항 등 여러 변수에 따라 이동에 관련된 내용을 제어하므로 AddMovementInput을 사용한다면 DeltaTime을 사용하여 이동속도를 제어하지 않아도 된다.