🔎 ZoomIn / ZoomOut
언리얼 게임 내에서 마우스 휠을 이용한 줌인/줌아웃 기능을 구현해보았다.

먼저, 프로젝트 세팅에서 마우스 휠 축을 이용한 축매핑 입력값을 설정해주고, BP_Player 블루프린트에서 Tick 이벤트에 Zoom에 대한 함수를 호출해주었다.

Zoom 입력값이 들어오면 우선 플레이어의 무기가 활(Bow)인지를 검사하고, 활이 아닌 경우에만 줌 기능을 사용할 수 있도록 하였다. (활은 에임모드가 존재하기 때문)
Zoom 기능구현에 필요한 변수들을 ZoomData라는 구조체로 만들어 사용하였는데, 그 중 Interp Speed라는 변수는 줌인, 줌아웃 시 부드럽게 축소되고 확대되는 보간 기능에 관련된 변수이다.

줌인/줌아웃을 할 때 Interp To 함수를 사용하지 않으면 마우스 휠을 돌릴 때마다 툭툭 화면이 끊기면서 확대/축소되는 모습을 보인다.
또한 줌인/줌아웃은 Spring Arm의 TargetArm Length 값을 변경하여 카메라를 땡기고 늘리는 기능을 통해 구현하였다.
💡 Interp To 함수 (FInterp To, RInterp To, VInterp To)

Interp To 함수는 현재 위치로부터 목표까지의 거리에 도달할 때 보간 속도(Interp Speed)를 적용하여 부드러운 추적 느낌을 구현할 수 있는 함수이다.
Current에 현재의 위치/값을 넣고, Target에 목표 위치/값을 넣은 후, Interp Speed에 보간 속도를 설정하면 된다. 보간 속도가 0이면 부드러운 동작 없이 바로 Target으로 값이 점프된다.
결과적으로 부드러운 줌인/줌아웃 기능 구현이 완료되었다.
![]() |
![]() |
참조
https://docs.unrealengine.com/4.26/en-US/BlueprintAPI/Math/Interpolation/FInterpTo/
FInterp To
FInterp To
docs.unrealengine.com
'🎮Unreal4 > Blueprint' 카테고리의 다른 글
[UE4] 외적(Cross), Sign함수 (0) | 2023.02.14 |
---|---|
[UE4] IK 구현하기 -2 (Two Bone IK(2본IK), 로컬을 컴포넌트로/컴포넌트에서 로컬로) (0) | 2023.02.13 |
[UE4] IK 구현하기 -1 (Feet Data 구조체, Feet Trace) (0) | 2023.02.10 |
[UE4] 활 줄(Bow String) 당기기, UPoseableMeshComponent (0) | 2023.02.10 |
[UE4] UI(UMG), Crosshair, 조준점 추적하기(LineTraceForObjects), Set Visibility (0) | 2023.02.09 |