Na palestra anterior, adicionamos algum código para calcular a aceleração e os fatores de frenagem com base na
curva que está prestes a ser virada.
Agora, não é bom o suficiente.
Descobrimos, se estamos tentando ir em direção a um determinado ponto de passagem e não olhar adiante para o próximo ponto
de passagem, porque é realmente o que está por vir a seguir, esse será o ângulo de viragem que precisamos tomar.
Assim, nesse caso, podemos realmente implementar um rastreador de progresso, que é uma espécie de ponto de passagem à frente
do carro, e o carro pode seguir o rastreador de progresso em seu lugar.
Então vamos subir até o topo de nosso código controlador AI e vamos adicionar em um objeto de jogo chamado
Tracker.
E vamos ter um waypoint de rastreador de inteligência atual igual a zero e queremos flutuar, olhar em frente e teremos esse
conjunto inicialmente a 40.
Isso é o quanto você quer que o rastreador esteja à frente do veículo em si.
Certo.
Portanto, no início, vamos criar este rastreador.
Assim, o rastreador vai igualar o ponto de objeto de jogo e criar uma cápsula primitiva de ponto
primitivo.
E isto é só para que possamos vê-lo e vamos destruir imediatamente o colisor porque não queremos ter o
carro tropeçando nele ou ficando preso em qualquer lugar.
Portanto, vamos pegar o componente do colisor e removê-lo.
Agora vou colocar esta linha, mas vou comentá-la porque você pode removê-la um pouco mais
tarde.
E basicamente o que é, é o renderizador de malha para a cápsula, para que você possa se livrar dela quando
não precisar mais vê-la.
Portanto, o rastreador recebe componente e isso será um renderizador de malha e vamos colocar ponto habilitado.
Igual a falso.
Depois, teremos transformador de ponto rastreador.
A posição do ponto é igual a esta posição do ponto de transformação.
Portanto, vamos colocá-lo onde o carro está e, em seguida, teremos uma rotação do ponto transformador do rastreador igual a esta rotação
do ponto transformador do ponto.
Portanto, ele está voltado na mesma direção que o veículo.
Muito bem, ótimo.
Então, isso é montar o rastreador.
Agora vamos criar um método de rastreador de progresso, eu acho, um rastreador de progresso vazio.
E isto, basicamente, vai nos fazer progredir.
Eu tenho que contornar todos os pontos de passagem.
Portanto, já estamos fazendo isso com o carro.
Queremos depurar a linha de desenho dos pontos e esta linha é para que possamos ver qual cápsula pertence a qual carro e também
o ângulo entre eles.
Portanto, este ponto transforma a posição do ponto e o ponto do rastreador transforma.
Soletra o ponto certo de transformação do ponto.
Muito bem, então se a distância deste ponto transformar a posição do ponto do rastreador de pontos
for maior, então olhe em frente.
Então, vamos impedir nosso rastreador de se mover.
Portanto, o olhar para o futuro é ter nosso rastreador ligado como um pedaço de elástico e ele só pode chegar tão
longe antes de parar e esperar que o carro pegue.
Certo, então um rastreador transforma o olhar e nós vamos olhar os pontos de passagem dos circuitos entre parênteses.
O atual ponto de passagem do rastreador transformou a posição.
A Troika tem o luxo de usar um lockout, que vai quebrá-lo e olhar diretamente para onde precisa
ir, o que significa que ela vai acabar ficando bem perto de onde está.
Portanto, não devemos nos preocupar com as lamúrias e todo esse tipo de coisas que tornam o desempenho impreciso.
Então Rastreador Transformar, Traduzir e zero zero.
Esta é a velocidade que você quer que seu rastreador vá.
Agora, se você descobrir que o rastreador está realmente muito perto do carro e preso com o carro e nunca fica longe o suficiente,
então é claro que você poderia aumentar este valor.
Descobri com as configurações atuais que parece estar tudo bem.
Certo, então temos isso e é praticamente tudo o que precisamos fazer para mover o rastreador.
E então se a distância vetorial de três pontos do ponto rastreador transformar a posição e o ponto de passagem de corrente do ponto de passagem do circuito transformar
a posição do ponto de passagem do ponto rastreador for inferior a um meio.
Chegamos a esse ponto de passagem e por isso vamos atualizá-lo.
Deixe-me só ver se consigo colocar esta linha aqui para que você possa ver um pouco mais claro o que fizemos.
Certo.
Portanto, depois disto aqui dentro, teremos o waypoint de rastreamento atual plus.
Então, se o ponto de passagem do rastreador atual for maior ou igual ao número deles.
Pontos de passagem de circuito.
Comprimento do ponto.
Então atual.
O ponto de verificação é igual a zero.
Assim.
Vamos nos livrar desse espaço ali dentro.
E então temos aquele suporte ali para terminar nosso rastreador de progresso.
Muito bem, ótimo.
Agora isto tem que realmente correr e ficar à frente do nosso carro.
Portanto, vamos atualizar sua posição dentro da atualização.
Portanto, a primeira coisa que faremos aqui é colocar um rastreador de progresso e simplesmente executar isso.
E depois disso, vamos estabelecer a meta para o carro.
Portanto, o alvo, ao invés de ser um ponto de passagem, será o rastreador de progresso.
Portanto, transformador de ponto rastreador, posição do ponto.
Muito bem.
Assim, o alvo agora se acostuma a trabalhar as distâncias e os ângulos, o que é tudo bom e tudo mais é bom até
chegarmos ao fundo, onde estamos atualizando nossos waypoints e nossos alvos para nosso controlador
de IA.
E vamos apenas comentar isto porque não precisamos mais dele.
Em vez disso, vamos seguir esse rastreador de waypoint.
Ok, então vamos salvar isto e voltaremos à unidade.
E o que vou fazer é apenas passar por alguns dos ambientes com os quais tenho brincado em minhas rodas, o que
também pode influenciar como ela se comporta e como a sua se comporta.
Portanto, novamente, selecione todos os colididores de roda.
Meu torque máximo está em 300, meus ângulos máximos de direção em 90, minha conversa de intervalo máximo está em 5000, e em meus outros
ajustes não mudei o atrito ou, na verdade, brinquei um pouco com a rigidez do mesmo e descobri que vou
ficar apenas com um.
Os outros valores que eu não mudei e eles deveriam ser como você já tinha.
Certo, então agora o que vamos ver quando pressionarmos o play é uma cápsula que o carro vai seguir.
Portanto, vejamos como funciona.
Muito bem.
Então, vamos a isto.
Agora, perceba que chega tão longe e depois espera, tipo, até que o carro se recupere.
E quando chegarmos aqui e ele começar a ir até este ponto, você verá que o carro realmente
vai quebrar muito mais cedo naquela esquina.
E lá vai ela.
E não é muito ruim o que alcancei com isto até agora.
E isso foi, na maioria das vezes, uma brincadeira com esses valores, que é o que você terá que fazer.
Ok, então estamos chegando a esta esquina aqui e o waypoint tracker vai estar ali antes dele realmente.
E agora está de fato virado e depois vai pousar de cabeça para baixo porque é isso que está virado e vai de novo
para fora.
Portanto, não perfeito, mas cada vez melhor.
E você pode, é claro, brincar com a distância entre seu waypoint tracker e o veículo.
Certo.
Agora, uma coisa que é um pouco problemática não está neste canto, mas você teria visto do outro
lado é que o carro vira porque parece que não tem o suficiente para ceder na suspensão naquele momento em
um dos lados.
E, portanto, ele simplesmente vira.
E estamos subindo para virar o carro novamente e notar que quando ele faz isso, ele simplesmente
cai direto, ok.
Um carro normal vai deslizar de um lado.
As rodas podem se erguer aqui e estas realmente assumirão um pouco mais da pressão.
Portanto, voltaremos na próxima palestra e veremos como implementar o código anti-código rolante.