Apuntar a un vehículo con velocidad constante conocida es simple, y se garantiza la colisión (ver Predicción de la posición del enemigo para que un objeto lidere su objetivo , Encontrar el punto de encuentro de 2 objetos en 2D, conociendo la velocidad y la pendiente (constante) ). La IA imprecisa se puede modelar agregando un pequeño factor de error.
Pero, ¿cómo se podría apuntar a un vehículo cuyos movimientos son más complejos? Quizás está evadiendo la IA u otro objeto del juego.
He estado pensando en cómo lo haría yo mismo en un FPS (en el que las balas tienen una velocidad finita) y creo que podría necesitar al menos un par de modos de orientación basados en el movimiento del objetivo en el segundo anterior:
- Si está cerca del objetivo lineal (aceleración máxima en un cierto rango) con el modelo lineal
- Si es muy irregular (¿quizás podría usarse el tamaño del cuadro delimitador de posiciones recientes?), Apunte a un promedio
Por ahora puedo asumir el espacio 2D, la IA es estacionaria y el proyectil no está guiado y se mueve linealmente.
Respuestas:
Pensamientos aleatorios (sin código) ...
En la vida real, uno apunta a un vehículo con movimiento complejo tratando de descubrir cuál es ese movimiento para anticiparlo. Si está escribiendo código para AI para apuntar a AI, entonces debe crear una IA de orientación que se deriva de la IA de destino. Por ejemplo, si su objetivo correrá para cubrirse si está cerca, la IA objetivo debería poder anticipar este movimiento.
Por otro lado, si estás tratando de atacar a los humanos con IA, será mucho más difícil. La segmentación aleatoria podría funcionar, pero puede parecer "aleatoria", lo que puede o no ser un problema para su juego.
Para encontrar una solución, una cosa que puede hacer es separar mentalmente el problema en diferentes partes de tratar de disparar algo ...
Capacidad de seguimiento
Para alcanzar un objetivo con un dispositivo apuntado que pueda moverse, uno debe poder rastrear y mover el dispositivo para seguir al objetivo. El objetivo observa que el objetivo se mueve y mueve su objetivo para seguirlo. Si un rastreador tiene una cantidad limitada de movimiento, entonces su capacidad de rastreo se verá obstaculizada y puede ser difícil rastrear algunas cosas. pero si el rastreador tiene una gran cantidad de libertad de rastreo, puede rastrear muchas cosas. Piensa en la diferencia entre una torreta de tanque y tú señalando algo con el dedo.
Velocidad de seguimiento
Otro factor es qué tan rápido puede rastrear el rastreador. Si es muy lento (piense en "torreta de tanques"), entonces no puede rastrear un objetivo que se mueve rápido. En cambio, tiene que depender de la anticipación del camino del objetivo. Por otro lado, un rastreador con velocidad "rápida" puede moverse rápidamente a la nueva ubicación de un objetivo.
Seguimiento del tiempo de reacción
Un tercer factor en el seguimiento es el tiempo de reacción del seguimiento. Es decir, cuando el objetivo cambia de dirección, ¿qué tan rápido puede reaccionar el rastreador? El último rastreador es uno con velocidad de seguimiento rápida y tiempo de reacción instantáneo: puede rastrear cualquier cambio.
Reconocimiento de objetivos
¿Qué tan bien puede el objetivo reconocer un objetivo? Si uno está rastreando un objetivo en un entorno complejo, puede haber ocasiones en que el objetivo no reconozca o "pierda" el objetivo. Cuanto más rápido el objetivo pueda reconocer un objetivo, mejor lo hará. Cuanto menos probable sea perder un objetivo, mejor será.
Tiempo de reacción de disparo
El hecho de que el objetivo aparezca en la mira por un breve momento no significa que sucederá un disparo. ¿Puede el rastreador reaccionar lo suficientemente rápido como para apretar el gatillo? Los rastreadores realmente malos con un tiempo de reacción realmente malo no afectarán nada. Los rastreadores realmente buenos con un tiempo de reacción realmente bueno golpearán cualquier cosa, porque solo necesitan el más mínimo tiempo en el objetivo.
Movimiento anticipado
La anticipación del movimiento es otro factor. Esta es la diferencia entre simplemente tratar de rastrear hasta donde está el objetivo ahora, versus rastrear hasta donde crees que estará el objetivo. Si un rastreador puede anticipar, puede rastrear mejor al objetivo y tener más oportunidades de tener el objetivo en la mira, y así mejorar su capacidad para disparar en función de su tiempo de reacción. Los rastreadores de anticipación cero simplemente moverían automáticamente el objetivo hacia el objetivo, independientemente de las acciones del objetivo. El peor de los casos es un rastreador cuya velocidad es lenta sin anticipación tratando de rastrear un objetivo en movimiento simple. Imagine un objetivo que solo se mueve hacia la izquierda y luego hacia la derecha cada pocos segundos. Un rastreador lento seguiría rebotando el objetivo de un lado a otro, nunca lo suficientemente rápido como para alcanzar el objetivo.
Modelado de movimiento objetivo
Como se mencionó arriba, el rastreador puede anticipar el objetivo modelando su movimiento, lo que no es necesariamente tan difícil de hacer. Si un vehículo está conduciendo a cierta velocidad, hay un número finito de lugares en los que puede estar el vehículo en el siguiente segundo, y se presentan esencialmente como un triángulo frente a su movimiento. Cuanto más rápido van, más apretado es el triángulo. Cuanto más rápido pueden girar, más ancho es. Un vehículo realmente rápido que apenas puede girar (como un cohete) tiene una ruta potencial estrecha muy pequeña. Una lenta que puede girar muy bien tiene un camino potencial mucho más amplio. Es como esas cámaras de respaldo en algunos automóviles que superponen líneas que le muestran a dónde irá su automóvil si continúa conduciendo como está ahora, además de dónde podría ir si tuviera que girar más el volante.
Con eso en mente, debe poner su cuadro de "espacio objetivo potencial" en ese espacio de ruta potencial. Si sabe que su objetivo tiene una tendencia a desviarse de un lado a otro, su caja de objetivo debe ser lo suficientemente amplia como para abarcar todos los movimientos posibles. Si su objetivo es bastante lineal en su movimiento, puede hacer que su caja objetivo sea mucho más pequeña y centrada en la ubicación anticipada del movimiento. Creo que este tipo de pensamiento lo ayudará a encontrar una solución única para el seguimiento que realmente no distinga entre anticipación lineal y no lineal. El seguimiento lineal es simplemente anticipación con un mayor nivel de confianza (cuadro de selección más pequeño), mientras que el seguimiento aleatorio es un seguimiento de confianza de bajo nivel (cuadro de seguimiento más grande).
Por supuesto, esto se vuelve desafiante si el objetivo está quieto, porque tiene el potencial de moverse en cualquier dirección. Pero, por supuesto, si se queda quieto demasiado tiempo, es un objetivo fácil incluso para el rastreador más lento.
Psicología objetivo
Considera lo que harías si de repente tuvieras disparos a tu izquierda. ¿Correrías hacia ellos? ¡NO! Corriste hacia la derecha. O tal vez correría para cubrirse. Pero entonces tal vez el objetivo dispara específicamente en la ubicación de la cubierta para que no corras hacia él.
Capacidad de aprender
Potencialmente, su objetivo puede aprender de la experiencia. Supongamos que al principio no tienen idea del movimiento potencial del vehículo. No saben qué tan rápido puede ir o qué tan rápido puede girar. Sin embargo, observarlo en acción les enseñará qué es esto. Lo que significa que la primera vez que intentan rastrear uno, puede que no les vaya muy bien. Pero aprenden el comportamiento del movimiento y les va mejor en intentos posteriores.
Otras lecturas
Un poco de google después de escribir esto llevó a este manual para la puntería de los rifles ...
http://www.globalsecurity.org/military/library/policy/army/fm/3-22-9/c07.htm
Podría haber algunas ideas sobre cómo una persona real debería / debería / podría apuntar y rastrear.
fuente