제가 적 AI 관련해서 어려움이 생겼습니다.
어떤 부분이 어려움을 격고있냐면 적 몬스터가 타깃(플레이어)를 감지하고 따라 움직이되(해당 이동 관련 코드는 Astar 알고리즘을 이용했습니다)
물리적으로 따라갈 수 없는 상태(낭떠러지 혹은 벽)일 경우 타깃이 감지범위 안에 있더라도 순찰을 하였으면 합니다.
그런데 여기서 만약 위에 말한 부분을 작성했다고 했을 때 또 다른 의문이 생기는데 몬스터가 순찰을 돌게 되면 물리적으로 따라갈 수 있는지의 여부(해당 관련은 적의 레이케스트를 통해서 바닥을 체크하면서 했습니다.) 관련해서가 다시 초기화 될거고
그러면 자연스럽게 또 타깃을 따라가고 그러다가 또 물리적 위치로 인해 순찰을 하고 이게 반복되는데 어떤 방식으로 코드를 작성해야 할지 모르겠습니다.
또한 해당 상태에 대한 딜레이를 주면 되지 않을까 생각했지만, 이것도 결국 타깃이 몬스터에 가까이 붙어도 순간 딜레이 때문에 어색한 느낌이 들것이고 그리고 만약 어찌저찌 위의 것도 해결했다고 한다면, 타깃은 어떤 방식으로 물리적으로 따라갈 수 있는 위치에 있는지를 알 수 있을까요?
도움 부탁드립니다.. 감사합니다.
공격 상태로 들어가는 조건이 '적이 감지 범위 안에 있을 때'면 여기에 && '레이가 닿을 때'를 추가하면 되지 않나요?
말씀하시는 레이가 어디에 닿을 때를 말씀하시는건가요?
아 if 한번으론 안 되겠네요 if 적이 감지 범위 안에 있을 때 if 플레이어 방향으로 레이를 쏴서 닿았을 때 이러면 되지 싶은뎀
말씀해주신 내용은 지금 보기에 단순 타깃을 인식하는 느낌인데 그건 이미 Astar 알고리즘을 통해서 해결이 된상태이고, 몬스터가 물리적으로 이동할수없는 상태에 관하여 타깃을 어떤식으로 인식해서 작업을 해야하는지 어려움을 격고있습니다. 혹시나 제가 의도를 파악하지 못한거라면 죄송합니다...
음.. 순찰이 아니라 추적인가요? 제가 말한 부분은 그냥 범위안에 있더라도 플레이어와 나 사이에 장애물이 있는지를 한번 더 체크해서 추적 상태로 전환하지 않고 하던 순찰 계속 이어가도록 만들면 되지 않나.. 한 건딩
음 이러면 돌아서 갈 수 있는 부분이 체크 안 되는 건가? 적에게 도달 가능한 시간을 계산해야하나.. 골치아프군용
말씀해주신 몬스터와 타깃 사이에 장애물(벽이나 낭떠러지)같은 부분을 어떤식으로 체크를 할수있나요? 몬스터의 이동없이 단순하게 코드로 해당 몬스터를 기준으로 타깃과의 사이에 장애물 체크가 가능한가요?
벽은 레이가 가다 막힐 거고.. 낭떠러지는 보이지 않는 벽을 만들어두면 될듯? 다만 도달 가능 여부는 A스타로 구해야되지 싶은데 첫 어그로때는 이걸로 충분하지 않을까요?
답변 너무 감사합니다 일단 애초에 몬스터로 레이를 플레이어 쪽으로 쏜다고 생각은 못해봤는데 감사합니다!
추적 중일 때 추적실패에 대한 가중치 만들어서 일정 가중치 이상되면 순찰 상태로 변경해도 될듯
그렇게 할 경우 다음 같은 문제가 생기는데 순찰 상태로 변경이 된다면 언제 타깃을 다시 따라가게 할것이며 타깃이 물리적으로 따라갈수있는 위치라는 걸 어떤식으로 인식시켜햐나는지 모르겠습니다.
플랫포머 게임 같은데 노드기반 그래프를 이용해서 추가 작업해줘야 너가 원하는거 편하게 구현할 수 있을거임 그리고 다시 타겟 따라가게 하는것도 유동적으로 하기 위해서 가중치 넣는거지 가중치를 적게두면 순찰 돌다가도 금방 따라갈거 아냐
가중치 트리거를 적게 두거나 가중치를 늘리면* 으로 정정함
그러면 말씀해주신 가중치라는게 정확하게 뭘 뜻하는건지 간단하게 예시 들어주실수있나요? 제가 유니티 아직 초보여서 확실하게 이해를 못한것 같습니다.
가중치는 그냥 count변수 같은거 말하는거임 적이 추적중인데 이동불가라면 다시 길찾기 reqeust 시키고 이 때 count 얼만큼 하고 순찰 상태로 돌아갈건지 순찰 상태에서도 count 를 얼마까지 찍고 다시 추적상태로 돌입할건지 이런걸 의미하는거임 변수명은 주로 ABCweight를 하든 ABCcount를 하든 본인 맘대로
이했습니다. 늦은 시간 답변해주셔서 감사합니다. 가중치 이용하는것도 생각해본적 없는데 너무 감사합니다!
너 재능있어. 열심히해!
2d 탑뷰시점 게임이면 몰라도 3d게임이면 엄청 힘들것 같은데... 라오어도 계단 근처에서 싸우면 적 바보되는경우도 많고
2d였네