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.
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.
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.
Adicione um parâmetro do tipo Float chamado VelocidadeVertical e outro parâmetro do tipo Bool chamado NoChao.
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.
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.
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.
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:
- Plataformas Móveis: https://www.fabricadejogos.net/posts/tutorial-movimentacao-de-plataformas-no-unity3d/
- HUD: https://www.fabricadejogos.net/posts/tutorial-hud-no-unity/
Abraços e até mais!
3 thoughts on “Tutorial: Jogo de Plataforma no Unity 5 – Parte Final – Animando o Pulo com Blend Tree”