3D RTS에서 그룹 구성을 어떻게 구현합니까?


14

단일 장치에 대한 경로 찾기 작업을 수행하고 에이전트-에이전트 충돌을 피할 수 있었지만 이제 에이전트 그룹을 특정 위치로 보낼 수 있어야합니다.

이것은 지금까지 내 설정입니다.

  • 웨이 포인트 길 찾기
  • 두 노드 사이의 최소 거리는 에이전트에 허용 된 가장 큰 경계 영역 반경보다 약간 큽니다.
  • 에이전트는 clearpath를 기반으로 I 조향 동작을 수행하여 다른 에이전트와의 충돌을 피합니다.

이제 에이전트를 그룹 어딘가에 보내야합니다. 나는 그것을 할 수있는 방법은 그룹 리더를 만들고 다른 유닛에게 자신의 위치에 오프셋을주는 것이라고 말하는 일부 게시물을 읽었습니다.

그러나 문제는 그룹 형성을 달성 할 수 없다면 어떨까요? 예를 들어 직사각형을 형성하고 싶지만 대상 위치에 직사각형 설정을 만들 수없는 구조가 근처에 있습니다.


2
나는 일을하고있어 정답을 쓸 시간이 없지만 여기에 제로 포인트 2 센트가 있습니다 : Boids flocking 알고리즘을 사용하고 Boids가 격퇴되는 물체로 장애물을 나타냅니다.
Nailer

@Nailer 몰려 오는 알고리즘은 움직일 때까지 작동하지만 최종 위치가 "괜찮아"인지 어떻게 알 수 있습니까? 걱정 마세요, 답을 기다릴 수 있습니다;)
xcrypt

답변:


13

실제로 Gamasutra에는 이것에 관한 꽤 좋은 기사 가 있습니다. 그리고 형성 및 충돌 해결과 같은 주제를 다룹니다.

여기에 이미지 설명을 입력하십시오

그리고 같은 주제에 관한 또 다른 기사 는 조금 짧지 만 의사 코드 예제가 더 많습니다.

여기에 이미지 설명을 입력하십시오

마지막으로, 시스템을 구현할 때 고려해야 할 좋은 점은 "Flow Field" Supreme Commander 2가 이것을 사용 한다는 아이디어입니다 . 워싱턴 주립 대학의 크라우드 플로우 연구 에 기반을두고 있습니다.


고마워, 나는 최고 사령관에게서 연속체 군중이 길을 찾는 것을 보았지만, 내가 가지고있는 것을 고수 할 것이라고 생각합니다. 좀 더 많은 경험치를 얻을 때 시도 할 것입니다. 예, 정말
근사해

2

나는 당신이 형성의 보스 인 보이지 않는 "무리 개체"를 가질 수 있고 다른 생물들이이 개체에 대해 자신을 위치시킬 수 있다고 생각합니다. 이 엔티티가 회전 할 수 있으면 상대 위치도 회전합니다.

... oopos .. 당신은 이미 그렇게하고 있습니다.

이건 어때?

엔티티 충돌에 대한 새 위치를 계산할 수없는 이유는 무엇입니까? 나는 화려할 필요가 없으며 원하는 원래 점과 지시선에서 선을 긋고 원하는 위치를이 선의 중간으로 옮길 수 있습니다. 충돌을 다시 테스트하십시오.


글쎄요, 제 질문에서 말한 것과 거의 같습니다. D 까다로운 부분은 지형 / 장애물 / 구조물과의 구성 충돌을 처리하는 방법입니다.
xcrypt

죄송합니다. 새로운 아이디어로 답장을 업데이트했습니다.
Tei

나는 그것을 얻지 못한다. 오프셋 벡터의 크기를 절반으로 줄이고 이것이 충돌이없는 위치인지 계속 확인하겠습니까? 그것은 대부분의 경우 실패 할 것입니다
xcrypt
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.