출처:
https://superyateam.com/2019/10/29/setting-up-ue4-character-jumps/
점프 높이
위의 비디오에는 높이와 시간에 대한 속도와 중력 의존성을 설명하는 두 가지 중요한 공식이 있습니다.
그리고
여기서 v 0 은 초기 수직 속도, h – 점프 높이, t h – 높이에 도달하는 시간, g – 중력
참고로 UE4에서는 중력 스케일 및 점프 Z 속도 변수를 사용하여 중력 및 초기 수직 속도만 구성할 수 있습니다.
높이와 시간은 이러한 변수에 따라 다릅니다.
완료하는 데 1초가 걸리는 100cm 높이의 점프를 원한다고 가정해 보겠습니다.
그러면 중력은 다음과 같아야 합니다.
또는 UE4의 관점에서 중력 스케일은 0.8163 이어야 합니다.
반면 수직 속도는 다음과 같아야 합니다.
코드 예:
//0.001020375은 계산한 중력값(단위: sec^2)를 언리얼 GravityScale로 변환시켜 주는 매직넘버)
RisingGravity = (-2.f (RisingDistance + GetDefaultHalfHeight() )
/ (RisingSecond RisingSecond)) * -0.001020375f;
RisingUpValue = (2.f * RisingDistance) / RisingSecond;
점프 거리
점프 거리 설정으로 넘어갑시다. 비디오에는 다시 두 가지 공식이 있습니다.
그리고
여기 에서 v x – 수평 속도 및 x h – 점프 피크까지의 거리.
Add Movement Input 을 사용 하여 수평 속도를 제어하므로 v x 는 최대 속도 UE4 변수 와 일치 합니다.
그리고 x h 는 구성할 수 없습니다.
이것이 전혀 작동하는지 다시 확인합시다. 나는 1초 점프를 원하고 120cm 길이입니다.
초기 수직 속도를 변경하지 않고 수평 속도를 조정합니다.
결과: