본문 바로가기

언리얼레퍼런스/캐릭터애니메이션

RPG 게임처럼 캐릭터 움직임 구현

https://leekangw.github.io/posts/20/

 

[UE4] RPG 게임처럼 캐릭터 움직임 구현

3인칭 RPG 게임에 자주 사용하는 카메라 회전을 만들어보자

leekangw.github.io

[UE4] RPG 게임처럼 캐릭터 움직임 구현

3인칭 RPG 게임에 자주 사용하는 카메라 회전을 만들어보자

참고 자료

언리얼 엔진 문서 - 캐릭터 동작 함수 구현

1. Input 세팅

  • Project Setting  Engine - Input 에서 확인이 가능하다.
  • Scale 값을 조절해서 정방향과 역방향에 대한 키 Value를 세팅한다.

2. C++ 코드로 세팅 연결하기

  • 캐릭터의 움직임을 만들기 때문에 부모 클래스를 Character로 하여 C++ 클래스로 생성
  • 미리 구현되어 있는 SetupPlayerInputComponent(UInputComponent* PlayerInputComponent) 메소드를 이용하여 세팅 값을 연결한다.
 
   

3. 수행할 메소드 구현

BindAxis메소드의 3번 째 파라미터에서 Input 값을 이용해 수행할 메소드를 보냈고,
이 메소드를 통해 Input 값을 이용하여 캐릭터에 움직임을 부여할 수 있다.

 
   

FRotationMatrix 란?

FRotationMatrix에 대한 내용이 자세하게 적힌 것이 없다 보니 여러 글들을 읽고 나름대로 정리를 해보았다.

위에서 Controller->GetControlRotation()을 통해 현재 Rotation 값을 가져오고
그 값을 FRotationMatrix를 통해 회전 행렬로 값을 변환한다.

변환된 회전 행렬에서 원하는 Axis(축)을 구할 수 있는데 언리얼 엔진에서는 X축이 전후방, Y축이 좌우를 담당하고 있다. 

그러므로, MoveForward 메소드에서 GetUnitAxis(EAxis::X)를 통해 전방의 방향인 X축 방향을 구할 수 있고,
MoveRight 메소드에서 GetUnitAxis(EAxis::Y)를 통해 우측 방향인 Y축 방향을 구할 수 있다.

4. 결과

카메라 움직임이 적용되어 있습니다.