< Return to Video

2D Roguelike 8 of 14 : Player Animator Controller

  • 0:02 - 0:04
    Nesse vídeo vamos configurar
  • 0:04 - 0:06
    o animator controller do jogador para
  • 0:06 - 0:08
    podemos controlar qual animação
  • 0:08 - 0:11
    está sendo executada via script.
  • 0:11 - 0:13
    A primeira coisa que vamos fazer é adicionar
  • 0:13 - 0:16
    o player prefab na hierarquia.
  • 0:16 - 0:18
    Vamos em Prefabs
  • 0:20 - 0:24
    seleciona o jogador e arrasta até hierarchy.
  • 0:25 - 0:30
    Em seguida vamos abrir o animator controller do player.
  • 0:30 - 0:32
    Vamos em Animations
  • 0:33 - 0:35
    Animator Controllers
  • 0:36 - 0:38
    e clique duas vezes em Player.
  • 0:39 - 0:42
    Aqui temos as animações que foram criadas
  • 0:42 - 0:44
    anteriormente e que foram adicionadas ao animator
  • 0:44 - 0:46
    controller como estados.
  • 0:46 - 0:48
    Vamos organizar as animações para que a gente possa ver
  • 0:48 - 0:50
    melhor, vamos mover PlayerIdle para cima,
  • 0:51 - 0:53
    PlayerChop para cá
  • 0:53 - 0:55
    e PlayerHit aqui.
  • 0:55 - 0:59
    PlayerIdle está laranja porque é o estado default.
  • 0:59 - 1:01
    Quando o jogo começa
  • 1:01 - 1:04
    a animação idle do jogador começa a ser executada.
  • 1:04 - 1:06
    O que vamos fazer é configurar as transições
  • 1:06 - 1:09
    quando a animação PlayerIdle irá ser interrompida e irá
  • 1:09 - 1:11
    alterar ou para a animação Chop,
  • 1:11 - 1:13
    quando o jogador ataca a parede,
  • 1:13 - 1:15
    ou para a animação Hit, quando o jogador
  • 1:15 - 1:17
    é atacado por um inimigo.
  • 1:17 - 1:19
    A primeira coisa que vamos fazer é configurar
  • 1:19 - 1:21
    alguns parâmetros que serão
  • 1:21 - 1:23
    utilizados para disparar
  • 1:23 - 1:26
    estas animações através de scripts.
  • 1:26 - 1:28
    Você pode ter que clicar no botão Parameters para
  • 1:28 - 1:30
    tornar os parâmetros visíveis,
  • 1:30 - 1:32
    e em seguida vamos clicar no botão +
  • 1:32 - 1:35
    para criar um parâmetro do tipo Trigger.
  • 1:36 - 1:38
    O primeiro parâmetro será chamado playerChop.
  • 1:39 - 1:42
    Um trigger é quase igual um boolean, a diferença
  • 1:42 - 1:46
    é que ele é imediatamente reiniciado depois de ser usado em uma transição.
  • 1:46 - 1:48
    É como um boolean que será true
  • 1:48 - 1:50
    no frame no qual é chamado
  • 1:50 - 1:52
    e depois vira false de novo.
  • 1:53 - 1:56
    Vamos criar outro Trigger chamado playerHit.
  • 1:56 - 1:59
    Agora vamos criar algumas transições entre nossos estados.
  • 1:59 - 2:01
    Clique com o botão direito em PlayerIdle,
  • 2:02 - 2:04
    selecione Make Transition,
  • 2:04 - 2:07
    e arraste até o estado PlayerChop.
  • 2:08 - 2:11
    Depois vamos clicar com o botão direito em PlayerChop
  • 2:11 - 2:13
    e criar uma transição de volta
  • 2:13 - 2:16
    de PlayerChop a PlayerIdle.
  • 2:16 - 2:18
    Isso significa que PlayerIdle pode fazer uma transição
  • 2:18 - 2:21
    a PlayerChop e PlayerChop
  • 2:21 - 2:24
    pode fazer uma transição de volta a PlayerIdle.
  • 2:24 - 2:26
    Vamos clicar na transição de PlayerIdle para
  • 2:26 - 2:29
    PlayerChop para que ela fique visível no Inspector.
  • 2:29 - 2:33
    A transição de PlayerIdle para PlayerChop
  • 2:33 - 2:36
    não terá um Exit Time.
  • 2:36 - 2:39
    Vamos desabilitar Has Exit Time.
  • 2:39 - 2:41
    Isso significa que não precisamos esperar
  • 2:41 - 2:43
    a animação PlayerIdle terminar
  • 2:43 - 2:47
    ou alcançar um certo ponto antes de
  • 2:47 - 2:49
    fazer a transição para PlayerChop.
  • 2:49 - 2:51
    Queremos que a transição ocorra
  • 2:51 - 2:55
    abruptamente de PlayerIdle para PlayerChop
  • 2:55 - 2:58
    independente do ponto onde esteja a animação Idle.
    66
    00:02:58,021 --> 00:03:00,021=
    Vamos também abrir settings e
  • 3:00 - 3:03
    ajustar o tempo de transição para 0.
  • 3:04 - 3:06
    Usamos um tempo de transição 0
  • 3:06 - 3:09
    quando trabalhamos com animação de sprites.
  • 3:09 - 3:11
    Quando trabalhamos com animações 3D
  • 3:11 - 3:13
    é comum que queiramos fazer uma transição suave
  • 3:13 - 3:15
    entre animações
  • 3:15 - 3:18
    porém com animação de sprites isto não é possível
  • 3:18 - 3:20
    então vamos fazer uma transição imediata
  • 3:20 - 3:22
    de um estado para o outro.
  • 3:23 - 3:25
    Em seguida vamos determinar o que vai disparar
  • 3:25 - 3:27
    a transição.
  • 3:27 - 3:29
    Na lista de condições vamos clicar
  • 3:29 - 3:32
    no botão + para adicionar uma nova condição
  • 3:32 - 3:34
    que vai determinar quando a transição
  • 3:34 - 3:36
    será disparada.
  • 3:37 - 3:40
    Uma lista de condições será exibida,
  • 3:40 - 3:42
    neste caso PlayerChop, que é
  • 3:42 - 3:45
    a opção default é exatamente a condição que precisamos.
  • 3:45 - 3:48
    Se quiséssemos mudar poderíamos selecionar outra condição da lista
  • 3:48 - 3:51
    e escolher ou PlayerChop ou PlayerHit.
  • 3:51 - 3:53
    Agora quando o trigger PlayerChop é
  • 3:53 - 3:55
    disparado através do script do jogador iremos
  • 3:55 - 3:58
    fazer a transição de PlayerIdle para PlayerChop.
  • 3:59 - 4:02
    Para a transição de PlayerChop
  • 4:02 - 4:06
    de volta para PlayerIdle vamos manter
  • 4:06 - 4:08
    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
  • 4:11 - 4:13
    PlayerChop terá que ser totalmente
  • 4:13 - 4:15
    concluída antes de fazer a transição
  • 4:15 - 4:17
    de volta a PlayerIdle.
  • 4:17 - 4:21
    Vamos também configurar a duração de transição para 0.
  • 4:22 - 4:24
    Como configuramos Has Exit Time
  • 4:24 - 4:26
    para true de PlayerChop
  • 4:26 - 4:28
    para PlayerIdle não iremos precisar
  • 4:28 - 4:30
    condições adicionais,
  • 4:30 - 4:32
    a transição ocorrerá
  • 4:32 - 4:34
    quando exit time for atingido.
  • 4:35 - 4:37
    Vamos configurar as mesmas coisas para PlayerHit.
  • 4:39 - 4:40
    Vamos selecionar PlayerIdle,
  • 4:41 - 4:43
    selecionar Make Transition,
  • 4:43 - 4:45
    e arrastar para PlayerHit.
  • 4:46 - 4:49
    Clicamos em PlayerHit, depois clique no botão direito,
  • 4:49 - 4:51
    selecionamos Make Transition,
  • 4:53 - 4:55
    e fazemos a transição de volta para PlayerIdle.
  • 4:57 - 5:00
    Vamos selecionar a transição de PlayerIdle
  • 5:00 - 5:03
    para PlayerHit, e aqui vamos configurar
  • 5:03 - 5:05
    Has Exit Time para falso
  • 5:05 - 5:07
    Porque queremos interromper a animação
  • 5:07 - 5:11
    PlayerIdle sempre que o jogador é atingido.
  • 5:11 - 5:15
    E vamos configurar a duração da transição de novo para 0.
  • 5:16 - 5:19
    Na lista de condições vamos clicar no botão +,
  • 5:21 - 5:24
    e selecionar PlayerHit da lista.
  • 5:25 - 5:28
    Para a transição de volta a PlayerIdle.
  • 5:29 - 5:31
    Vamos usar Has Exit Time porque
  • 5:31 - 5:33
    queremos que a animação termine de executar
  • 5:33 - 5:36
    configuramos Exit Time para 1 porque queremos
  • 5:36 - 5:38
    a transição no fim da animação,
  • 5:38 - 5:41
    e vamos configurar a duração da transição para 0.
  • 5:42 - 5:45
    Antes de seguir em frente vamos testar.
  • 5:45 - 5:47
    Vamos prender a janela Animator
  • 5:47 - 5:49
    na parte de baixo da tela.
  • 5:50 - 5:52
    Rodamos o jogo, e o que faremos
  • 5:52 - 5:54
    é disparar manualmente os
  • 5:54 - 5:56
    triggers e ver o que acontece.
  • 5:57 - 5:59
    Vamos testar PlayerChop primeiro.
  • 6:00 - 6:02
    E depois testar PlayerHit.
  • 6:03 - 6:05
    Ótimo, podemos ver que estão funcionando.
  • 6:06 - 6:09
    Agora que o Animator Controller do jogador está funcionando
  • 6:09 - 6:11
    vamos para o próximo vídeo
  • 6:11 - 6:13
    onde iremos escrever o script do jogador.
Title:
2D Roguelike 8 of 14 : Player Animator Controller
Description:

more » « less
Duration:
06:17

Portuguese, Brazilian subtitles

Revisions