답변:
내가 아는 것에서 "Dynamic A *"를 나타내는 D * 알고리즘을 살펴볼 수 있습니다. 이 알고리즘은 움직이는 대상이있는 동적 환경의 경로 찾기를 계산하는 데 사용됩니다.
움직이는 목표 경로 찾기에 D *를 사용하는 논문은 다음과 같습니다. Moving Target D * Lite
개를 누군가를 사냥 할 때 분명히 사용하는 "개 곡선"접근 방식을 사용할 수 있습니다. 임팩트 포인트가 "미래에"있을 위치를 계산하고 해당 위치로 곧바로 설정됩니다.
간단한 근사 방법은 선을 따라 될 수 있습니다.
A = NPC
B = 목표
T = B : s 위치에 도달하는 시간 (B : s 초기 위치)
B가 'T'시간에있을 위치를 계산하고 (B가 동일한 속도 / 각도로 계속되는 경우) 대신 이동하십시오.
이것은 거리가 변함에 따라 완벽한 방법은 아니지만 완벽한 솔루션을 만드는 것보다 훨씬 간단하고 'B'를 얻는 것보다 훨씬 좋습니다.
Kylotan은 표준 방법 이 없다는 데 동의합니다 .
내가 본 한 가지 방법은 목표가 같은 방향으로 계속 움직이고 경로 찾기 알고리즘을 실행할 때 목표 위치를 변경하는 것으로 가정했습니다. 즉, A * 노드에서 두 가지 메트릭을 보유해야합니다 (비용과 반대되는 비용 및 시간).
그보다 더 잘하는 것은 매우 어렵습니다. 목표의 확고한 경로에 대해 실제로 알고 있지 않는 한, AI의 두 번째 목표를 추측하거나 시뮬레이션하여 대상의 위치와 경로를 추측하기 때문에 매우 어려운 AI의 땅으로 향하고 있습니다. 이러한 종류의 AI는 3D 게임 AI 툴킷에서 표준 이 아닌 영역 인 게임 이론의 실시간 AB 게임입니다 .
동적 경로 찾기를 수행하는 한 가지 방법은 대상이 어디로 가고 있는지를 예측하도록하는 것입니다.
이를 수행하는 한 가지 방법은 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 좌표 일 수도 있고 물체 사이의 거리 일 수도 있고 각도 일 수도 있습니다. 또한 객체의 미래 경로를 예측하는 더 나은 방법이있을 수 있으므로 조금 둘러 볼 것입니다.