카메라 지지대의 길이를 줄이고
카메라의 위치를 올리고
FOV 값을 많이 줄였다
→ 이제 발이 잘 안보이고 보다 조금 확대가 되었다
// Called every frame
void AShooterCharacter::Tick(float DeltaTime)
{
Super::Tick(DeltaTime);
// Set Current Camera FOV
if (bAiming)// Interpolate to zoomed FOV
CameraCurrentFOV = FMath::FInterpTo(CameraCurrentFOV, CameraZoomedFOV, DeltaTime, ZoomInterpSpeed);
else// Interpolate to defualt FOV
CameraCurrentFOV = FMath::FInterpTo(CameraCurrentFOV, CameraDefaultFOV, DeltaTime, ZoomInterpSpeed);
GetFollowCamera()->SetFieldOfView(CameraCurrentFOV);
}
Tick 함수 내부에서. FInterpTo
함수 를 사용해서 서서히 보간되는 값을 통해서 FOV 값을 수정했다
속도는 Blueprint 에서 혹은 에디터에서 수정을 할 수 있도록 설정했기 때문에 BP 에서 수정이 가능하다.
음 , Tick 함수를 보다 작게 리팩토링하라고 하신다 그래서 나는 함수를 외부로 뺐다, 그런데 강의에서도 똑같이 했다 , 다만 함수명이 CameraInterpZoom
이다
void AShooterCharacter::CameraZoomInOut(const float Deltatime)
{
// Set Current Camera FOV
if (bAiming)// Interpolate to zoomed FOV
CameraCurrentFOV = FMath::FInterpTo(CameraCurrentFOV, CameraZoomedFOV, Deltatime, ZoomInterpSpeed);
else// Interpolate to defualt FOV
CameraCurrentFOV = FMath::FInterpTo(CameraCurrentFOV, CameraDefaultFOV, Deltatime, ZoomInterpSpeed);
GetFollowCamera()->SetFieldOfView(CameraCurrentFOV);
}