TPS 개발일지 20 - LineTrace 이용 3인칭의 오류 해결

Taegang Yun·2023년 11월 7일
1

3인칭에는 문제가 있다. LineTrace는 보통 카메라의 정중앙(화면 가운데)에서, 정해준 range 만큼 forward vector 앞으로 line trace를 발사한다.

그래서

이 장면에서, 원래는 맞지 않아야할 상자가 맞게 된다.

"원래는 맞지 않아야할" 이 무슨 뜻이냐고?

원래는 화면 가운데가 아닌, 총구에서 총알이 나오니까 원래는 벽에 막혀 맞지 않아야 한다.

따라서, 이를 해결하고자 처음엔 총의 static mesh에 소켓을 달아서 해당 소켓에서 카메라 정중앙 앞으로 line trace를 발사했다.

근데, 이렇게 하면 이상하게 총이 화면 왼쪽에 있어서 총의 끝 trace가 정중앙 크로스헤어로부터 왼쪽으로 치우친다. 음.. 이건 진짜 아니다.

그래서 고민고민하다가

그냥 line trace를 두 번 발사하는 것으로 했다. 그니까 검사를 한 번 하는 것이다.

우선 먼저 line trace를 카메라 중앙에서 발사한다. 그리고 hit된 location과 actor를 저장하고, 총에서 해당 location으로 line trace를 발사한다.

만약 hit된 액터가 같다면, 데미지를 입혀야 한다. 왜냐, 그것은 정말 총알을 "맞았다"라고 할 수 있다.

하지만 같지 않다면, 총으로부터 발사된 line에 hit된 액터가 정말 hit된 액터가 되는 것이다.

후에, 총이 벽 등에 맞았을 때 효과를 만들기 위해선, 정말 hit된 location 또한 저장해 놓아야 할 것이다.

이렇게 총에서 나가는 것과, 카메라에서 나가는 것이 동일하면 된다.

이렇게 벽에 총알이 닿을 땐 상자가 터지면 안 되고, 같을 때 터지게 말이다!!

해~결!

찾아보니까 많은 사람들이 3인칭에서의 이 문제로 많이 고생했다고 한다.
난 생각보다 쉽게 고친 것 같다 ㅎㅎ

많은 유튜브에서도 그냥 총을 화면 중앙으로 쏘는 것만 알려주지, 이런 건 안 알려주더라.
이런게 가장 중요한 것 같은데....

profile
언젠간 전문가가 되겠지

1개의 댓글

comment-user-thumbnail
2023년 11월 9일

캬아 멋져요 EZ하게 해결한..

답글 달기