4/12/2017 2:27 AM 1
Física e Inteligência Artificial para jogos utilizando XNA 4/12/2017 2:27 AM Física e Inteligência Artificial para jogos utilizando XNA Nome Roger Tang Empresa GLU Mobile
Agenda Física Inteligência Artificial Primeira lei de Newton Modelando Velocidade, Atrito e Aceleração Impulso e Quantidade de Movimento Colisão e Conservação de energia Exemplo Engines de Física Inteligência Artificial Chase – Perseguição Evade – Fuga Exemplos
Física
Conceito de amostragem É necessário armazenar o tempo transcorrido entre duas amostragens para efetuar uma simulação física. A amostragem temporal do jogo (Frames por segundo) não é contínua. A variação temporal entre duas interações de “Update” não pode ser considerada 1 e deve ser calculada a cada interação O XNA possui a classe auxiliar GameTime que permite calcular o tempo transcorrido entre duas interações
Primeira Lei de Newton Lei da Inércia Modelo Na ausência de forças, um corpo em repouso continua em repouso, e um corpo em movimento, continua em movimento retilíneo uniforme (MRU). Modelo Em uma simulação onde existe uma esfera rolando sobre uma superfície a força que faz com que o corpo desacelere e perca velocidade é a força de atrito. Esta força é contrária ao vetor velocidade. velocidade atrito
4/12/2017 2:27 AM Demonstração
Modelando Velocidade em XNA A velocidade é a derivada do espaço no tempo Codificando em XNA
Modelando Atrito em XNA O atrito é força contrária ao movimento velocidade atrito
Modelando Aceleração em XNA A aceleração é a derivada da velocidade no tempo Codificando em XNA
Impulso e Quantidade de Movimento Para o caso do exemplo anterior, como a aceleração é constante, a velocidade cresce exponencialmente a cada ciclo de “Update”. Logo a velocidade tende ao infinito. Como queremos apenas alterar a velocidade em um curto espaço de tempo, vamos aplicar um Impulso No nosso modelo vamos aplicar o Impulso no intervalo de tempo de apenas um ciclo de “Update”. Desta forma assim que processarmos a nova velocidade vamos zerar o valor do impulso. Para o nosso exemplo, o Impulso continuará sendo aplicado enquanto o botão do “gamepad” estiver sendo pressionado
Modelando Impulso em XNA O Impulso é aplicado em apenas em ciclo de update
Colisão e Conservação de Energia Conservação da Energia Cinética. A soma da energia antes da colisão é igual a Energia depois da colisão Conservação do Momento Coeficiente de Restituição. É a medida de quanto uma colisão é Elástica ou Inelástica
Resolvendo as velocidades finais Desta forma as novas velocidades depois da colisão são dadas por:
Detectando Colisão Cria-se uma esfera envolvendo a malha e verifica se uma esfera intercepta a outra
Codificando novas velocidades
4/12/2017 2:27 AM Demonstração
Engines de Física – Open Source Open Source Engines Box2D Physics Engine - Engine 2D Bullet – Multarefa, colisão 3D e Dynamic Rigid Body ODE (Open Dynamics Engine) - Dynamic Rigid Body OPAL (Open Physics Abstraction Layer) PAL (Physics Abstraction Layer ) Tokamak Game Physics Farseer Physics Engine (engine 2D para Microsoft XNA e Silverlight)
Engines de Física – Profissinais PhysX – Nvidia – build-in editor, graficos Direct X e som, vertex based Phyz Torque X – Garage Games Newton Game Dynamics Phun 2D Physics Sandbox Havok AgX Multiphysics (software) Working Model
Inteligência Artificial
4/12/2017 2:27 AM Chase - Perseguição O conceito de perseguição consiste em direcionar o agente para o alvo e iniciar a perseguição Vector3 direction = A.position – B.Position;
Lógica para definir lado da rotação
Implementando Perseguição
Exemplo de Busca e Perseguição
Evade - Fuga O conceito de fuga consiste em direcionar o agente para a posição oposta ao alvo Vector3 posicaoFuga = 2 * A.posicao - B.posicao;
Exemplo de Busca e Perseguição
Estados da IA Vagando Capturando Fugindo Capturado
Outras técnicas de IA Sterring Behaviours Redes Neurais Logica Fuzzy Chase and Evade Wander ... Redes Neurais Logica Fuzzy Pendencias Alterar a IA da nave de perseguicao Esplicar o conceito de tomada de decisão para tiro do exemplo do asteroide Explicar a IA do exemplo de perseguição
http://www.gamefestbrasil.net/ 4/12/2017 2:27 AM © 2008 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.