동적인 유도화살

2021. 11. 4. 15:29게임개발

이러한 움직임을 만들었다

점 4개를 이용하는 3차 베지어 곡선을 이용했다

푸른색 원으로 보이는 Gizmos가 점4개이다

점하나가 안보일때가 있는데 플레이어위치와 겹쳐서 그렇다

 

어떻게 만들었는지를 생각해자

현재 개발중인 게임에서 유도화살을 넣을려고 했다 하지만 일반적으로

단지 플레이어를 따라가기만 하는 유도화살은 넣기는 맘에 들지않아서

최대한 화려하고, 많이 움직이는 유도화살을 넣으려고 생각을 했다


일단 궤적을 먼저 생각해보았다

이러한 궤도를 생각했다 이제 궤도를 생각한대로

화살을 유연하게 꺽어야하는데 이때 3차 베지어 곡선을 이용했다

이런식으로 점4개를 이용해 곡선을 만드는 것인데

공식이 이렇다

이 공식을 이용해 이동을 만들었다 그런데 제가 생각한 궤적은 타겟을 두번 통과하게 되는데

이를 구현하려면 한번 타겟을 통과한뒤 점을 새로 업데이트 해줘야 했다

벡터의 뺄셈 연산을 통해 p2에서 p3로 가는 벡터를 만들어준뒤 *2를 해준뒤 p2의 좌표를 해당 벡터만큼 이동해주면

새로운 점 p4를 얻게된다

그후 점이 한개 더 필요한데 이번에는 p1 에서 p3로 가는 벡터를 만들어준뒤 *2 를 해줘서 p1의 좌표를

해당 벡터만큼 이동해주면 새로운 점 p5를 얻게된다

그후 타겟이 움직였다고 가정을해서 그 점을 p6이라고 해보자

그러면 점 4개 p3,p4,p5,p6를 이용해 베지어곡선을 한번 더 써서 또하나의 궤적을 만들 수 있다

개인적으로 만족스러운 결과물이었다