Націлювання на транспортний засіб зі складним рухом?


9

Орієнтація на транспортний засіб з відомою постійною швидкістю проста, і зіткнення гарантується (див. Прогнозування позиції противника для того, щоб об’єкт поводив свою ціль , Знайди місце зустрічі 2-х об'єктів у 2D, знаючи (постійну) швидкість та нахил ). Неточний AI можна змоделювати, додавши невеликий коефіцієнт помилки.

Але як би можна було орієнтуватися на транспортний засіб, рухи якого складніші? Можливо, це ухилення від AI або іншого ігрового об’єкта.

Я думав про те, як би це зробив сам у FPS (у яких кулі мають обмежену швидкість) і думаю, що може знадобитися принаймні пара режимів націлювання на основі руху цілі протягом попередньої секунди чи так:

  • Якщо це майже лінійна (пікове прискорення в певному діапазоні), ціль з лінійною моделлю
  • Якщо це дуже нерегулярно (можливо, міг би бути використаний розмір обмежувального поля останніх позицій?), Орієнтуйтеся в середньому

Наразі я можу припустити 2d простір, AI нерухомий, снаряд не керований і рухається лінійно.


1
Якщо у вас є час зібрати дані про нерегулярний рухомий об’єкт, то ви можете інтерполювати його найбільш ймовірний наступний хід і стріляти там. Чим більше даних у вас буде, тим точніше це буде.
Майкл К

Не знаю, чи твої просто розмовляючі кулі чи ні. Але є і розумні постанови. Скажіння, запущене з RPG, може, наприклад, відслідковувати тепло літака.
Стів Н

@SteveH - просто некеровані "кулі". Пояснили питання.
e100

Відповіді:


11

Випадкові думки (без коду) ...

У реальному житті людина націлює на транспортний засіб складного руху, намагаючись зрозуміти, що таке рух, щоб передбачити його. Якщо ви пишете код для AI для націлювання на AI, то вам слід створити AI націлювання, яке походить від цільового AI. Наприклад, якщо ваша ціль буде працювати за прикриттям, якщо поруч, AI націлювання повинен мати можливість передбачити цей рух.

З іншого боку, якщо ви намагаєтесь націлити людей на ШІ, це буде набагато складніше. Випадкове націлювання може спрацювати, але може виглядати просто "випадковим чином", що може бути проблемою для вашої гри.

Щоб придумати рішення, одне, що ви можете зробити - це подумки розділити проблему на різні частини, намагаючись щось зняти ...

Можливість відстеження

Для того, щоб вдарити по цілі цільовим пристроєм, який може рухатися, треба мати можливість відстежувати та переміщувати пристрій, щоб слідувати цілі. Далекар спостерігає за ціллю, що рухається, і рухає свою мету слідувати. Якщо трекер має обмежену кількість рухів, то його здатність до відстеження буде перешкоджати, і він може важко відстежувати деякі речі. але якщо трекер має велику кількість свободи відстеження, він потенційно може відслідковувати багато речей. Подумайте про різницю між бачкою танка і ви вказуєте на щось пальцем.

Швидкість відстеження

Ще один фактор - наскільки швидко трекер може відстежувати. Якщо вона дуже повільна (подумайте "башта танків"), то вона не може відстежити ціль, яка швидко рухається. Натомість він повинен покладатися на очікування шляху цілі. З іншого боку, трекер зі швидкою швидкістю може швидко переміститися до нового місця призначення.

Відстеження часу реакції

Третім фактором відстеження є час реакції відстеження. Тобто, коли ціль змінює напрямок, наскільки швидко може відреагувати трекер? Кінцевий трекер - це швидка швидкість відстеження та миттєвий час реакції - він може відстежувати будь-які зміни.

Розпізнавання цілі

Наскільки добре може датчик розпізнати ціль? Якщо хтось відстежує ціль у складних умовах, може виникнути випадки, коли таргетер не впізнає або "втратить" ціль. Чим швидше таргетинг може розпізнати ціль, тим краще це зробить. Чим менше ймовірність втратити ціль, тим краще це зробить.

Час зйомки реакції

Тільки тому, що ціль з’являється у перехресті за короткий момент часу, не означає, що постріл відбудеться. Чи може трекер реагувати достатньо швидко, щоб натиснути курок? Дійсно погані трекери з дійсно поганим часом реакції нічого не вдарять. Дійсно хороші трекери з дійсно хорошим часом реакції вдарять що завгодно, адже їм потрібен лише найменший біт часу на ціль.

Передчуваючи рух

Передчуття руху - ще один фактор. Це різниця між простою спробою простежити, де зараз знаходиться ціль, та відстеженням того, де ви вважаєте, що буде ціль. Якщо трекер може передбачити, вони можуть відслідковувати ціль краще та отримувати більше шансів мати ціль у перехресті, і, таким чином, покращувати свою здатність відстрілюватись залежно від часу реакції. Нульові трекери очікування просто автоматично переміщують ціль у бік цілі, незалежно від дій цілі. Найгірший випадок - це трекер, який швидкість повільний, без жодного очікування намагається відстежити просту ціль, що рухається. Уявіть собі ціль, яка кожні кілька секунд просто крокує вліво, а потім вправо. Повільний трекер просто продовжує підстрибувати ціль вперед і назад, ніколи не досить швидко, щоб отримати ціль.

Моделювання цільового руху

Як уже згадувалося вгорі, трекер може передбачити ціль, моделюючи її рух, що не обов'язково так важко зробити. Якщо транспортний засіб рухається з якоюсь швидкістю, на наступній секунді є обмежена кількість місць, яку транспортний засіб може розмістити, і вони розкладені по суті як трикутник перед їх рухом. Чим швидше вони йдуть, тим щільніше трикутник. Чим швидше вони можуть повернутись, тим ширше. Справді швидкий транспортний засіб, який навряд чи може повернути (як ракета), має дуже малий вузький потенційний шлях. Повільний, який може дуже добре повернути, має набагато ширший потенціал. Це як ті резервні камери на деяких автомобілях, які накладають лінії, що показують, куди поїде ваш автомобіль, якщо ви продовжуєте їздити так, як зараз, плюс куди ви потенційно могли б їхати, якби більше повернути колесо.

Отже, маючи на увазі, ви повинні помістити поле "потенційний цільовий простір" у цей потенційний простір шляху. Якщо ви знаєте, що ваша ціль має тенденцію переходити на бік, цільова скринька повинна бути достатньо широкою, щоб охопити всі можливі рухи. Якщо ваша мета досить лінійна в русі, ви можете зробити свою цільову скриньку набагато меншою та зосередженою на передбачуваному місці руху. Я думаю, що таке мислення допоможе вам зробити єдине рішення для відстеження, яке насправді не розмежовує між лінійним та нелінійним очікуванням. Лінійне відстеження - це просто передчуття з більш високим рівнем впевненості (менший націлений ящик), тоді як випадкове відстеження - довіра відстеження низького рівня (більша скринька відстеження).

Звичайно, це стає складним, якщо ціль стоїть на місці, оскільки вона має потенціал рухатися в будь-якому напрямку. Але звичайно, якщо він ще сидить занадто довго, це легка ціль навіть для найповільнішого трекера.

Цільова психологія

Подумайте, що б ви зробили, якби у вас раптом постріли ліворуч. Ви бігли б на них? НІ! Ви біжите праворуч. А може, ти б бігла за прикриття. Але тоді, можливо, таргетар спеціально стріляє в місці обкладинки, щоб потім не бігти за ним.

Здатність до навчання

Потенційно ваш таргетик може вчитися на досвіді. Припустимо, спочатку вони не мають уявлення про потенційний рух автомобіля. Вони не знають, як швидко він може пройти, або як швидко він може повернутися. Спостереження за цим, хоча навчить їх, що це таке. Це означає, що перший раз, коли вони спробують і відстежують його, вони можуть не дуже добре. Але вони вчаться поведінці в русі, і краще робити наступні спроби.

Подальше читання

Трохи гуглившись після написання цього, привели до цього посібника зі стрільби з рушниці ...

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

Можливо, є кілька ідей щодо того, як реальна людина повинна / повинна / могла б націлюватись та відстежувати.


Нічого собі - це дало мені багато їжі для роздумів - дякую!
e100

Так, я не знаю, якщо у вас є точна відповідь для вас насправді, лише деякі речі, про які варто подумати. Скільки всього математики в трекінгу, я думаю, що тут є і психологія.
Тім Холт

Дійсно - поняття визначення того, яка це ціль, і тому її ймовірний зразок поведінки є очевидним у ретроспективі. Можна розширити, щоб зрозуміти, який також його режим / стан (наприклад, статичний / невідомий / у бою / ухилення тощо)
e100
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.