Celujesz w pojazd o złożonym ruchu?

9

Celowanie w pojazd o znanej stałej prędkości jest proste, a kolizja jest gwarantowana (patrz Przewidywanie pozycji wroga, aby obiekt prowadził cel , Znajdź punkt spotkania 2 obiektów w 2D, znając (stałą) prędkość i nachylenie ). Niedokładną sztuczną inteligencję można modelować, dodając mały współczynnik błędu.

Ale jak zająć się pojazdem, którego ruchy są bardziej złożone? Być może unika sztucznej inteligencji lub innego obiektu gry.

Zastanawiałem się, jak sam bym to zrobił na FPS (w którym pociski mają skończoną prędkość) i pomyślałem, że może być potrzeba co najmniej kilku trybów celowania opartych na ruchu celu w poprzedniej sekundzie:

  • Jeśli jest zbliżony do liniowego (przyspieszenie szczytowe w określonym zakresie), celuj w modelu liniowym
  • Jeśli jest bardzo nieregularny (być może można użyć rozmiaru ramki granicznej ostatnich pozycji?), Celuj w średnią

Na razie mogę założyć przestrzeń 2d, AI jest nieruchoma, a pocisk nie jest sterowany i porusza się liniowo.

e100
źródło
1
Jeśli masz czas na zebranie danych o nieregularnym poruszającym się obiekcie, możesz interpolować jego najbardziej prawdopodobny następny ruch i tam strzelać. Im więcej masz danych, tym dokładniejsze będzie to.
Michael K
Nie wiem, czy tylko gadające kule, czy nie. Ale jest też mądre zarządzenie. Żądło wystrzelone z RPG może na przykład śledzić ciepło samolotu.
Steve H
@ SteveH - tylko niekierowane „pociski”. Wyjaśnili w pytaniu.
e100

Odpowiedzi:

11

Losowe przemyślenia (bez kodu) ...

W prawdziwym życiu celuje się w pojazd o złożonym ruchu, próbując dowiedzieć się, co to za ruch, aby go przewidzieć. Jeśli piszesz kod sztucznej inteligencji, aby kierować AI, powinieneś utworzyć AI kierującą, która jest pochodną docelowej AI. Na przykład, jeśli twój cel ucieknie w celu ukrycia, jeśli w pobliżu, AI kierująca powinna być w stanie przewidzieć ten ruch.

Z drugiej strony, jeśli próbujesz atakować ludzi AI, będzie to o wiele trudniejsze. Losowe kierowanie może działać, ale może wyglądać po prostu „losowo”, co może, ale nie musi być problemem dla twojej gry.

Aby znaleźć rozwiązanie, jedną rzeczą, którą możesz zrobić, jest mentalne rozdzielenie problemu na różne części próby zastrzelenia czegoś ...

Możliwość śledzenia

Aby trafić cel celowanym urządzeniem, które może się poruszać, trzeba być w stanie śledzić i przesuwać urządzenie, aby podążało za celem. Celownik obserwuje cel poruszający się i przesuwa cel, aby podążać. Jeśli urządzenie śledzące ma ograniczoną liczbę ruchów, wówczas jego zdolność śledzenia będzie utrudniona i śledzenie niektórych rzeczy może być trudne. ale jeśli moduł śledzący ma dużą swobodę śledzenia, może potencjalnie śledzić wiele rzeczy. Pomyśl o różnicy między wieżyczką czołgową a celowaniem palcem w coś.

Szybkość śledzenia

Innym czynnikiem jest szybkość śledzenia. Jeśli jest bardzo wolny (pomyśl „czołg wieżowy”), to nie może wyśledzić celu, który porusza się szybko. Zamiast tego musi polegać na przewidywaniu ścieżki celu. Z drugiej strony urządzenie śledzące z „szybką” prędkością może szybko przenieść się do nowej lokalizacji celu.

Czas reakcji śledzenia

Trzecim czynnikiem śledzenia jest czas reakcji śledzenia. To znaczy, kiedy cel zmienia kierunek, jak szybko może reagować tracker? Najlepszy tracker to taki, który ma dużą szybkość śledzenia i natychmiastowy czas reakcji - może śledzić każdą zmianę.

Uznanie docelowe

Jak dobrze celownik może rozpoznać cel? Jeśli ktoś śledzi cel w złożonym środowisku, może się zdarzyć, że cel nie rozpoznaje lub „utraci” cel. Im szybciej cel będzie w stanie rozpoznać cel, tym lepiej zrobi. Im mniej prawdopodobne jest, że straci cel, tym lepiej zrobi.

Czas reakcji na ostrzał

To, że cel pojawia się na celowniku przez krótki czas, nie oznacza, że ​​nastąpi strzał. Czy urządzenie śledzące może reagować wystarczająco szybko, aby pociągnąć za spust? Naprawdę złe trackery z naprawdę złym czasem reakcji niczego nie trafią. Naprawdę dobrzy trackerzy z naprawdę dobrym czasem reakcji uderzą w wszystko, ponieważ potrzebują tylko odrobiny czasu na cel.

Przewidywanie ruchu

Kolejnym czynnikiem jest przewidywanie ruchu. Jest to różnica między próbą śledzenia miejsca, w którym znajduje się teraz cel, a śledzeniem miejsca, w którym myślisz, że będzie. Jeśli tropiciel jest w stanie przewidzieć, może lepiej śledzić cel i mieć większe szanse na umieszczenie go na celowniku, a tym samym poprawić ich zdolność do oddania strzału na podstawie czasu reakcji. Śledzące zerowe oczekiwanie po prostu automatycznie przesunęłyby cel w stronę celu, niezależnie od jego działań. Najgorszym przypadkiem jest urządzenie śledzące, którego prędkość jest niska, bez żadnego oczekiwania, próbując wyśledzić prosty ruchomy cel. Wyobraź sobie cel, który co kilka sekund przesuwa się w lewo, a następnie w prawo. Powolny tracker po prostu odbijałby cel tam iz powrotem, nigdy nie byłby wystarczająco szybki, aby go zdobyć.

Modelowanie ruchu celu

Jak wspomniano powyżej, moduł śledzący może przewidzieć cel, modelując jego ruch, co niekoniecznie jest trudne. Jeśli pojazd jedzie z pewną prędkością, istnieje ograniczona liczba miejsc, w których pojazd może być w następnej sekundzie, i są one rozmieszczone zasadniczo jak trójkąt przed ich ruchem. Im szybciej idą, tym ciaśniejszy jest trójkąt. Im szybciej mogą skręcić, tym szerszy jest. Naprawdę szybki pojazd, który prawie nie może skręcić (jak rakieta), ma bardzo wąską ścieżkę potencjału. Wolny, który może bardzo dobrze skręcić, ma znacznie szerszą ścieżkę potencjału. To tak jak z kamerami cofania w niektórych samochodach, które nakładają się na linie pokazujące, dokąd pojedzie twój samochód, jeśli będziesz jechał tak, jak jest teraz, a także gdzie potencjalnie możesz się udać, gdybyś bardziej obrócił koło.

Mając to na uwadze, należy umieścić pole „potencjalnej przestrzeni docelowej” w tej potencjalnej przestrzeni ścieżki. Jeśli wiesz, że twój cel ma skłonność do skręcania z boku na bok, twoje pole celu musi być wystarczająco szerokie, aby obejmowało wszystkie możliwe ruchy. Jeśli twój cel porusza się dość liniowo, możesz zmniejszyć pole celu i wyśrodkować przewidywane miejsce ruchu. Myślę, że takie myślenie pomoże ci stworzyć jedno rozwiązanie śledzenia, które tak naprawdę nie rozróżnia liniowego i nieliniowego przewidywania. Śledzenie liniowe jest po prostu przewidywaniem o wyższym poziomie ufności (mniejsze pole celowania), podczas gdy śledzenie losowe jest śledzeniem niskiego poziomu (większe pole śledzenia).

Oczywiście staje się to trudne, jeśli cel stoi w miejscu, ponieważ ma potencjał do poruszania się w dowolnym kierunku. Ale oczywiście, jeśli stoi zbyt długo, jest to łatwy cel nawet dla najwolniejszego trackera.

Psychologia docelowa

Zastanów się, co byś zrobił, gdybyś nagle wylądował po lewej stronie. Czy byś na nich uciekł? NIE! Pobiegłbyś w prawo. A może uciekłbyś w poszukiwaniu schronienia. Ale może celownik strzela konkretnie w miejsce osłony, więc nie biegniesz po niego.

Zdolność do nauki

Potencjalnie twój cel może uczyć się na doświadczeniu. Załóżmy, że na początku nie mają pojęcia o potencjalnym ruchu pojazdu. Nie wiedzą, jak szybko to może iść ani jak szybko może się skręcić. Jednak obserwowanie go w działaniu nauczy ich, co to jest. Oznacza to, że za pierwszym razem, gdy próbują go wyśledzić, mogą nie działać zbyt dobrze. Ale uczą się zachowania ruchowego i radzą sobie lepiej przy kolejnych próbach.

Dalsza lektura

Trochę googlingu po napisaniu tej diody spotkałem się w tym podręczniku, aby strzelać z karabinu ...

http://www.globalsecurity.org/military/library/policy/army/fm/3-22-9/c07.htm

Może być kilka pomysłów na to, jak prawdziwa osoba będzie / powinna / mogłaby celować i śledzić.

Tim Holt
źródło
Wow - dało mi to dużo do myślenia - dzięki!
e100
Tak, nie wiem, jeśli naprawdę mam dla ciebie dokładną odpowiedź, tylko kilka rzeczy do przemyślenia. Choć matematyka polega na śledzeniu, myślę, że jest też psychologia.
Tim Holt
Rzeczywiście - pojęcie identyfikacji rodzaju celu, a zatem prawdopodobnego wzorca zachowania, jest oczywiste z perspektywy czasu. Można rozszerzyć, aby zrozumieć, jaki jest również jego tryb / stan (np. Statyczny / nieświadomy / w walce / unikaniu itp.)
e100