fernando santos osório, sandro ferreira, vinicius nonnenmacher

Post on 16-Oct-2021

0 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTRODUÇÃOEm jogos digitais complexos, o uso de Inteligência Artificial(I.A.) se faz necessário em vários momentos. Um deles équando se faz necessária a solução do problema da busca decaminhos (pathfinding), ou seja, quando aplicamos umalgoritmo de busca, que permita encontrar caminhos, dadoum ponto inicial (origem) e um final (destino). Este problemapertence a uma área da I.A. denominada de busca em espaçode estados.

O algoritmo A* (A Star), é um dos algoritmos de pathfindingmais utilizados em jogos. O A* permite que sejam traçadasrotas baseadas em uma representação de grid (ocupaçãoespacial, com custos de transposição para cada elemento damatriz), bem como em representações de grafos com custosassociados às arestas que unem os vértices deste grafo.

OBJETIVO

O objetivo deste trabalho é, descrevertécnicas e propostas baseadas no A*que permitam aos agentes inteligentesde jogos (NPCs) obter resultadosbastante satisfatórios em algumassituações específicas que requerem ouso de algoritmos de pathfinding.

DEFININDO REGIÕES IMPORTANTES

Definir regiões importantes émuito interessante quando sejoga um jogo de estratégia. Oagente deve ser capaz de analisarum caminho que é comum aoutros agentes, e desse modoexplorar esta propriedade.

Supondo o uso do A* padrão, umagente poderá analisar osterrenos em que está passando, everificar se há uma área de baixocusto em meio a uma grandeárea de alto custo, como porexemplo, um vale em meio àmontanhas. Para efeitos de umjogo, pode-se supor que aquelaárea é um caminho perigoso(ideal para emboscadas), por quevários agentes irão consideraraquele caminho como sendo umcaminho ótimo (de baixo custo).

ALVO

O primeiro passo para obter umcomportamento de fuga é definir prioridadesem relação ao caminho a ser seguido, etambém o caminho a ser evitado.Inicialmente devemos definir o ponto dedestino do agente: a solução mais simples erápida é determinar o ponto mais afastado(em linha reta) em relação ao(s)predador(es). Após ser definido o destino, apróxima prioridade é não passar por pertodo(s) perseguidor(es).

Para que isso aconteça, devemos aumentar ocusto de todos os nós que estejam próximosa um dos inimigos. Desta forma iremos criaruma camada dinâmica (layer) com custosque serão sobrepostos sobre os custos domapa do ambiente, somando assim oscustos referentes aos obstáculos estáticosdefinidos no mapa do ambiente original,junto com os custos que são determinadosde modo dinâmico e que possuem umarelação direta com a proximidade em relaçãoaos inimigos.

FUGA

Em um sistema multi-agentes muitas vezes é necessário criar uma estratégia paracercar uma determinada área importante, como por exemplo, a base dos inimigos,ou mesmo, um inimigo específico (e.g. predadores que cercam uma presa). Parase fixar o destino de cada agente, é definido um círculo ao redor do alvo a sercercado. Este círculo será dividido, em partes iguais de modo que os agentesfiquem distribuídos ao redor do alvo. O raio será dado pela abrangência da área aoredor do alvo, exceto em casos mais específicos onde se deseja chegar a umadistância específica do ponto-alvo.

Para que os agentes cerquem o alvo vindos de diferentes regiões, é feito um novocírculo ainda maior da região alvo. Primeiramente a região alvo é dividida emquadrantes, e utilizando-se destes mesmos quadrantes podemos atribuir custospara distribuir o envio de agentes para cada um deles. Assim podemos aumentar ocusto (camada dinâmica) para os quadrantes onde não se quer que um ou maisagentes passem. Desse modo o agente não passará pelos quadrantes que nãoforam atribuídos a ele, indo diretamente para o quadrante que lhe foiespecificado, e desta forma cercando o alvo.

A* EM TERRENOS 3D

A análise do terreno é uma grande ferramenta que podeser usada para gerar dados que um algoritmo deencontrar caminho (pathfinding) de alto nível usa paraencontrar caminhos interessantes. Para que isso sejapossível o mais trivial é obter a inclinação dos polígonos(triângulos da malha) que definem o terreno, obtendoassim o vetor normal dos mesmos. Para isto, é feita umaanálise prévia da malha (mesh) do terreno. Dada a normaldos polígonos, podemos estimar o grau de inclinação doterreno (individual ou média de uma certa região ougrupo de polígonos). Esta inclinação indicará o custo delocomoção, diretamente relacionado a inclinação doterreno no ponto em questão.

Fernando Santos Osório, Sandro Ferreira, Vinicius Nonnenmacher

Figura 2: Definindo Regiões Importantes

Figura 4: A* Em Terrenos 3D

Figura 3: Alvo

Figura 1: A*

Figura 5: Fuga

top related