소스엔진의 SURF를 구현하기 위해 부단하게 노력했지만 가장 단순하면서 쉽게 구현하려는 방법은 Walking을 쓰는 것이였습니다
사진 설명을 입력하세요.
플레이어는 슬라이딩을 하는 척 하며 Walking 상태로 바닥과 경사를 빠르게 걷다가
어떤 경사로에서 점프하는 척 왔던 속도로 발사하는 식으로 구현하려 했습니다
왜냐하면 Walking 상태는 Z축 속도가 인정되지 않아 고대로 서서히 떨어지기 때문이죠
딛고 있는 경사면의 각도를 인식하는 방법이 없을까 고민하다가도
경사면을 꼭 정확한 방향으로 딛다가 점프하는 보장이 없기에
이동방향 기준 뒤쪽과의 높이를 비교해서 탄젠트로 각도를 구해. 발사하는 방법을 실험중이였습니다
어느정도는 되지만, 문제는 '어느정도’라는 것이였습니다
이론상으론 모든 경사면의 점프 각도를 알아낼 수 있어야 하지만,
어째서인지 저 위의 인식거리 설정을 2000 이상 하지 않으면 작동을 하질 않고,
당연히 2000 미만의 거리에선 경사를 인식 못하거나 아예 마침 뒤쪽에 낭떠러지가 있어
말도안되게 급한 경사를 점프한 줄 알고 하늘로 치솟곤 했습니다
https://blueprintue.com/render/s835o9gb/
수정해야 할 코드지만 일단 공유해봅니다
for test는 그야말로 테스트용이니 신경쓰지 마세요
normalized를 쓰지 않은 게 문제인지도 모르겠습니다
제게 필요한 건 그저 바로 아래 높이와 바라보는 방향으로부터 약 50픽셀 뒤의 높이를 똑바로 인식할 수 있으면 됩니다