움직이는 목표를 향해 길을 찾는 표준 솔루션은 무엇입니까?


28

게임과 같은 2D RTS 작업을하고 있는데, 기본 A *는 유닛을 지점 A에서 지점 B로 옮기는 데 완벽하게 작동합니다.

그러나 이제는 객체 B의 위치가 비효율적 인 것처럼 보이는 경우 A가 움직이는 객체 B를 공격하고 각 프레임에서 A *를 호출하는 것처럼 지속적인 경로 찾기 문제에 직면했습니다.

이 문제의 표준 방법은 무엇입니까?


1
표준 방법이 없습니다.
Kylotan

3
단일 표준 방법은 없지만 문제를 해결하는 일반적인 방법에 대한 많은 문헌이 있습니다.

답변:


17

내가 아는 것에서 "Dynamic A *"를 나타내는 D * 알고리즘을 살펴볼 수 있습니다. 이 알고리즘은 움직이는 대상이있는 동적 환경의 경로 찾기를 계산하는 데 사용됩니다.

움직이는 목표 경로 찾기에 D *를 사용하는 논문은 다음과 같습니다. Moving Target D * Lite


10

하나의 옵션은 몇 프레임마다 한 번 씩만 새 경로를 만드는 것입니다. 초당 60 회 이상이 아닌 1 초에 1 ~ 2 회 수행 한 경우 사용자가 두 가지 매우 빠르게 움직이는 물체가 아닌 한 사용자가 알아 채지 못할 것입니다.


8

개를 누군가를 사냥 할 때 분명히 사용하는 "개 곡선"접근 방식을 사용할 수 있습니다. 임팩트 포인트가 "미래에"있을 위치를 계산하고 해당 위치로 곧바로 설정됩니다.

간단한 근사 방법은 선을 따라 될 수 있습니다.

A = NPC

B = 목표

T = B : s 위치에 도달하는 시간 (B : s 초기 위치)

B가 'T'시간에있을 위치를 계산하고 (B가 동일한 속도 / 각도로 계속되는 경우) 대신 이동하십시오.

이것은 거리가 변함에 따라 완벽한 방법은 아니지만 완벽한 솔루션을 만드는 것보다 훨씬 간단하고 'B'를 얻는 것보다 훨씬 좋습니다.


3
개에 대해 몰랐습니다. 나는 오늘 무언가를 배웠다!
SteeveDroz

3

Kylotan은 표준 방법 이 없다는 데 동의합니다 .

내가 본 한 가지 방법은 목표가 같은 방향으로 계속 움직이고 경로 찾기 알고리즘을 실행할 때 목표 위치를 변경하는 것으로 가정했습니다. 즉, A * 노드에서 두 가지 메트릭을 보유해야합니다 (비용과 반대되는 비용 및 시간).

그보다 더 잘하는 것은 매우 어렵습니다. 목표의 확고한 경로에 대해 실제로 알고 있지 않는 한, AI의 두 번째 목표를 추측하거나 시뮬레이션하여 대상의 위치와 경로를 추측하기 때문에 매우 어려운 AI의 땅으로 향하고 있습니다. 이러한 종류의 AI는 3D 게임 AI 툴킷에서 표준 이 아닌 영역 인 게임 이론의 실시간 AB 게임입니다 .


2

동적 경로 찾기를 수행하는 한 가지 방법은 대상이 어디로 가고 있는지를 예측하도록하는 것입니다.

이를 수행하는 한 가지 방법은 Taylor 시리즈를 사용하는 것입니다.

시간이 지남에 따라 대상의 경로를 함수 S (t)라고 부를 것입니다. 여기서 S는 위치이고 t는 현재 시간이며 경로에 대한 근사는 A (f)이고 f는 미래의 날짜입니다. .

그러면 가장 간단하고 가장 어리석은 근사값은 A (f) = 0입니다.

다음으로 가장 간단한 것은 A (f) = S (t)입니다. 여기서 t는 현재 시간이고 f는 미래입니다. 이것은 목표가 제자리에서 멈추는 것을 예측하고 있습니다.

세 번째로 가장 간단한 것은 A (f) = S '(t) * f + S (t)입니다. 여기서 S'는 시간에 대한 S의 미분입니다. 이것은 목표가 가속없이 일정한 속도로 계속되는 것을 예측합니다.

네 번째로 가장 간단한 것은 A (f) = S ''(t) * f ^ 2 / 2 + S '(t) * f + S (t)입니다. 이것은 목표물이 떨어지는 공처럼 일정한 속도로 가속되고 있음을 예측하는 것입니다.

나는 이것이 게임에 더 편리한 시간의 변화 측면에서 표현 될 수 있다는 것을 안다. 이제 S는 무엇이든 될 수 있습니다. X 좌표 일 수도 있고 Y 좌표 일 수도 있고 물체 사이의 거리 일 수도 있고 각도 일 수도 있습니다. 또한 객체의 미래 경로를 예측하는 더 나은 방법이있을 수 있으므로 조금 둘러 볼 것입니다.


1

지형이 합리적으로 열려 있고 목표가 추적자로부터 너무 멀지 않은 경우 절편 조향 동작을 사용할 수 있습니다. 기본적으로 목표의 위치와 속도를 사용하여 너무 멀지 않고 너무 가까이 있지 않은 목표 앞의 위치를 ​​계산하고 추적자를 해당 지점을 향해 조정합니다 (각각 정기적으로 계산 됨).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.