프로그래밍 2019. 10. 18. 17:45
728x90

 

쓰다보니 또 길어지는군!

 

내가, 이런 내용들을 블러그에 남기는 이유는

내가 헤맷던만큼, 누군가에게는 도움이 될수 있으리라 여겨서이고,

또 나자신을 위한 것이기도 하다

(되도록 작업과정과, 여러가지 이슈들을 남겨서 

나중에라도 까먹었을때, 다시 참고할 자료가 될수있도록 하기 위해)

 

코드만 보는 것보다, 정리된 글을 읽어보는 것이 꽤 도움이 된다

 

 

자!

2장에서는 힌트가 될만한 내용이 있었다

 

히트스캔처리를 할때, 실제 충돌검사는

cam eye, cam dir 로 한다는것!

방향성에서 절대 어긋날수 없기 때문에, 정확한 결과가 나온다

그러므로, 내부적으로 히트체크를 해줄값은 cam eye ---> cam dir 로 날려서 체크해 주어야 한다

 

정확한 히트체크용값이 있다면,

우리는 날아가는 투사체에 대해 좀더 집중적으로 주제를 좁힐수 있다

즉,

이제, 우리는 draw 되는 투사체의 움직임만을 생각해주면 된다

 

눈에 보이기에 어색하지 않게, 중심으로 향하게 한다는것

즉, 

투사체의 draw 되는 위치를 보정해준다라고 생각을 좁혀보자

 

나의 경우,

오른쪽밑에서 발사된 투사체를, 화면중심라인 위에 올려본다고 생각하니까

쉬운 해결책이 생각났다

 

그래서 단박에 바라던 결과를 얻을수 있었는데,

그 방법은

 

cam eye ---> cam dir 에 걸쳐있는

한 포지션을 타겟포지션으로 두고,

발사된 투사체가 일단 이 포지션으로 이동하도록 한것이다

 

 

 

투사체가 이 포지션에 도착하면, 투사체의 위치를 이 포지션으로 조정해주고

이제부터는 cam dir 로 날아가게 하면 된다

 

draw 보정 타겟 포지션은

cam pos + cam dir * (적정거리) 로 구하면 되는데

이것은 직접 테스트 해보면서 자연스럽게 보이게 거리를 조정하면 된다 

 

이렇게하면, 위든 아래든, 오른쪽이든 왼쪽이든

발사위치와 상관없이

보기에도 그럴듯하고, 정확하게 중심라인을 따라 움직이는 결과를 얻게된다

 

일단, 이렇게 구현해두니

방법도 간단하고,

보기에도 좋고,

결과에 만족한다

 

 

 

 

다른 분들은 어떻게 구현했는지 궁금하군요,

리플 부탁드립니두아~

 

 

 

아! 참고로

오버워치도 완전하지는 않다

 

 

시메트라의 두번째 무기는

총에서 이어지는 광선인데,

이것은 화면중심과 정확히 맞지않게 쏘아진다

 

벽에 바짝 붙어서 쏴보면 아예 중심위치와 거리 차이가 많이 난다

총과 쭉 이어진 광선을 쏘는 것이기 때문에 

draw 보정을 하기 힘들어서 그런걸로 보이는데,

 

 

총에 연결된 빔을 쏘는 자리야의 경우도 마찬가지다

 

 

거리가 떨어지면 슬슬 화면 중심에 맞추어지기 시작한다

 

 

하트 코~옥~! ^^

728x90
posted by BK dddDang
: