본문 바로가기
공부/Unreal Engine 5

[언리얼5] 향상된 입력 마우스휠 값 사용하기(feat.플레이어 카메라거리조절/C++)

by MY블로그 2024. 1. 27.

현재 프로젝트에서 플레이어의 카메라는 스프링암 컴포넌트를통하여 거리가 고정되어있습니다.

게임을 진행하면서 좀더 유연하게 거리조절을 하기위해서 마우스 휠의 입력값을 받아와 TargetArmLength에 값을 더할 수 있도록 해보려 합니다.

 

언리얼 5에서부터는 향상된입력(EnhancedInput)의 사용이 가능하기때문에 내용을 정리합니다.

 

기존에 정리했던 내용을 바탕으로 추가

https://rhksgml78.tistory.com/534

 

[언리얼5] 액션&축 매핑 향상된입력(Enhanced Input)으로 변경하기(feat. C++)

언리얼4까지는 Action Mapping & Axis Mapping (액션 & 축 매핑)으로 플레이어의 입력값을 받아 동작을 진행하였습니다. 하지만 언리얼 5에서부터는 향상된입력기능이 적용 가능하므로 그에 맞추어 기존

rhksgml78.tistory.com

 

1. IA생성 및 IMC에 추가하기

입력액션을 생성합니다. 이때 값의 타입은 Axis1D(float) 입니다.

트리거와 모디파이어는 추가하지 않습니다.

생성한 입력액션을 입력 매핑 컨텍스트에 추가하고 마우스 휠키를 지정합니다.

이때도 트리거와 모디파이어는 추가하지 않습니다.

2. C++코드 추가 및 함수 작성하기

입력액션을 사용할 클래스에 객체를 만들고 함수와 바인딩을 진행합니다.

플레이어 클래스에 UInputAction 객체 선언
WheelAction 객체와 바인딩할 함수 생성
객체와 함수 바인딩

이후 함수에 기능을 만들도록 합니다.

매개변수로 들어오는 Value는 FInputActionValue의 참조형태인데 이때 해당 값을 float 형태로 받아와 임시변수에 넣어주도록 합니다.

 

주의할점은 휠입입력에 따라 들어오는 값이 -1 or 1 이므로 적절한 값을 곱하여 대입해 주도록 합니다.

마우스휠을 위로 올렸을때 줌인이 되려면 값을 반전시켜야하기때문에 -10의 값을 곱하였습니다.

 

또한 카메라가 플레이어보다 앞쪽에 위치하거나 너무멀어지는것을 막기위하여 Clamp를 사용하여 최저거리와 최대거리의 범위를 정해두는 것이 좋습니다.

 

마지막으로 플레이어의 블루프린트 클래스에 UInputAction* WheelAction 선언한 객체에 IA를 넣어주면 완료됩니다.

마우스 휠을 사용한 카메라 거리 조절 테스트

 

댓글