Unreal Engine/기능 구현 / / 2025. 10. 16. 01:54

[Unreal Engine 5] Zoom In, Zoom Out

반응형

마우스 휠업을 하면 캐릭터와 가까워지고, 휠 다운을 하면 캐릭터에서 멀어지는 기능을 구현한다면,

캐릭터에 부착된 Spring Arm Component의 Target Arm Length를 조절하면 된다.

저 빨간 줄이 Target Arm Length다.

 

C++ 코드로 보면

저걸 조절해주면 되는데, 

 

Enhanced Input 설정이 끝났다는 가정하에 Input Action과 Bind Action만 설명한다.

 

1. 캐릭터나 플레이어 컨트롤러에 ZoomAction 을 추가하고 Zoom 함수를 만든다.

 

 

2. BindAction을 통해 입력처리를 할 콜백 함수를 설정한다.

여기서 트리거 이벤트는 Triggered로 한다. 입력이 들어올 때마다 호출되어야 하니까.

 

 

3. Zoom 함수를 정의한다.

if문은 캐릭터에서 Spring Arm Component를 가져오기 위한 과정이고, 

실제 코드는 세 줄이다.

 

3-1. ZoomAction을 통해 들어온 값을 float으로 처리한다. 

- 10을 곱한 이유는 휠업 한번에 1씩 가까워지니까 하루종일 휠 돌리고 있어야 해서... 10을 곱해도 조금 느리다.

 

3-2. (선택사항) 캐릭터가 가지고 있는 타겟 암 길이를 가져온다.

3-3. FMath::Clamp 함수를 통해 최소 값과 최댓값의 범위를 지정해준다.

- 현재 타겟 암 길이가 400인데 너무 가까워지면 캐릭터를 뚫고 가고, 너무 멀어지는 것 또한 게임에서 제공하는 기능으로 적절하지 않다고 판단했다. 길이 조절은 자유

 

 

4. 에디터에서 Input Action 생성

 

값 타입은 float

 

매핑 컨텍스트에서 설정

휠 업하면 가까이 가야하므로 음수로 처리해야해서 부정

 

이제 캐릭터 또는 플레이어 컨트롤러에서 인풋 액션 지정

 

결과

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유