Como mencionei na palestra anterior, desenvolver o olhar para uma multidão de NPCs é muito mais simples do que a maioria
das pessoas pensa.
Isto porque a partir de regras simples, comportamentos complexos podem se desenvolver e embora não estejamos
programando os chamados cérebros dos NPCs, eles ainda parecem se mover com algum nível de inteligência.
Nesta palestra, vamos explorar mais a fundo as multidões com um grupo de personagens animados.
Certo, então para começar, você precisará trazer o arquivo inicial anexado a esta palestra.
Agora, quando você o trouxer à unidade, terá uma nova cena chamada Multidão.
Clique duas vezes sobre isso e abra sua cena, nesse caso você verá todos esses personagens prontos para
ir atrás de você.
Agora, eu fiz muito do trabalho duro até onde as animações vão com esses caras.
Deixe-me apenas mostrar-lhes o que eles são.
Por isso, vou apenas ao controlador para a multidão, e é assim que a animação se parece.
É muito simples.
Você tem ídolo, você tem andar e correr, e você pode fazer a transição entre esses diferentes
estados.
Agora, aqui temos alguns parâmetros para que esteja correndo, esteja caminhando e esteja ocioso.
Portanto, estes são valores de acionamento que nos permitirão a transição de um estado para o outro.
E estaremos usando estes valores aqui para acionar as animações.
Se você não está familiarizado com o sistema de animação, não se preocupe muito.
Isto vai fazer todo o trabalho por você.
Apenas não toque nele e mude o que está fazendo.
Portanto, vamos apenas escrever um código que ligue e desligue essas coisas para que nossos personagens se movam.
Então vamos voltar à nossa cena ou selecionar esta garota novamente.
Dê uma olhada no inspetor.
Todos os personagens terão um agente de animação já ligado a eles.
Eles têm uma velocidade definida para.
A razão pela qual a velocidade é definida a dois é que é mais ou menos a melhor velocidade para a animação de caminhada.
Assim, quando você tem um personagem animado e é um agente, você tem que tentar sincronizar a velocidade
do agente com a velocidade da própria animação para que eles pareçam bastante credíveis.
Muito bem.
Portanto, neste ponto, vamos apenas pressionar o jogo e dar uma olhada no que conseguimos com estes personagens em particular.
Você verá que eles vão diretamente para seu estado ocioso.
Eles estão esperando para receber um objetivo para o qual caminhar.
Então, vamos fazer isso.
E vamos usar nosso roteiro de controle dos olhos, que usamos antes.
Portanto, vamos apenas abrir isso e faremos algumas modificações.
Muito bem.
Portanto, vamos, antes de tudo, nos livrar do público de nosso objeto de jogo aqui e realmente
transformá-lo em uma matriz, porque teremos múltiplas posições.
Então, vamos a locais que chamaremos assim.
Então temos nosso agente como antes.
Tudo bem.
Agora o agente aqui vai colocar o agente de malha no personagem.
Queremos então ler também em todos os nossos objetivos.
Assim, vamos para locais de gol igual a pontos de encontro de objetos de jogo com tag e temos que criar alguns objetivos e defini-los
de fato com a tag de objetivo como esse.
Assim, vai povoar nossos locais de golos e depois o destino definido, vai obter algo do local
do gol.
Portanto, objetivo.
Locais e obteremos um valor aleatório com isso.
Portanto, deixe-me colocar acima disto.
Teremos um INT para.
Portanto, vou chamá-lo de índice para os locais das metas e defini-lo como uma faixa aleatória entre zero e o comprimento
dos pontos dos locais das metas.
E isso nos levará o índice para essa matriz ali.
Então, quando tivermos isso, queremos conseguir a posição.
Então, transforme-o.
Posição como essa.
Certo?
Portanto, economize isso.
Agora vamos voltar à unidade.
E o que vamos fazer é selecionar todos os nossos personagens aqui.
E arraste e solte o controlador aéreo sobre eles.
Certo.
Agora temos que criar alguns locais de metas.
Então, vamos entrar em nossa cena e vamos rolar um pouco por cima.
Vamos entrar em uma hierarquia, clicar com o botão direito do mouse em um objeto 3D, criar um cubo.
Agora esse cubo não precisa ser tão grande e vamos nos livrar do colisor da caixa para que possamos
realmente escalá-lo para baixo.
É apenas um local.
Vamos ver.
Mas queremos que seja no chão, por isso, vamos descer.
Portanto, na verdade está no chão.
Certo.
E vamos fazê-lo enquanto estivermos aqui, etiquetá-lo.
Então vá adicionar tag add goal com letras minúsculas exceto para a tag, clique nesse cubo e depois coloque a tag no goal.
Agora, uma vez que temos uma meta definida, podemos criar outra.
Portanto, basta duplicar esse cubo e colocá-lo aqui.
Muito bem, então estamos prontos para experimentar isto.
Deixe-me apenas verificar para onde minha câmera está apontando.
Sim, está bem.
Agora, vamos brincar com a imprensa e dar uma olhada para onde eles vão, de modo que eles vão escolher um local aleatório.
Note que eles estão deslizando no estado ocioso em direção a ele.
Por enquanto está tudo bem.
Mas você pode ver que estes caras selecionaram este local e estes caras selecionaram aquele local.
E se você acrescentar mais objetivos, então eles irão para diferentes locais de forma aleatória.
Certo.
Portanto, vamos agora acrescentar em nossa animação.
Portanto, no topo de nosso código, vamos colocar o animador.
Adam.
E então, no início, vamos conseguir isso aqui em baixo.
Então, vamos Adam iguala este ponto para obter o componente entre parênteses animador e então podemos ajustar o gatilho de modo
que Adam ponteiro defina o gatilho e então dentro daqui queremos colocar a corda que representa o gatilho que queremos
acionar, eu acho.
Ok, então o que é isso?
Vamos rapidamente voltar à unidade, pegar um de nossos personagens e entrar em nosso animador e dar uma olhada.
Portanto, vamos do Ídolo para a caminhada, que é esta seta aqui.
Portanto, esta transição é se você der uma olhada no inspetor que está caminhando capital W é o que está escrito aqui.
Isto tem que ser exatamente a mesma grafia e capitalização de volta no roteiro.
Ok, então vamos voltar ao nosso roteiro e aqui vamos colocar é andar assim.
Ok, então guarde isso e agora vamos voltar à nossa cena e pressionar o jogo e você poderá ver os personagens correndo
a animação ambulante em direção ao local de seu objetivo.
Então, eles vão embora e estão andando.
Agora, uma vez que eles chegam lá porque são poucos, eles estão meio que brigando para saber se estão
no destino ou não.
Portanto, eles estão meio que se empurrando uns aos outros, o que é um tipo de comportamento interessante.
Mais uma vez, este é um comportamento inerente.
Nós não os programamos para fazer isso, mas eles estão apenas fazendo isso, o que parece bastante arrumado.
Portanto, vamos modificar o código apenas um pouco mais para que, quando chegarem ao seu destino,
eles realmente vão para outro local.
Portanto, vamos colocar se a distância restante do agente for inferior a um, então eles chegaram ao seu destino e, se chegaram, vamos
definir o destino do agente basicamente querer fazer esta linha aqui novamente.
Vamos buscar outro local aleatório e vamos até lá.
Ok, então economize isso.
Vamos voltar à unidade agora com seus cubos que você tem para seus objetivos,
você pode duplicá-los e movê-los para onde você quiser.
Certo.
E então podemos realmente conseguir nosso grupo de pessoas.
Portanto, selecione todas elas e acerte o controle.
D E enquanto temos esse grupo, podemos simplesmente movê-los e depois controlar D e movê-los e controlar
D e movê-los.
Agora temos uma multidão muito maior.
Vamos brincar com a imprensa e dar uma olhada neles vagando pela cena.
Então, eles vão embora.
Eles vão encontrar um local aleatório para onde ir e quando chegarem lá, irão para um local aleatório
diferente.
Assim, você pode vê-los fazendo uma escolha quando lá chegam.
Deixe-me voltar na próxima palestra.
Continuaremos com isto e daremos uma olhada em algum tipo de comportamento mais complexo para a multidão.