A mira em um veículo com velocidade constante conhecida é simples e a colisão é garantida (consulte Prevendo a posição do inimigo para que um objeto conduza seu alvo , encontre o ponto de encontro de 2 objetos em 2D, sabendo a velocidade (constante) e a inclinação ). A IA imprecisa pode ser modelada adicionando um pequeno fator de erro.
Mas como alguém poderia mirar em um veículo cujos movimentos são mais complexos? Talvez esteja fugindo da IA ou de outro objeto do jogo.
Eu estive pensando em como eu faria isso em um FPS (no qual as balas têm velocidade finita) e acho que pode haver pelo menos alguns modos de segmentação com base no movimento do alvo no segundo anterior:
- Se estiver próximo do alvo linear (pico de aceleração em um determinado intervalo) com o modelo linear
- Se for altamente irregular (talvez possa ser usado o tamanho da caixa delimitadora de posições recentes?), Segmente em média
Por enquanto, posso assumir o espaço em 2D, a IA é estacionária e o projétil não é guiado e se move linearmente.
Respostas:
Pensamentos aleatórios (sem código) ...
Na vida real, o alvo é um veículo com movimento complexo, tentando descobrir o que é esse movimento para antecipá-lo. Se você estiver escrevendo um código para a IA segmentar a AI, crie uma AI de segmentação derivada da AI de destino. Por exemplo, se o seu alvo correr para se esconder, se estiver por perto, a IA do alvo poderá antecipar esse movimento.
Por outro lado, se você estiver tentando atingir humanos com IA, será muito mais difícil. A segmentação aleatória pode funcionar, mas pode parecer apenas "aleatória", o que pode ou não ser um problema para o seu jogo.
Para encontrar uma solução, uma coisa que você pode fazer é separar mentalmente o problema em diferentes partes da tentativa de fotografar algo ...
Capacidade de rastreamento
Para atingir um alvo com um dispositivo apontado que possa se mover, é necessário rastrear e mover o dispositivo para segui-lo. O alvo observa o alvo em movimento e move o objetivo a seguir. Se um rastreador tiver uma quantidade limitada de movimento, sua capacidade de rastreamento será prejudicada e poderá ser difícil rastrear algumas coisas. mas se o rastreador tiver uma grande liberdade de rastreamento, ele poderá rastrear muitas coisas. Pense na diferença entre uma torre de tanque e você apontando algo com o dedo.
Velocidade de rastreamento
Outro fator é a rapidez com que o rastreador pode rastrear. Se estiver muito lento (pense em "torre do tanque"), não poderá rastrear um alvo que se move rapidamente. Em vez disso, deve confiar na antecipação do caminho do alvo. Por outro lado, um rastreador com velocidade "rápida" pode se mover rapidamente para o novo local de um alvo.
Rastreando o tempo de reação
Um terceiro fator no rastreamento é o tempo de reação do rastreamento. Ou seja, quando o alvo muda de direção, com que rapidez o rastreador pode reagir? O rastreador final é aquele com velocidade de rastreamento rápida e tempo de reação instantâneo - ele pode rastrear qualquer alteração.
Reconhecimento de Alvos
Quão bem o direcionador pode reconhecer um alvo? Se alguém estiver rastreando um alvo em um ambiente complexo, pode haver momentos em que o alvo não reconhece ou "perde" o alvo. Quanto mais rápido o alvo puder reconhecer um alvo, melhor ele será. Quanto menor a probabilidade de perder um alvo, melhor será.
Tempo de Reação ao Tiro
Só porque o alvo aparece na mira por um breve momento não significa que um tiro acontecerá. O rastreador pode reagir rápido o suficiente para pressionar o gatilho? Rastreadores muito ruins com um tempo de reação muito ruim não atingem nada. Rastreadores realmente bons, com um tempo de reação muito bom, atingem qualquer coisa, porque eles só precisam de um pouco de tempo no alvo.
Antecipando o Movimento
A antecipação do movimento é outro fator. Essa é a diferença entre apenas tentar rastrear para onde o alvo está agora, versus rastrear para onde você acha que o alvo estará. Se um rastreador pode antecipar, ele pode rastrear melhor o alvo e ter mais chances de colocá-lo na mira, melhorando assim sua capacidade de disparar com base no tempo de reação. Os rastreadores de antecipação zero moveriam automaticamente o objetivo em direção ao alvo, independentemente das ações do alvo. O pior caso é um rastreador cuja velocidade é lenta, sem antecipação, tentando rastrear um alvo em movimento simples. Imagine um alvo que apenas pise para a esquerda e depois para a direita a cada poucos segundos. Um rastreador lento continuaria saltando a mira para frente e para trás, nunca rápido o suficiente para atingir a meta.
Modelando o Movimento Alvo
Como mencionado acima, o rastreador pode antecipar o alvo modelando seu movimento, o que não é necessariamente tão difícil de fazer. Se um veículo estiver dirigindo a certa velocidade, há um número finito de lugares em que o veículo pode estar no próximo segundo, e eles são dispostos essencialmente como um triângulo na frente de seu movimento. Quanto mais rápido eles estão, mais apertado é o triângulo. Quanto mais rápido eles podem virar, mais amplo é. Um veículo muito rápido que dificilmente pode virar (como um foguete) tem um caminho potencial muito pequeno e estreito. Um lento que pode virar muito bem tem um caminho potencial muito mais amplo. É como aquelas câmeras de segurança em alguns carros que sobrepõem linhas mostrando aonde seu carro irá se continuar dirigindo como está agora, além de onde você poderia ir se voltasse mais a roda.
Portanto, com isso em mente, você deve colocar sua caixa "espaço potencial de destino" nesse espaço potencial de caminho. Se você sabe que seu alvo tem uma tendência a se desviar de um lado para o outro, sua caixa de alvo precisa ser larga o suficiente para abranger todos os movimentos possíveis. Se o seu alvo é bastante linear no movimento dele, você pode fazer com que a caixa do alvo seja muito menor e centralizada na localização prevista do movimento. Acho que esse tipo de pensamento o ajudará a criar uma solução única para o rastreamento que não diferencia realmente a antecipação linear e a não linear. O rastreamento linear é simplesmente uma antecipação com um nível de confiança mais alto (caixa de segmentação menor), enquanto o rastreamento aleatório é um rastreamento de confiança de baixo nível (caixa de rastreamento maior).
É claro que isso é desafiador se o alvo estiver parado, porque ele pode se mover em qualquer direção. Mas é claro que, se ficar parado por muito tempo, é um alvo fácil, mesmo para o rastreador mais lento.
Target Psychology
Considere o que você faria se tivesse repentinamente tiros à sua esquerda. Você correria para eles? NÃO! Você correria para a direita. Ou talvez você corra para se esconder. Mas então talvez o alvo atire especificamente no local da cobertura, para que você não corra atrás dele.
Capacidade de aprender
Potencialmente, seu direcionador pode aprender com a experiência. Suponha que, a princípio, eles não tenham idéia do movimento potencial do veículo. Eles não sabem o quão rápido pode ir, ou o quão rápido pode virar. Observá-lo em ação, porém, os ensinará o que é isso. Significando que a primeira vez que eles tentam rastrear um, eles podem não se sair muito bem. Mas eles aprendem o comportamento do movimento e se saem melhor nas tentativas subseqüentes.
Leitura adicional
Um pouco de pesquisa depois de escrever isso levou a este manual para pontaria no rifle ...
http://www.globalsecurity.org/military/library/policy/army/fm/3-22-9/c07.htm
Pode haver algumas idéias sobre como uma pessoa real deveria / deveria / poderia mirar e rastrear.
fonte