Cursos / Jogos Digitais / Inteligência Artificial para Jogos / Aula

arrow_back Aula 03 - Comportamentos de navegação II

3. Outros comportamentos de navegação

O que você viu até o momento são comportamentos úteis para o jogo de futebol que está desenvolvendo. Porém, os comportamentos de navegação não se restringem a apenas esses. Existem vários outros. Em todos, o princípio segue as mesmas diretivas dos comportamentos apresentados aqui, que é a criação de forças a serem aplicadas sobre personagem… ou naves espaciais… ou carros… ou seja lá o que a IA do seu jogo está controlando.

Há comportamentos específicos, por exemplo, para simular o caminho aleatório de um personagem, para um grupo de personagens seguir um líder, para um grupo de personagens seguir uma formação de fila (um atrás do outro) ou uma barreira (um ao lado do outro). Como dito antes, tudo depende de seu jogo.

Irei, entretanto, apresentar aqui apenas a ideia geral de alguns desses outros comportamentos, a saber: Wander, para movimentação aleatória, e Leader Following, para seguir um líder.

3.1 Comportamento Wander

Em muitos jogos, os personagens precisam ficar “perambulando" pela área, como se estivessem distraídos, sem nada para fazer (ou melhor, à espera de ue algo aconteça). Esse movimento precisa ser realista o suficiente para dar a impressão que o personagem está apenas “caminhando sem destino certo".

Uma forma de se fazer isso, na verdade a mais simples, é gerar um ponto aleatório sobre o terreno e aplicar o comportamento Seek em direção a esse ponto. Porém, antes de o personagem alcançar o ponto, você sorteia novamente um outro ponto, e assim por diante. O resultado é que o personagem vai ficar perambulando pelo ambiente. O problema, porém, é que essa estratégia pode não gerar um comportamento muito realista, caso o ponto sorteado encontre-se no lado oposto ao que o personagem estava indo. Nesse caso, ele vai precisar dar um giro de 180 graus, o que não é o que se espera de alguém apenas “passeando”.

Uma outra estratégia é ficar sorteando pequenas variações de ângulo no vetor de velocidade do personagem. Dessa forma, ele não se vira de repente. Se houver alguma alteração, será suave.

Bom… para garantir ainda mais a suavidade nos movimentos do personagem, o ângulo aleatório pode não ser aplicado diretamente sobre a velocidade do personagem, mas em um círculo “imaginário" em frente dele, como ilustra a Figura 09. Nessa abordagem, o ângulo sobre o círculo define o alvo para onde a força de navegação deve “puxar” o personagem.

Representação do ângulo de variação no comportamento <span class='italico'>Wander</span>

3.2 Comportamento Leader Following

Imagine que você esteja desenvolvendo um jogo de tiro, no qual uma equipe precisa seguir seu líder. O líder deve, então, seguir na frente, normalmente com um alvo como objetivo, e os demais devem segui-lo. Porém, não dá para todos irem “logo atrás" dele, senão haverá gente se empurrando e dando cotovelada para todo lado. É preciso seguir a uma distância que dê impressão de que o personagem faz parte do grupo, mas que eles não fiquem se “amontoando" uns sobre os outros.

Dessa forma, não dá simplesmente para usar os comportamentos Seek, Arrival ou Pursuit que você viu na última aula (e nas atividades). É preciso adaptá-los (pelo menos um deles) e combinar com outros comportamentos para termos algo mais realista.

Para implementar o comportamento de Leader Following, você pode utilizar a combinação (e adaptação) dos seguintes comportamentos:

  • Arrival: para ir rapidamente na direção do líder, mas atenuar a velocidade quando estiver chegando perto, chegando a parar, se for o caso;
  • Evade: para fazer com que o personagem saia rapidamente caso esteja na frente do líder;
  • Separation: para evitar sobreposição dos membros da equipe.

O uso de cada um desses comportamentos, nos seus respectivos casos, dá a ilusão de que todos os membros da equipe estão seguindo o líder.

Vale salientar que o ponto de atração para o comportamento Arrival não deve ser necessariamente a própria posição do líder, caso contrário os membros da equipe podem se amontoar sobre ele. O ideal é que o ponto de atração esteja ligeiramente “atrás" do líder. Pode-se calcular esse ponto, invertendo a velocidade do líder (o vetor ficaria no sentido contrário) e definindo uma distância fixa para o tamanho do vetor resultante. A Figura 10 mostra uma ilustração desse comportamento.

Representação do ponto de atração no comportamento <span class='italico'>Leader Following</span>

E com isso você viu alguns comportamentos mais interessantes para colocar nos jogadores do seu time! Pelo menos se um caminhão aparecer no meio do jogo (ah, os bons “macetes" dos videogames), o seu jogador vai conseguir desviar dele antes de virar panqueca! Mas até aqui os nossos jogadores estão sempre seguros de suas decisões, e sempre sabem para que lado vão... o lado que você mandar.

Na próxima aula, vou lhe mostrar como colocar um pouco de “dúvida" nos jogadores (ou em você ), quando você estudar o conceito de probabilidades!

Até lá!

Versão 5.3 - Todos os Direitos reservados