Tutorial: Jogo de Plataforma no Unity 5 – Parte Final – Animando o Pulo com Blend Tree

No tutorial anterior fizemos nosso personagem pular de uma plataforma para outra, mas sem nenhuma animação. Neste tutorial vamos fazer a animação do pulo usando uma técnica chamada Blend Tree.

Assim, finalizaremos o nosso jogo de plataforma no Unity 5.

Animando o Pulo com Blend Tree

O primeiro passo é criar uma animação para cada sprite do pulo. Se você ainda não importou os sprites do pulo, agora é a hora. É da mesma forma que fizemos para as outras animações.

Após importar os sprites de pulo, selecione o Heroi e abra o painel Animation. Assim como fizemos para as outras animações, selecione Create New Clip e nomeie como Pulo1.

1 - Create New Clip

Expanda o sprite de pulo e selecione o primeiro sprite e o arraste para o painel Animation. Depois selecione Create New Clip novamente, nomeie como Pulo2 e arraste o segundo sprite para ele. Repita o processo até que todos os 10 sprites sejam usados.

2 - sprites

Você verá no painel Animator que apareceram os 10 pulos que criamos. Você pode selecioná-los e removê-los.

No painel Animator, clique com o botão direito e selecione Create State -> From New Blend Tree. Renomeie-o para Pulo.

3 - Create Blend Tree

Adicione um parâmetro do tipo Float chamado VelocidadeVertical e outro parâmetro do tipo Bool chamado NoChao.

4 - Parameters

Por fim, crie uma transição de Any State para Pulo e coloque a condition como NoChao false. E crie outra saindo do Pulo para Parado com a condição NoChao true.

5 - Transition

Agora vamos ligar as animações que criamos com a Blend Tree. De 2 cliques no Pulo que acabamos de criar para abrir o modo de edição da Blend Tree.

 

6 - blend

No painel Inspector, verifique o Blend Type para estar como 1D e mude o campo Parameter para usar VelocidadeVertical. Após isso, clique no sinal de mais (+) e adicione um motion field para cada animação que criamos. Para cada um deles, clique no círculo ao lado do nome e selecione Pulo1 para o primeiro, Pulo2 para o segundo e assim por diante.

7 - Threshold

O último passo é configurar os valores que cada motion field terão. No campo Threshold coloque o valor -4 para o Pulo10, -3 para o Pulo 9 e assim por diante.

Terminamos a configuração básica do pulo. Vamos só alterar o nosso código para preencher os novos parâmetros e ver a animação funcionando.

Código

Abra o script Heroi e adicione a seguinte linha:

animator.SetBool ("NoChao", noChao);

Após esta linha no método FixedUpdate:

noChao = Physics2D.OverlapCircle (ChaoCheck.position, chaoCheckRaio, OQueEChao);

Depois adicione:

animator.SetFloat ("VelocidadeVertical",  GetComponent ().velocity.y);

Após esta linha no método FixedUpdate:

GetComponent ().velocity = velocidade;

E no método Update, dentro do:

if (noChao && Input.GetButton ("Jump")) {

Adicione:

animator.SetBool ("NoChao", false);

Salve e execute o jogo. Veja que a animação pulos menores não executa completamente deixando-a mais natural.

Você pode alterar os valores do campo Threshold para deixar a animação ainda mais perfeita!

 

É isso aí, pessoal. Acabamos mais uma série de tutoriais! Deixo aqui algumas dicas para você incrementar o seu jogo de plataforma:

Abraços e até mais!

Filipe Leal

Bacharel em Ciência da Computação pela UDESC e certificado como Microsoft Specialist. Atualmente trabalha como programador na Basecorp Learning Systems. Reside em Edmonton - Canadá. Faixa preta com 1o. grau em Pa-kua, tem preferência por jogos de Ação/Aventura, RPG, Luta e Party Games. Seu jogo favorito é The Legend of Zelda - Ocarina of Time.

3 thoughts on “Tutorial: Jogo de Plataforma no Unity 5 – Parte Final – Animando o Pulo com Blend Tree

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *