언리얼/언리얼 C++

언리얼 구형 입력 시스템

monstro 2024. 9. 21. 19:50
728x90
반응형

이번 포스트에서는 언리얼 엔진의 구형 입력 시스템에 대해 알아보겠습니다.

언리얼 엔진 5.1 부터는 향상된 입력 시스템(Enhenced Input System)이 도입되었지만,

그 이전의 버전에서는 구형 입력 시스템이 사용된 경우가 많기에 구형 입력 시스템도 알아두는 것이 좋습니다.

 

1) 구형 입력 시스템의 처리

구형 입력 시스템에서 플레이어의 입력은 PlayerController를 통해 Pawn에 전달됩니다.

Pawn은 나중에 관련 포스팅을 작성하겠지만,

언리얼 오브젝트의 기본인 Actor에서 이동과 같은 움직임이 추가된 것이라고 생각해주시면 됩니다.

 

이때 들어온 입력은 PlayerController에서 처리하거나 Pawn이 처리하게끔 결정할 수 있지만,

PlayerController에서는 입력외의 많은 정보를 처리하므로 일반적으로 Pawn에서 처리하는 것이 좋습니다.

 

2) 처리 절차

구형 입력 시스템의 절차는 다음과 같습니다.

 

 

이제 예제를 통해 구형 입력이 어떻게 처리되는지 한번 알아보겠습니다.

 

3) 예제

구형 입력 시스템에서는 시스템을 적용하기 전에 입력에 사용할 축을 지정해주어야 합니다.

축의 지정은 다음과 같습니다.

 

상단의 Edit -> Project Settings -> Input에서 축을 설정할 수 있습니다.

현재 예제에서는 위에서 보았을 때의

상 하 좌 우 의 4가지 방향을 구현할 것이므로 Axis Mappings에서 다음과 같이 설정하겠습니다.

 

 

각각 W - 상, A - 좌, S - 하, D - 우에 대응됩니다.

이때 Scale은 각각의 입력값에 해당됩니다.

 

이제 코드 영역으로 넘어가겠습니다.

 

 

위와 같은 로직으로 구성되며 실행결과를 알아보겠습니다.

 

 

위와 같이 잘 실행되는 것을 확인할 수 있습니다.

그런데 만일 스킬의 사용이나, 점프와 같이 축으로 판단하는 것이 아닌 실행여부로 판단하는 입력은 어떻게 처리할까요?

 

이를 위해 언리얼 엔진에서는 BindAction이라는 함수를 제공합니다.

이번에는 이벤트를 발생시키는 입력에 대해 예제로 알아보겠습니다.

 

 

이벤트 입력 역시 기존의 Axis Mapping 처럼 실행시킬 입력을 연결해주어야 합니다.

다음으로 로직으로 넘어가겠습니다.

 

 

 

 

 

로직은 위와 같이 구성하였습니다.

이제 실행결과를 확인해보겠습니다.

 

 

화면 좌측 상단에 입력한 키의 이름이 문제없이 출력되는 것을 확인할 수 있습니다.

구형 입력은 새로이 추가된 향상된 입력에 비하면 단점이 많지만, 구형 입력으로 구현된 프로젝트에도 대응할 수 있게

구형 입력을 알아놓는 것도 중요합니다. 다음 포스트에서는 구형입력을 개선한 향상된 입력에 대해 알아보겠습니다.

728x90
반응형