Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula

arrow_back Aula 08 - Animação de Sprites – Parte II

3. Utilizando Blend Trees

3.1 Preparando o Animator Controller

A fim de criarmos a animação do nosso personagem para o pulo e a queda através da Blend Tree, utilizaremos os mesmos princípios iniciais já realizados anteriormente. Precisaremos de parâmetros em nossa animação que serão responsáveis por controlar o momento do pulo, assim como precisaremos alterar o nosso script para esses parâmetros serem atualizados pelo código, a cada novo frame.

Começaremos, então, pelos nossos parâmetros! Dentro da aba Animator, com o nosso Animator Controller selecionado, adicionaremos dois novos parâmetros ao nosso controlador: o booleano grounded e o float vertSpeed. Faremos isso da mesma maneira como fizemos anteriormente. O resultado final pode ser visto na Figura 8.

Novos parâmetros adicionados ao Animator Controller.

O parâmetro grounded será o responsável por dizer à animação se estamos ou não no chão. Esse parâmetro será obtido a partir da variável grounded, a qual temos em nosso código e serve justamente para isso. Assim, poderemos saber quando iniciar a animação de pulo. O parâmetro grounded será a base do nosso controlador para saber quando trocar de animação!

O segundo parâmetro, o vertSpeed, indicará a velocidade que estamos no ar. Isso será importante para a posição do nosso personagem poder se adequar em relação à velocidade que ele está. Através desse parâmetro, é possível saber se estamos iniciando o pulo, chegando ao ponto mais alto, começando a descer ou, até mesmo, já chegando no chão. Esse parâmetro será a base da nossa Blend Tree para saber quando trocar de animação internamente!

Agora que já criamos os parâmetros, qual o próximo passo? A resposta já foi dada anteriormente!

Acertou quem pensou em definir os valores a partir de nosso código! Agora que já temos os parâmetros da animação, devemos alterar o nosso código principal a fim de esses parâmetros serem atualizados de acordo com as variáveis que lhe dizem respeito! Utilizaremos os mesmos métodos de setBool e setFloat no nosso Animator. As alterações podem ser vistas em destaque, na Listagem 2.

Listagem 2 - Atualização de parâmetros de animação.

Aproveitamos, ainda, para alterar um pouco o nosso código, movendo o teste de grounded, que anteriormente estava no método Update, para o método FixedUpdate. Fizemos isso por duas razões: o teste de grounded utiliza o motor de física, o qual sempre é atualizado de acordo com o FixedUpdate, e as animações também se baseiam no FixedUpdate, de acordo com o que foi previamente definido, para serem atualizadas. Além disso, configuramos a alteração dos dois parâmetros necessários.

Perceba agora que, ao apertarmos espaço, o valor de grounded que se inicia em true se altera para false, enquanto o vertSpeed parte de uma velocidade por volta de 8, até chegar a 0 e retornar ao chão com -8. Com isso, estamos prontos para montar a nossa Blend Tree e configurá-la para se alterar de acordo com o valor de velocidade vertical!

Vamos adiante!

Versão 5.3 - Todos os Direitos reservados