https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=129978&search_head=10&page=1

응애일지 - 장애물 회피(3) - 인디 게임 개발 마이너 갤러리

https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=129977&page=1 응애일지 - 장애물 회피(2) - 인디 게임 개발

gall.dcinside.com


3편에서 이어짐

괜히 동영상 세 개 제한 걸릴 바에 걍 GIF로 올리면 되는데 왜 그 생각을 안 하고 있었는지 모르겠네.


하튼 이번엔 여러 유닛이 한 번에 이동할 때를 테스트했음.


1트

3fb2c528e1c037b360bb98b21fd704031b6c39c2bd153e0a5e3228


장애물 회피는 별 문제 없지만, 이번엔 도착 판정이 문제였음.

선두가 타겟에 멈춰서 짱박히니까, 뒤따라오는 애들은 아예 못 닿더라고.


문제는 대충 두 가지로 생각됐음

1. 도착 판정이 너무 빡빡하다.

2. 타겟에 대한 응집력이 분리력보다 너무 약하다.


그걸 감안해서, 일단 도착 판정 늘리고 다시 테스트했음.


2트


2cb3df3fecdc3f957faad7b158d62d3b376a121eba51f73de6e1b69c72


짜잔.

그랬더니 이번엔 도착은 하는데, 새로운 문제가 발견됐음.

지들끼리 치고박고 난리가 나서 경로가 개판이 된다는 것.


그래서 이번엔

1. 타겟에 대한 응집력이 장애물에 대한 분리력보다 너무 작은 것

2. 동일 타겟에 대해 이동중인 유닛간에도 장애물 판정이 먹히는 것


두 가지 문제를 해결해서 다시 시도했음.

해결 방법은 대충


1. 기존에 고정된 크기를 가지던 타겟 응집력에, 감지 거리 내에 타겟이 들어오면 장애물에 대한 분리력과 마찬가지로, 가까워질 수록 추가적인 보정을 먹임.

2. 장애물 판단할 때 해당 장애물이 움직이고 있는지랑, 어느 타겟을 대상으로 이동중인지를 판단해서 장애물 미처리 시킴.


3트


3ea8c234eac736a220b8dfb336ef203eb0104133b12f9a6a6f

이제야 질서정연하게 움직이면서, 완벽하진 않지만 적당히 대상을 감싸는 모습을 볼 수 있었음.


글 마지막에 써서 좀 그렇긴 한데, 저 선은 각각

빨간색 : 장애물에 대한 반대벡터의 합

초록색 : 빨간색의 수직벡터(90도)

노란색 : 타겟에 대한 응집력

파란색 : 다 합친 이동방향

임.


응애일지 끝.