Nesta seção, começaremos a analisar a simulação de um grupo de agentes nos quais eles são
tratados menos como indivíduos e mais em massa.
O comportamento da multidão difere do comportamento individual na medida em que propriedades
dentro da multidão, tais como movimento, colisão, direção e velocidade se propagam de uma pessoa para outra, dando ao grupo
inteiro sua própria identidade para simular cada indivíduo em tal grupo e depois produzir uma multidão seria trabalho intensivo.
E de fato, muitas das coisas que você pode considerar importantes para o movimento individual
de uma multidão podem ser resumidas a simples matemática vetorial.
Há inúmeros métodos que os pesquisadores têm investigado para simular multidões, incluindo a movimentação
de pessoas como partículas em um fluido para usar dados do mundo real.
Uma multidão não se move como um conjunto caótico de indivíduos, mas sim de uma forma quase organizada.
Diz-se que é um sistema auto-organizador onde as linhas de fluxo aparecem na direção do movimento.
Entretanto, descobriu-se que se uma multidão se tornar mais densa do que seis pessoas por metro quadrado, então ocorrerão
bolsões de turbulência.
Uma das formas mais populares e simples de simular uma multidão é com o algoritmo Reynolds que tem
sido usado em filmes para simular rebanhos e exércitos de animais.
Baseia-se em três regras simples: virar em direção ao rumo médio do grupo, virar em direção ao
centro médio do grupo e evitar aqueles ao seu redor.
Usaremos estas regras em combinação com as medidas de NAV e a moldagem de tarifas para criar multidões
e rebanhos nesta seção.
Assim, para começar nossa exploração de multidões, vamos criar aqui uma multidão realmente simples sobre uma malha
de navegação para que possamos investigar os princípios de fluxo e como há auto-organização dentro disso.
O que eu gostaria que você fizesse é criar um novo projeto de unidade.
E dentro dele, vamos acrescentar apenas um plano simples como este.
Agora, eu acabei de colocar uma textura para que você possa vê-la melhor.
Eu criei dois objetos de parede e estes eram apenas cubos que eu estiquei, então eu basicamente
os selecionei e os estiquei de maneiras diferentes para que você obtenha estas duas paredes dessa maneira.
Agora também precisamos de uma localização objetiva para nossos dois agentes.
Temos uma cápsula azul e uma cápsula vermelha.
Estes serão nossos agentes de malha de navegação.
Eu preciso de um cubo adicionado aqui, que será chamado de meta vermelha, como você pode ver na hierarquia,
e este aqui, que será a meta azul.
O que vamos fazer é fazer com que nossos agentes percorram este curso para chegar ao seu objetivo particular.
A seguir, você pode criar o agente.
Portanto, os agentes são apenas cápsulas.
E a essas cápsulas acrescentei um material azul e um material vermelho.
Agora há alguns outros arquivos em meus bens.
Não se preocupe com isso.
Chegaremos a eles na próxima palestra.
Só por enquanto.
Não estamos precisando deles.
Certo, então, uma vez que você tenha essa instalação em particular funcionando, vamos fazer uma malha.
Portanto, precisamos selecionar o avião, que é o chão e as paredes.
E a partir daí, vamos então até o inspetor e você quer ter certeza de que você os coloca
em navegação estática, estática, para que possamos colocar a malha de navegação ali e assá-la.
Portanto, basta clicar no botão de cozimento na guia de navegação.
A outra coisa que você quer fazer com esses dois objetivos, se nós os selecionarmos no inspetor, é simplesmente desligar
a caixa deles.
Colisão Nós apenas os queremos como um local de destino, nada com que colidir e nada na malha de navegação.
Ok, então agora estamos prontos com isso.
Vamos criar um roteiro do controlador aéreo.
Então, crie você mesmo um novo roteiro afiado em C chamado I Control.
E nós vamos abrir isso e colocar algum código para esses agentes.
Certo.
Portanto, neste código, queremos a IA do motor de unidade em nossas bibliotecas aqui em cima.
Vai continuar sendo um comportamento mono.
Estes vão para as cápsulas, todos os agentes.
Por isso, quando os tivermos, precisamos configurá-los com um local de meta para chegarmos.
Portanto, vamos a um objetivo de objeto de jogo público e depois precisamos de nosso agente NAV para conseguir o agente que está naqueles objetos.
Quando os adicionamos, então, dentro da partida, o agente vai igual a este ponto obter agente de malha de navegação componente.
E então, com esse agente, vamos definir o destino do agente para a posição de ponto de transformação de objetivo.
Portanto, por enquanto é praticamente tudo o que precisamos aqui dentro.
Portanto, poupe isso agora que vamos voltar a entrar.
Unidade.
E o que faremos com esses roteiros é colocá-los em um agente azul.
Portanto, vamos arrastar e soltar isso em nosso agente azul.
E também queremos deixá-lo cair sobre o agente vermelho.
Ok, agora vamos voltar ao inspetor agora para o agente azul e o agente vermelho, que eu posso simplesmente
selecionar e adicionar isto a ambos é um componente de agente de malha de navegação.
Deixe-me rolar isto para cima para que você possa ver o que está acontecendo aqui embaixo.
Certo.
Portanto, as configurações básicas para nosso agente de malha de navegação que temos usado antes, a velocidade, você pode querer
acelerá-las um pouco mais para ver a simulação.
Portanto, vou aumentar a velocidade deles para dez.
Certo.
Agora, selecionando o agente azul, vou definir o objetivo aqui para o objetivo azul e depois o agente vermelho será definido
para o objetivo vermelho como aquele ali.
Muito bem.
Então vamos agora apenas pressionar o jogo e dar uma olhada no que acontece quando lhes é pedido para irem a um novo destino.
Certo.
Portanto, eles vão subir.
Eles atravessam o corredor e vão até seus objetivos.
Nesse momento, eles vão parar.
Muito bem.
Portanto, enquanto estamos aqui, vamos apenas ajustar essa câmera principal ao objeto de jogo, alinhá-la com a vista para que
possamos vê-la quando eu pressionar o jogo e ter que voltar à cena.
O que vamos fazer com nossos agentes, assim como o nosso agente azul.
E nosso agente vermelho é só mudar, selecioná-los e acertar o controle D para fazer algumas duplicatas como
essa.
Agora todos eles estarão exatamente no mesmo espaço, mas uma vez que começarem a se mover, todos eles
se separarão por causa de seus colididores.
Vamos brincar com a imprensa e dar uma olhada se conseguirmos iniciar essas linhas de fluxo e essa auto-organização.
Ok, então aqui eles vêm e vão junto.
E você pode ver que eles o fizeram.
Então, eles ficaram juntos.
Agora, ainda nem sequer lhes dissemos para ficarem juntos.
É apenas a forma como está realmente trabalhando esta linha de fluxo.
É como quando as pessoas estão em uma multidão e estão se movendo, elas tendem a ir com o caminho menos resistente, mesmo que
você ainda não lhes tenha dito para fazer.
É quase como se a água se organizasse também quando está fluindo em diferentes direções.
Portanto, vamos acrescentar mais alguns agentes.
Vamos apenas mudar, selecioná-los e depois ir ao controle D, controlar D e pressionar play e veremos
o que isto faz.
Certo.
Então, eles estão voltando e há um pouco de turbulência.
Então essa é a turbulência que está chegando porque agora temos basicamente mais de seis personagens e eles vão para cada
ponta.
Portanto, esta é realmente uma simulação divertida para se brincar um pouco e experimentar o tipo de funções
que aconteceram dentro do fluxo de uma multidão.
Portanto, sinta-se à vontade para adicionar mais cápsulas de diferentes cores com diferentes locais de gol, se você quiser
ter um pouco de brincadeira com ele.
Você pode modificar esta simulação o quanto quiser, acrescentando mais paredes e mais agentes.
Aqui você pode ver que eu tenho quatro agentes de cores diferentes e mesmo quando eles se aglomeram você pode
ver claramente as linhas de fluxo que se formam no IE.
Quando este tipo de comportamento ocorre em um sistema que não está especificamente programado para fazer
isto, é chamado de comportamento emergente e são estes resultados inteligentes e realistas que estamos tentando obter em nossos
NPCs com o mínimo de esforço de programação possível.
Na próxima palestra, trabalharemos em uma simulação de multidão com personagens humanos animados.