언리얼 FInterp To

FInterp To는 Unreal Engine에서 두 실수(float) 값 사이를 부드럽게 보간(interpolation)하여, 값이 한 번에 목표값(Target)으로 “점프”하지 않고, 매 프레임마다 조금씩 천천히 목표값에 가까워지도록 만드는 함수입니다. 주로 캐릭터의 움직임, 카메라의 회전, UI 애니메이션 등에서 자연스러운 변화 효과를 줄 때 사용합니다.


동작 원리

  • Current: 현재 값 (예: 카메라의 현재 위치, 현재 크기 등)
  • Target: 도달하고 싶은 목표 값
  • Delta Time: 프레임 간 시간(일반적으로 Tick 이벤트의 Delta Seconds 사용)
  • Interp Speed: 얼마나 빠르게 목표값에 도달할지 결정하는 속도 값

FInterp To의 내부 공식은 대략 아래와 같습니다.

Return Value=Current+(Target−Current)×(Interp Speed×Delta Time)

이렇게 계산된 값은 Current와 Target 사이의 중간값이며, Interp Speed가 클수록 더 빠르게, 작을수록 더 천천히 Target에 접근합니다.


특징 및 사용 예시

  • 부드러운 변화: 값이 한 번에 바뀌지 않고, 점진적으로 변화하여 자연스러운 연출이 가능.
  • 프레임 기반: Delta Time을 사용해 프레임 속도에 상관없이 일정한 속도로 변화.
  • Current와 Target 반복 사용: 매 프레임마다 이전 결과값을 Current로 넣고, Target은 고정 또는 변화하는 값으로 설정.

예시: 카메라 줌, 캐릭터의 회전, 오브젝트의 크기 변화 등.


FInterp To vs Lerp (선형 보간) 비교

기능FInterp ToLerp (Linear Interpolation)
입력 값Current, Target, Delta Time, Interp SpeedStart, End, Alpha(0~1)
결과점진적으로 Target에 가까워짐Start~End 사이의 지정된 비율 위치 반환
주 사용 방식매 프레임 반복 호출로 자연스러운 움직임 구현한 번의 계산으로 특정 위치 반환
속도 조절Interp Speed로 조절Alpha 값으로 조절

실제 사용 흐름

  1. 매 프레임(Current, Target, Delta Time, Interp Speed) 입력
  2. FInterp To로 새 값 계산
  3. 결과를 Current에 다시 저장(다음 프레임에 사용)
  4. Target에 도달할 때까지 반복

언리얼 엔진에서 FInterp To를 활용한 카메라 줌 인/아웃 구현 방법

언리얼 엔진에서 카메라 줌 인/아웃 효과를 자연스럽게 구현하려면, Spring Arm 컴포넌트의 Target Arm Length(또는 카메라의 FOV)를 조절하는 것이 일반적입니다. 이때, 값의 변화가 부드럽게 이루어지도록 FInterp To 노드를 사용하면 됩니다67.


구현 기본 흐름

  1. 입력 처리
    • 마우스 휠 입력(Zoom In/Out)을 받아줍니다.
    • 예: Input Axis 이벤트로 Zoom 값을 받음
  2. 목표값(Target) 계산
    • 현재 Spring Arm의 Target Arm Length(또는 FOV)에 Zoom 입력값을 곱해 목표값을 설정합니다.
    • 예: Target Arm Length ± (Zoom 입력값 × Zoom Speed)
  3. FInterp To로 부드럽게 보간
    • 현재 Target Arm Length와 목표값(Target)을 FInterp To에 입력, Delta Time과 Interp Speed를 함께 넣어줍니다.
    • 결과값을 다시 Target Arm Length에 할당합니다.
  4. 최소/최대 값 제한
    • Clamp 노드로 최소/최대 줌 거리를 제한합니다.

블루프린트 예시

  1. Spring Arm 컴포넌트 추가
    • 카메라가 Spring Arm에 부착되어 있어야 함
  2. Zoom 입력 처리
    • Input Axis(예: “Mouse Wheel Axis”) 이벤트 생성
    • Zoom 입력값을 ZoomSpeed(예: 200)와 곱해 Target Arm Length 목표값 계산
  3. FInterp To 사용
    • FInterp To 노드에
      • Current: 현재 Target Arm Length
      • Target: 목표 Target Arm Length
      • Delta Time: Tick의 Delta Seconds
      • Interp Speed: 부드러움 조절(예: 5~10)
    • 결과값을 Clamp로 제한(예: 300~1200)
    • Set Target Arm Length로 할당

간단한 블루프린트 논리 흐름

  • Event Tick (또는 Zoom 입력 이벤트)
    • 목표 Target Arm Length 계산
    • FInterp To로 보간
    • Clamp
    • Set Target Arm Length

실제 적용 시 팁

  • Interp Speed 값이 높을수록 빠르게, 낮을수록 천천히 목표값에 도달
  • Tick마다 FInterp To를 호출해야 부드러운 변화 가능
  • Spring Arm 대신 카메라의 FOV를 조절해도 같은 방식 적용 가능

정리

  • 마우스 휠 입력 → 목표 거리 계산 → FInterp To로 현재 거리와 목표 거리 보간 → Clamp → 적용
  • 이렇게 하면 카메라 줌 인/아웃이 자연스럽고 부드럽게 구현됩니다.

Spring Arm의 Set Target Arm Length와 FInterp To를 조합하면, 사용자가 줌 인/아웃을 할 때 카메라가 한 번에 이동하지 않고, 자연스럽게 이동하는 효과를 얻을 수 있습니다.

FInterp To는 Unreal Engine에서 값의 변화가 자연스럽고 부드럽게 이루어지도록 도와주는 보간 함수입니다. Delta Time과 Interp Speed를 조절해 원하는 속도로, 목표값에 점진적으로 접근하는 효과를 낼 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Back to top