-
Nesse vídeo vamos configurar
-
o animator controller do jogador para
-
podemos controlar qual animação
-
está sendo executada via script.
-
A primeira coisa que vamos fazer é adicionar
-
o player prefab na hierarquia.
-
Vamos em Prefabs
-
seleciona o jogador e arrasta até hierarchy.
-
Em seguida vamos abrir o animator controller do player.
-
Vamos em Animations
-
Animator Controllers
-
e clique duas vezes em Player.
-
Aqui temos as animações que foram criadas
-
anteriormente e que foram adicionadas ao animator
-
controller como estados.
-
Vamos organizar as animações para que a gente possa ver
-
melhor, vamos mover PlayerIdle para cima,
-
PlayerChop para cá
-
e PlayerHit aqui.
-
PlayerIdle está laranja porque é o estado default.
-
Quando o jogo começa
-
a animação idle do jogador começa a ser executada.
-
O que vamos fazer é configurar as transições
-
quando a animação PlayerIdle irá ser interrompida e irá
-
alterar ou para a animação Chop,
-
quando o jogador ataca a parede,
-
ou para a animação Hit, quando o jogador
-
é atacado por um inimigo.
-
A primeira coisa que vamos fazer é configurar
-
alguns parâmetros que serão
-
utilizados para disparar
-
estas animações através de scripts.
-
Você pode ter que clicar no botão Parameters para
-
tornar os parâmetros visíveis,
-
e em seguida vamos clicar no botão +
-
para criar um parâmetro do tipo Trigger.
-
O primeiro parâmetro será chamado playerChop.
-
Um trigger é quase igual um boolean, a diferença
-
é que ele é imediatamente reiniciado depois de ser usado em uma transição.
-
É como um boolean que será true
-
no frame no qual é chamado
-
e depois vira false de novo.
-
Vamos criar outro Trigger chamado playerHit.
-
Agora vamos criar algumas transições entre nossos estados.
-
Clique com o botão direito em PlayerIdle,
-
selecione Make Transition,
-
e arraste até o estado PlayerChop.
-
Depois vamos clicar com o botão direito em PlayerChop
-
e criar uma transição de volta
-
de PlayerChop a PlayerIdle.
-
Isso significa que PlayerIdle pode fazer uma transição
-
a PlayerChop e PlayerChop
-
pode fazer uma transição de volta a PlayerIdle.
-
Vamos clicar na transição de PlayerIdle para
-
PlayerChop para que ela fique visível no Inspector.
-
A transição de PlayerIdle para PlayerChop
-
não terá um Exit Time.
-
Vamos desabilitar Has Exit Time.
-
Isso significa que não precisamos esperar
-
a animação PlayerIdle terminar
-
ou alcançar um certo ponto antes de
-
fazer a transição para PlayerChop.
-
Queremos que a transição ocorra
-
abruptamente de PlayerIdle para PlayerChop
-
independente do ponto onde esteja a animação Idle.
66
00:02:58,021 --> 00:03:00,021=
Vamos também abrir settings e
-
ajustar o tempo de transição para 0.
-
Usamos um tempo de transição 0
-
quando trabalhamos com animação de sprites.
-
Quando trabalhamos com animações 3D
-
é comum que queiramos fazer uma transição suave
-
entre animações
-
porém com animação de sprites isto não é possível
-
então vamos fazer uma transição imediata
-
de um estado para o outro.
-
Em seguida vamos determinar o que vai disparar
-
a transição.
-
Na lista de condições vamos clicar
-
no botão + para adicionar uma nova condição
-
que vai determinar quando a transição
-
será disparada.
-
Uma lista de condições será exibida,
-
neste caso PlayerChop, que é
-
a opção default é exatamente a condição que precisamos.
-
Se quiséssemos mudar poderíamos selecionar outra condição da lista
-
e escolher ou PlayerChop ou PlayerHit.
-
Agora quando o trigger PlayerChop é
-
disparado através do script do jogador iremos
-
fazer a transição de PlayerIdle para PlayerChop.
-
Para a transição de PlayerChop
-
de volta para PlayerIdle vamos manter
-
Has Exit Time ative mas iremos
93
00:04:07,704 --> 00:04:10,610
configurá-lo para 1, isso significa que a animação
-
PlayerChop terá que ser totalmente
-
concluída antes de fazer a transição
-
de volta a PlayerIdle.
-
Vamos também configurar a duração de transição para 0.
-
Como configuramos Has Exit Time
-
para true de PlayerChop
-
para PlayerIdle não iremos precisar
-
condições adicionais,
-
a transição ocorrerá
-
quando exit time for atingido.
-
Vamos configurar as mesmas coisas para PlayerHit.
-
Vamos selecionar PlayerIdle,
-
selecionar Make Transition,
-
e arrastar para PlayerHit.
-
Clicamos em PlayerHit, depois clique no botão direito,
-
selecionamos Make Transition,
-
e fazemos a transição de volta para PlayerIdle.
-
Vamos selecionar a transição de PlayerIdle
-
para PlayerHit, e aqui vamos configurar
-
Has Exit Time para falso
-
Porque queremos interromper a animação
-
PlayerIdle sempre que o jogador é atingido.
-
E vamos configurar a duração da transição de novo para 0.
-
Na lista de condições vamos clicar no botão +,
-
e selecionar PlayerHit da lista.
-
Para a transição de volta a PlayerIdle.
-
Vamos usar Has Exit Time porque
-
queremos que a animação termine de executar
-
configuramos Exit Time para 1 porque queremos
-
a transição no fim da animação,
-
e vamos configurar a duração da transição para 0.
-
Antes de seguir em frente vamos testar.
-
Vamos prender a janela Animator
-
na parte de baixo da tela.
-
Rodamos o jogo, e o que faremos
-
é disparar manualmente os
-
triggers e ver o que acontece.
-
Vamos testar PlayerChop primeiro.
-
E depois testar PlayerHit.
-
Ótimo, podemos ver que estão funcionando.
-
Agora que o Animator Controller do jogador está funcionando
-
vamos para o próximo vídeo
-
onde iremos escrever o script do jogador.