Na palestra anterior, começamos com o código de fuga, de modo que pudemos lançar um
cilindro no local.
O que vamos fazer agora é continuar com o código para isso e escrever o código que vai para dentro
da letra A. I. controle para nossos personagens.
Antes de mais nada, quero que você encontre onde colocar todos os seus personagens.
Isso se você os enrolou como eu fiz.
Agora as minas estão sob o bloco da cidade.
Precisamos selecionar todos os caracteres.
Portanto, os turnos selecionam e depois se certificam de que os marcamos com agente.
Portanto, coloque um "plus" ali e agente porque o código no cilindro de gota realmente precisa agarrar todos os nossos personagens
para que eles possam enviar um comando basicamente a eles.
Então, com isso feito novamente, certifique-se de selecionar todas elas e certifique-se de que eu acrescente essa etiqueta em vez de apenas
criá-la.
Certo, então eles estão todos lá agora vamos voltar ao nosso controlador AI.
A primeira coisa que queremos fazer é criar um método de reset que possamos executar toda vez que um agente chega a um local
de objetivo.
Portanto, o agente de reset nulo e vamos mover parte do código de partida para baixo aqui.
Portanto, as coisas que queremos são nosso multiplicador de velocidade, que será esta linha aqui, mas vamos separá-la colocando
aquele flutuador no topo.
Portanto, flutuamos a velocidade de molt e então pegaremos esta linha de código e, na verdade, estas duas linhas de código também.
Portanto, tire esses de lá e coloque-os aqui e nós colocaremos isto para acelerar o malte e nós colocaremos
isto aqui para acelerar.
Molt.
E, é claro, precisamos passar isso para eles também.
Multiplicá-lo com a velocidade para nosso agente.
Certo.
Portanto, além dessas coisas para as quais também vamos definir nossos gatilhos é caminhar
e vamos agarrar essa e colocar essa aqui.
Isso é apagar isso de lá.
E finalmente em Reset, seguiremos o caminho de reset do agente Dot.
Agora, este é um comando que pertence aos agentes da malha de navegação, o que permite, basicamente, reiniciar o
caminho, o que é impedir que eles sigam seu caminho atual e, mais ou menos, que fiquem claros onde quer
que estejam saindo de seu sistema.
Certo.
Assim, agora que temos isso, podemos colocar isso em nosso início.
Por isso, aqui embaixo, vamos executar um agente de reset dessa forma.
Muito bem, agora vamos descer e colocar nosso novo método.
Esse cilindro de gota vai chamar quando um cilindro for largado.
Certo.
Portanto, aqui embaixo, vamos colocar neste vazio público, detectar novos obstáculos e enviar um vetor três para a posição
desse obstáculo.
E então dentro daqui iremos se o vetor a três pontos de distância entre o agente assim posicionar este ponto
transformar.
A posição do ponto é inferior ao nosso raio de detecção.
Agora, isso é algo que temos que definir no topo do código, o que faremos em um momento.
Portanto, se estivermos dentro do raio de detecção, então vamos realmente fugir da posição.
Portanto, vetor três.
A direção da fuga é igual a este ponto.
Transformar a posição superior menos a posição que está sendo atravessada e vamos normalizar isso, o que a colocará
no comprimento de uma posição tão normalizada.
E depois vetor três novos objetivos.
Equivale a esta posição de transformação do ponto mais a direção do vôo multiplicada pelo raio do vôo.
Agora é o quão longe queremos realmente fugir do obstáculo que detectamos.
Portanto, vamos criar estes dois objetos no topo de nosso código.
Portanto, queremos um flutuador para o raio de detecção que será igual, digamos, a cinco, e um flutuador para o raio FLI,
que será igual a dez.
Ok, então vamos continuar escrevendo este código aqui.
Assim, criamos um novo local para onde ir, que é a partir da posição de nosso jogador ou nosso agente, mais a direção do vôo multiplicada
por um determinado raio para empurrá-lo para fora.
Portanto, o trajeto da malha de navegação é igual ao novo trajeto da malha de navegação.
Agente ponto calcular caminho.
Novo objetivo.
Retornar o caminho.
E então vamos dizer que se o status do ponto do caminho não for igual ao do ponto do caminho da malha de navegação em vigor, então vamos realmente definir
o personagem ao longo desse caminho.
Certo.
Portanto, voltando a este código por um minuto, esta é nossa funcionalidade de malha de navegação que está embutida.
Portanto, em vez de definirmos o destino de um agente como já fizemos antes aqui embaixo, vamos
definir o destino do agente.
Antes de tudo, estamos vendo se podemos calcular um caminho válido de onde estamos até onde queremos estar, porque esse novo
local pode estar realmente fora da malha de navegação e pode não ser possível.
Por isso, não queremos, portanto, colocar o agente em movimento se eles não puderem chegar ao seu OC.
Portanto, se eles conseguirem chegar lá, o caminho não é inválido para o nosso agente, então iremos ao agente definir
o destino e o colocaremos nos cantos dos pontos do caminho.
Caminho, cantos de pontos, comprimento dos pontos menos um e depois ano.
O disparador do ponto está funcionando de modo que isto irá definir nossa animação e está funcionando a velocidade do ponto agente será igual
a dez neste ponto e a velocidade angular do ponto agente, que é a velocidade com que ele gira ao redor.
Vamos fixar isso em 500 agora, porque estamos fixando isso lá.
Teremos que ajustá-lo a um valor menor quando o reinicializarmos.
Porque quando você volta a andar entre as caixas de ouro, você não quer realmente dar a volta muito rápido como
se estivesse fugindo delas.
Portanto, aqui em cima irá.
A velocidade angular do ponto agente é igual a 120.
Ok, deixe-me apenas voltar a este destino definido.
Por isso, quando conseguimos o caminho por aqui, o que ele faz é pegar um monte de pontos de passagem
e colocá-los em uma lista de caminhos ou em uma matriz chamada "cantos".
E estes cantos são nossos pontos de referência básicos desde nossa posição atual até a última posição ou a posição de objetivo.
Portanto, a posição de objetivo nesta lista estará no final da lista, e é por isso que colocamos isto aqui
entre parênteses rectos para indexá-la.
Muito bem.
Portanto, vamos salvar isso agora.
Voltaremos ao cilindro de gota porque precisamos ter certeza de que a detecção para cada agente será feita em nossa
atualização, onde a colocamos aqui.
Portanto, este é o nosso laço que atravessa cada agente.
Marcamos todos os nossos agentes.
Por isso, aqui em baixo, vamos fazer um ponto para obter o controle do componente I.
Detectar novo obstáculo.
E nós vamos passar assim pelo ponto de informação de sucesso.
Portanto, isto enviará através da posição do cilindro para os agentes que então fugirão dele.
Portanto, vamos salvar isso.
Vamos voltar à unidade e vamos experimentar isto.
Então, vamos pressionar o jogo e todos estão vagando por aí.
Vamos cair em um cilindro.
Certo.
No entanto, ninguém parece estar muito perturbado com o cilindro.
Há algumas pessoas correndo por aí.
Certo.
Então aquela garota, eles correram em volta e longe do cilindro.
Muito bem, então vamos parar de jogar isso.
O que eu gostaria de fazer, antes de mais nada, é realmente me posicionar melhor aqui em cima.
Então, vamos entrar nisso e então pegaremos nossa câmera e nos alinharemos para ver para que possamos realmente deixar cair
nossos cilindros em um lugar melhor.
Portanto, alinhe-se com a visão da câmera.
Agora vamos voltar ao nosso controle e o que vamos fazer aqui em cima para o nosso raio de detecção
é apenas ajustar isso para 20 para aumentar a distância de ver o cilindro porque se você não vê o cilindro, então você pode simplesmente continuar
caminhando em direção a ele, eu acho.
Certo, então estamos guardando isso e vamos fazer isso novamente e dar uma olhada.
Está bem?
Assim, uma vez que a multidão está meio que vagando por aí, podemos largar um cilindro como aqui.
E você pode ver que todos eles fugiram daqui e estão todos fugindo e ficando absolutamente
loucos.
Agora precisamos impedi-los de correr uma vez que estejam prontos para correr atualmente e então eles simplesmente continuam
correndo e correndo e correndo.
Portanto, este é um desafio para você.
Você pode descobrir como precisamos modificar o código?
E deixe-me dar-lhe uma dica.
Para corrigir isso, basta inserir uma nova linha de código no método de atualização.
Então, faça uma pausa no vídeo.
Agora, vá dar uma olhada nisso.
E quando voltarmos, eu lhe mostrarei como fazê-lo.
Muito bem.
Como você reagiu a isso?
Bem, se voltarmos ao nosso controlador AI, você se lembrará que colocamos este agente de reset aqui.
Na verdade, precisamos executar isso sempre que chegarmos a um local objetivo.
Portanto, a localização da meta está sendo verificada aqui na atualização.
Portanto, o que queremos fazer depois de termos alcançado nossa localização antes de conseguirmos uma nova meta
de localização é realmente executar um agente de reset, o que fará com que as animações voltem a andar e também definirá as velocidades e tudo
de volta ao normal.
Portanto, uma espécie de calma ao andar por aí em vez de fugir.
Certo, então se salvarmos isso rapidamente, voltamos à nossa cena.
Agora, o que vou fazer é apenas testar isto e vai agarrar todas estas pessoas e controlá-las
para fazer um conjunto duplo de todos.
Portanto, teremos muita gente correndo por aí.
Vamos agora pressionar o jogo.
Muito bem.
Portanto, todos eles estão indo um pouco rápido demais para realmente notar o efeito aqui.
E eles estão realmente indo super rápido para começar.
Eles não estão fugindo.
Eles estão realmente executando este código aqui para nosso multiplicador de velocidade, que tem isto a valorizar aqui.
Portanto, vou realmente atrasar esses caras para que possamos realmente ver o efeito.
E vamos colocar isto em 1. 5 F lá dentro.
Ok, então vamos salvar isso.
Agora, antes de jogar isto, também vou pegar um desses locais de gol e duplicá-lo e apenas colocar
alguns aqui para que possamos ter mais pessoas correndo no centro da cena.
Muito bem, então vamos brincar com a imprensa e vamos dar uma olhada neles quando saírem para o centro aqui.
E uma vez que eles se movimentam, podemos realmente começar a jogar alguns cilindros no meio de um monte deles.
Assim, como aqui embaixo, vê-los todos fugindo dela.
Então, isso é fugir.
E espero que tenham gostado de brincar com esta multidão e esta técnica.