﻿1
00:00:04,470 --> 00:00:05,730
‫Olá e bem-vindo a esta palestra.

2
00:00:05,730 --> 00:00:12,150
‫Vamos preencher uma máquina de estado de animação para que haja mais estados aqui, permitindo-nos ter uma

3
00:00:12,150 --> 00:00:16,290
‫animação que nos leva a esse estado de salto inicial.

4
00:00:16,290 --> 00:00:21,780
‫Como você pode ver, há um pouco mais de primavera no meu salto e vamos aprender sobre coisas como

5
00:00:21,780 --> 00:00:26,790
‫transições automáticas e como aninhar uma máquina de estado dentro de outra, que é o que vamos

6
00:00:26,790 --> 00:00:28,770
‫fazer para nossa animação de morte.

7
00:00:28,770 --> 00:00:31,710
‫Agora vamos mergulhar e ver como funciona.

8
00:00:32,520 --> 00:00:40,860
‫Então, como prometido na última palestra, vamos conectar nossa variável aérea à jogabilidade.

9
00:00:41,160 --> 00:00:48,360
‫Agora, a maneira como vamos fazer isso é obter do peão ou particularmente do nosso personagem atirador.

10
00:00:48,900 --> 00:00:54,600
‫Queremos descobrir essencialmente se o personagem está no ar.

11
00:00:55,290 --> 00:01:01,320
‫E acho que a única maneira de fazer isso é essencialmente através do componente de movimento do personagem.

12
00:01:01,770 --> 00:01:02,760
‫Então deixe-me mostrar o que quero dizer.

13
00:01:02,760 --> 00:01:07,770
‫Se formos para um nó de elenco que está lançando para o personagem atirador, podemos arrastar isso.

14
00:01:07,770 --> 00:01:12,570
‫Na verdade, o que podemos fazer é um elenco mais geral nesta instância em particular,

15
00:01:12,570 --> 00:01:15,810
‫porque não precisamos das informações específicas associadas à morte.

16
00:01:16,470 --> 00:01:26,040
‫Então o que eu vou fazer aqui é pegar esse pino do dono do peão e vamos fazer uma conjuração de dois personagens neste caso porque tudo

17
00:01:26,040 --> 00:01:30,300
‫o que precisamos saber é que esta é uma instância de personagem.

18
00:01:30,330 --> 00:01:36,360
‫Em seguida, vamos adicionar um novo pino de execução no nó de sequência, arrastá-lo para baixo para o nosso caractere de elenco e, em

19
00:01:36,360 --> 00:01:39,690
‫seguida, o caractere será arrastado para fora de seu pino de caractere.

20
00:01:39,690 --> 00:01:46,110
‫E vamos procurar basicamente algo ao longo da linha de nada no ar que pode ser salto

21
00:01:46,110 --> 00:01:53,790
‫parece ser mais interessante, está dizendo que é salto desde que a força possa pular pular todo esse tipo de coisa.

22
00:01:53,790 --> 00:01:56,340
‫Temos algo lá, mas não é bem isso.

23
00:01:56,340 --> 00:01:58,350
‫Que tal se procurarmos cair?

24
00:01:58,380 --> 00:01:59,010
‫Ai está.

25
00:01:59,040 --> 00:02:00,690
‫Temos um está caindo.

26
00:02:00,690 --> 00:02:06,870
‫E se você clicar nele, você pode ver que ele automaticamente pega o componente de movimento do

27
00:02:06,870 --> 00:02:10,560
‫personagem desse personagem para ver se estamos caindo ou não.

28
00:02:11,340 --> 00:02:18,090
‫Então o que podemos fazer é passar isso para definir o valor de está no ar e, obviamente,

29
00:02:18,090 --> 00:02:22,200
‫só vamos definir isso se nosso elenco dois for bem-sucedido.

30
00:02:22,200 --> 00:02:27,390
‫Então, vamos conectar esse pino de execução bem ali e ir em frente e compilar isso.

31
00:02:27,390 --> 00:02:31,440
‫Obviamente, não vai mudar a pré-visualização, então temos que ir e tentar jogá-lo.

32
00:02:31,620 --> 00:02:38,850
‫Então vamos jogar, nós pulamos e você pode ver que temos essa variável caindo instantaneamente sendo uma verdade e isso está funcionando

33
00:02:38,850 --> 00:02:40,320
‫muito bem na verdade.

34
00:02:40,320 --> 00:02:46,140
‫Somos capazes de pular e pousar e pular e pousar e matar nossos inimigos, obviamente.

35
00:02:47,280 --> 00:02:51,840
‫Então agora eu gostaria de adicionar um pouco mais de complicação ao gráfico anim.

36
00:02:51,960 --> 00:02:57,390
‫Então, na máquina de estado de locomoção no momento, temos dois estados aqui, mas o que eu realmente

37
00:02:57,390 --> 00:03:04,410
‫gostaria de fazer é reproduzir uma animação de salto, depois uma animação em que estamos no ar e uma animação de pouso quando

38
00:03:04,410 --> 00:03:05,490
‫atingimos o chão.

39
00:03:06,180 --> 00:03:09,270
‫Para fazer isso, precisamos de mais alguns estados em nossa máquina de estados.

40
00:03:09,720 --> 00:03:10,620
‫Então vamos em frente.

41
00:03:10,620 --> 00:03:13,800
‫Eu vou fazer um dos conjuntos de estados e você pode fazer o último.

42
00:03:14,550 --> 00:03:17,160
‫Então, o primeiro será adicionar o estado de salto.

43
00:03:18,590 --> 00:03:23,210
‫E isso vai tocar uma animação que nos tira do chão, diz que vai para os

44
00:03:23,210 --> 00:03:26,630
‫estados de salto e para o post de animação de saída.

45
00:03:26,630 --> 00:03:29,230
‫Vamos vincular uma nova animação com ele para pular.

46
00:03:29,240 --> 00:03:31,940
‫Estamos procurando os sufixos com combate.

47
00:03:32,600 --> 00:03:35,390
‫Então, vamos procurar um combate de partida rápida.

48
00:03:35,390 --> 00:03:35,960
‫Ai está.

49
00:03:36,350 --> 00:03:37,460
‫E é isso que queremos.

50
00:03:37,470 --> 00:03:43,020
‫Então vamos voltar para nossa máquina de estado de locomoção e queremos conectar algumas transições.

51
00:03:43,040 --> 00:03:45,350
‫Então, vamos fazer a transição do grounded para o jump.

52
00:03:45,860 --> 00:03:48,460
‫Isso vai acontecer se estivermos no ar.

53
00:03:48,470 --> 00:03:55,010
‫Então, colocar no ar está no ar lá, infelizmente, não há maneira que eu possa ver de mudar a

54
00:03:55,010 --> 00:03:55,610
‫transição.

55
00:03:55,610 --> 00:04:01,280
‫Então, vamos ter que excluir as transições antigas aqui em ambos os casos, então vamos precisar fazer a

56
00:04:01,280 --> 00:04:06,170
‫transição do salto para o ar, mas não temos uma variável ou estado para isso.

57
00:04:06,500 --> 00:04:09,770
‫Então, quando é que vamos fazer a transição do salto para o ar?

58
00:04:09,770 --> 00:04:13,070
‫Bem, queremos fazer isso quando a animação de salto terminar.

59
00:04:13,070 --> 00:04:17,510
‫Quando terminamos de pular, se você der uma olhada na animação de salto, você pode ver que

60
00:04:17,510 --> 00:04:19,990
‫envolve ele levantando os pés do chão assim.

61
00:04:20,390 --> 00:04:26,630
‫Então, queremos basicamente fazer a transição para nossa animação do apex quando ela terminar.

62
00:04:26,990 --> 00:04:29,510
‫Felizmente, há uma opção para isso nas transições.

63
00:04:29,510 --> 00:04:33,860
‫Se você selecionar a transição em vez de entrar nela, poderá ver seu painel de detalhes.

64
00:04:34,520 --> 00:04:35,780
‫E há uma opção aqui.

65
00:04:36,720 --> 00:04:42,360
‫Que eu expando, diz a regra automática baseada na sequência do jogador no estado.

66
00:04:42,930 --> 00:04:48,210
‫Se você verificar isso, basicamente o que ele fará é quando estivermos quase terminando de pular, ele

67
00:04:48,210 --> 00:04:53,430
‫começará a transição para a próxima animação e você poderá controlar quando essa transição é e quanto

68
00:04:53,430 --> 00:04:54,840
‫tempo esse crossfade é.

69
00:04:54,840 --> 00:05:01,260
‫Aqui nas configurações de mistura, você pode ver que a duração da mistura é de cerca de 0. 2, mas vendo como esses dois transitam um para o

70
00:05:01,260 --> 00:05:06,270
‫outro particularmente bem, vou fazer esse 0. 01.

71
00:05:06,270 --> 00:05:08,340
‫Então eu vou fazer essa transição muito curta.

72
00:05:08,910 --> 00:05:10,530
‫Então vamos ver como é isso.

73
00:05:10,530 --> 00:05:12,090
‫Então, vamos entrar no ar.

74
00:05:12,090 --> 00:05:16,530
‫Ele reproduz essa animação de salto e depois vai direto para o estado no ar.

75
00:05:16,770 --> 00:05:18,090
‫Assim que a animação terminar.

76
00:05:18,090 --> 00:05:19,200
‫Vamos tentar isso mais uma vez.

77
00:05:19,620 --> 00:05:21,000
‫Não podemos tentar mais uma vez.

78
00:05:21,000 --> 00:05:27,180
‫Esse é o problema porque não temos transição do estado aéreo de volta para aterrado e esse será

79
00:05:27,180 --> 00:05:28,860
‫realmente o seu desafio.

80
00:05:29,130 --> 00:05:33,390
‫Então, o que você vai fazer é adicionar um estado de aterrissagem que reproduzirá uma animação de aterrissagem.

81
00:05:33,390 --> 00:05:37,800
‫Então, no novo estado, na animação, que é mais apropriado para o pouso na sua opinião, você pode

82
00:05:37,800 --> 00:05:41,160
‫querer procurar coisas com o prefixo de salto e o sufixo de combate.

83
00:05:41,670 --> 00:05:46,020
‫Então você vai fazer a transição do ar em um booleano para este estado de pouso.

84
00:05:46,530 --> 00:05:51,750
‫E então, desse estado de pouso, você fará a transição para aterrado quando a animação de

85
00:05:51,750 --> 00:05:52,680
‫pouso terminar.

86
00:05:53,690 --> 00:05:55,880
‫Jogue, brinque, veja como se sente.

87
00:05:55,910 --> 00:05:56,780
‫É bom?

88
00:05:56,810 --> 00:05:57,800
‫Parece certo?

89
00:05:58,310 --> 00:06:04,250
‫E você pode querer ajustar esses tempos de transição para ver se isso melhora as coisas.

90
00:06:04,640 --> 00:06:08,210
‫Pause o vídeo e tente brincar com a máquina de acetato.

91
00:06:10,500 --> 00:06:10,860
‫OK.

92
00:06:10,860 --> 00:06:11,490
‫Bem vindo de volta.

93
00:06:11,520 --> 00:06:12,740
‫Então vamos dar uma chance a isso.

94
00:06:12,750 --> 00:06:14,520
‫Vamos adicionar um novo estado aqui.

95
00:06:14,760 --> 00:06:16,230
‫Vai ser chamado de pouso.

96
00:06:17,410 --> 00:06:21,370
‫E neste estado de pouso, se entrarmos, precisamos de uma animação para isso.

97
00:06:21,380 --> 00:06:22,720
‫Vou procurar salto.

98
00:06:23,200 --> 00:06:30,700
‫E o que queremos é um combate terrestre de salto para que possamos voltar à nossa máquina de estado de locomoção.

99
00:06:30,700 --> 00:06:34,900
‫Precisamos fazer a transição do ar para o pouso, clicando duas vezes nele.

100
00:06:35,260 --> 00:06:45,550
‫E isso precisa ser os nós no ar e não no ar, basicamente, então não o nó do que o ar é passado para

101
00:06:45,550 --> 00:06:46,060
‫isso.

102
00:06:46,660 --> 00:06:48,550
‫Então essa é a nossa condição de transição.

103
00:06:48,550 --> 00:06:54,610
‫Então, quando estamos no ápice, uma vez que o nó está no ar é desmarcado, então entramos no estado de pouso.

104
00:06:55,150 --> 00:06:59,080
‫Então, do nosso estado de aterrissagem, queremos fazer a transição para aterrado quando terminar.

105
00:06:59,080 --> 00:07:05,080
‫Portanto, se clicarmos na transição e marcarmos a caixa de seleção da regra automática, ela fará isso quando

106
00:07:05,080 --> 00:07:05,710
‫terminar.

107
00:07:05,770 --> 00:07:06,670
‫Então vamos tentar isso.

108
00:07:07,060 --> 00:07:08,320
‫Nós vamos entrar no ar dele.

109
00:07:08,320 --> 00:07:12,190
‫Ele joga pular vai para o ar e depois desmarque-o.

110
00:07:12,190 --> 00:07:14,320
‫Ele vai para o pouso e volta para fora.

111
00:07:14,740 --> 00:07:15,520
‫Vamos fazer isso de novo.

112
00:07:16,460 --> 00:07:17,420
‫Parece muito bom.

113
00:07:17,570 --> 00:07:19,910
‫Ok, então o que vamos fazer agora é.

114
00:07:20,030 --> 00:07:20,960
‫Experimente jogá-lo.

115
00:07:22,220 --> 00:07:24,200
‫Pulando e aterrissando.

116
00:07:24,230 --> 00:07:24,640
‫OK.

117
00:07:24,650 --> 00:07:25,820
‫Isso está se sentindo muito bem.

118
00:07:26,120 --> 00:07:32,550
‫Há um pouco de atraso quando estou pousando entre o pouso e a animação de corrida sendo reproduzida.

119
00:07:32,570 --> 00:07:39,200
‫Então, vou clicar na transição de pouso para aterrado e dar uma olhada em nossas configurações de mesclagem.

120
00:07:39,920 --> 00:07:47,660
‫Agora temos essa duração do ponto um, e é quanto tempo estamos levando para fazer a transição e o que

121
00:07:47,840 --> 00:07:48,620
‫está acontecendo.

122
00:07:48,630 --> 00:07:54,320
‫Então, em nossa animação de combate de pouso, quanto tempo dura essa animação de combate de pouso?

123
00:07:54,680 --> 00:07:57,020
‫Se eu pausar, role aqui.

124
00:07:57,470 --> 00:08:00,680
‫Você pode ver que é cerca de 0. 2.

125
00:08:00,740 --> 00:08:09,080
‫Então, na verdade, está levando todo esse tempo e fazendo a transição durante esse tempo para nossa locomoção em

126
00:08:09,080 --> 00:08:09,890
‫terra.

127
00:08:10,010 --> 00:08:15,470
‫Então é isso que queremos, porque assim que pousamos no chão, assim que a jogabilidade nos

128
00:08:15,470 --> 00:08:21,170
‫diz que pousamos no chão, queremos começar a mostrar algum movimento do pé, porque senão vai parecer

129
00:08:21,170 --> 00:08:22,580
‫um pouco estranho.

130
00:08:23,120 --> 00:08:29,570
‫Então, queremos que essa transição realmente comece a acontecer o mais rápido possível, e é por isso que estamos reproduzindo muito

131
00:08:29,570 --> 00:08:34,880
‫pouco da animação de pouso e fazendo a transição para o aterrado o mais rápido possível.

132
00:08:35,270 --> 00:08:42,650
‫A única coisa que podemos realmente ajustar aqui é o modo de transição, que meio que dita a forma

133
00:08:42,650 --> 00:08:48,650
‫dessa curva, a forma de quanto pouso versus aterramento temos ao longo do tempo.

134
00:08:48,980 --> 00:08:52,820
‫E você pode testar várias dessas opções, ver quais são melhores para você.

135
00:08:53,120 --> 00:08:59,540
‫Para mim, é a saída exponencial que se sente melhor porque mostra o mais fundamentado possível o

136
00:08:59,540 --> 00:09:02,210
‫mais cedo possível, mas sem parecer chocante.

137
00:09:02,630 --> 00:09:08,630
‫Então, se agora o fazemos no ar e depois voltamos ao solo, você pode ver que parece que está

138
00:09:08,630 --> 00:09:11,900
‫entrando no solo muito rapidamente, que é o que queremos.

139
00:09:12,380 --> 00:09:16,280
‫Então eu vou em frente e aperte o play e veja se isso se sente melhor.

140
00:09:17,240 --> 00:09:21,050
‫Sim, parece um pouco mais responsivo para mim bater no chão, que é exatamente o que eu quero.

141
00:09:21,560 --> 00:09:27,110
‫Agora, na prática, se você tiver mais animações aqui para trabalhar, o que você pode querer fazer com o estado

142
00:09:27,110 --> 00:09:31,520
‫de destino é ter um espaço de mesclagem lá e ter uma animação de recuperação.

143
00:09:31,520 --> 00:09:36,530
‫Então, dependendo de quão forte você bate no chão, você pode jogar uma animação de recuperação, que é combinada

144
00:09:36,530 --> 00:09:39,120
‫dependendo da direção em que você está se movendo.

145
00:09:39,500 --> 00:09:44,360
‫Então ele pousava com um baque forte, mas meio que cambaleava para a esquerda, por exemplo.

146
00:09:44,750 --> 00:09:48,740
‫Agora, isso não é algo que vamos cobrir aqui só porque não temos as animações.

147
00:09:48,740 --> 00:09:50,870
‫Mas, em teoria, é isso que você pode fazer.

148
00:09:51,110 --> 00:09:57,860
‫Então, agora, um tipo final de mini desafio para você é que atualmente temos essa mistura de poses na

149
00:09:58,250 --> 00:10:00,440
‫piscina para nossa animação de morte.

150
00:10:00,890 --> 00:10:04,580
‫Isso poderia ser feito com uma nova máquina de estado para a morte.

151
00:10:05,090 --> 00:10:12,200
‫Veja se você poderia tentar refatorar este gráfico anim para que ele funcione com uma máquina de estado para a morte em vez dessa

152
00:10:12,200 --> 00:10:13,910
‫mistura de poses por bool.

153
00:10:14,030 --> 00:10:16,580
‫Ok, então espero que você tenha me aceitado nesse desafio.

154
00:10:16,940 --> 00:10:23,270
‫O que vamos fazer é clicar com o botão direito do mouse em uma nova máquina de estado inteiramente nova.

155
00:10:23,810 --> 00:10:29,630
‫Vamos renomear essa máquina de estado para morte ou algo semelhante, então vou entrar nessa

156
00:10:29,630 --> 00:10:32,870
‫máquina de estado e adicionar dois estados.

157
00:10:32,900 --> 00:10:38,810
‫Um vai ser o estado vivo e o outro estado vai estar morto.

158
00:10:39,560 --> 00:10:39,850
‫OK.

159
00:10:40,280 --> 00:10:42,110
‫E então vamos adicionar algumas transições.

160
00:10:42,110 --> 00:10:45,380
‫Então, a transição de uma vida para a morte, isso vai acontecer.

161
00:10:45,380 --> 00:10:50,600
‫Se clicarmos duas vezes, isso acontecerá quando estiver morto é verdade assim.

162
00:10:51,500 --> 00:10:58,910
‫E então queremos uma transição de volta ao vivo e podemos apenas ter isso para fins de teste, pelo

163
00:10:58,910 --> 00:11:05,270
‫menos, que terá um não booleano e terá está morto, então basicamente não está morto.

164
00:11:05,660 --> 00:11:07,280
‫Nós vamos voltar para o outro lado.

165
00:11:08,210 --> 00:11:10,390
‫Queremos padrão para estar no estado vivo.

166
00:11:10,400 --> 00:11:11,180
‫Isso faz sentido.

167
00:11:11,180 --> 00:11:12,740
‫E então precisamos de algumas animações para jogar.

168
00:11:13,340 --> 00:11:15,590
‫Então, para Dead, já temos essa animação de morte.

169
00:11:15,590 --> 00:11:19,280
‫Então, vou voltar ao gráfico do anim para cortar isso.

170
00:11:19,310 --> 00:11:24,500
‫Volte para o estado morto e cole essa animação de morte aqui.

171
00:11:25,870 --> 00:11:27,160
‫Então em nosso estado vivo.

172
00:11:27,160 --> 00:11:28,330
‫O que queremos jogar lá?

173
00:11:28,450 --> 00:11:30,600
‫Bem, na verdade, queremos jogar todo o resto.

174
00:11:30,610 --> 00:11:32,260
‫Queremos jogar o objetivo do sexo.

175
00:11:32,260 --> 00:11:33,700
‫Queremos jogar a locomoção.

176
00:11:34,030 --> 00:11:35,500
‫Então eu vou cortar tudo isso.

177
00:11:36,040 --> 00:11:37,550
‫E é aqui que fica interessante.

178
00:11:37,570 --> 00:11:42,040
‫Agora temos uma máquina de estado rodando dentro de uma máquina de estado, o que é totalmente possível.

179
00:11:42,190 --> 00:11:50,170
‫Então, podemos canalizar esse objetivo, compensar em nossa saída para o estado vivo e voltar completamente para Adam

180
00:11:50,170 --> 00:11:51,010
‫Graf.

181
00:11:51,010 --> 00:11:56,440
‫Remova todos os nós aqui e apenas adicione essa máquina de estado em nossa saída.

182
00:11:56,950 --> 00:12:00,310
‫E isso funciona porque temos estados de nível superior.

183
00:12:00,310 --> 00:12:02,350
‫Basicamente, estamos dizendo que eles estão vivos ou mortos.

184
00:12:03,010 --> 00:12:03,390
‫Você está morto.

185
00:12:03,400 --> 00:12:04,780
‫Você acabou de jogar uma animação de morte.

186
00:12:05,140 --> 00:12:10,000
‫Se você está vivo, no entanto, você faz esse deslocamento de mira e faz sua máquina de estado de locomoção,

187
00:12:10,000 --> 00:12:12,790
‫que por sua vez tem seu próprio conjunto de estados.

188
00:12:13,120 --> 00:12:15,280
‫Portanto, está colocando a máquina de estado em camadas sobre a máquina de estado.

189
00:12:15,280 --> 00:12:17,410
‫Espero ver como isso pode ser realmente poderoso.

190
00:12:18,010 --> 00:12:21,970
‫Então, podemos fazer agora está morto, o que substitui tudo o que está em execução.

191
00:12:21,970 --> 00:12:25,540
‫Ele não está mais executando a máquina de estado de locomoção porque estamos apenas reproduzindo aquela animação de morte.

192
00:12:25,930 --> 00:12:33,070
‫Se eu entender, voltamos a rodar a animação para um live, mas podemos reproduzir nossa morte de forma crucial, o que antes

193
00:12:33,070 --> 00:12:34,390
‫não podíamos fazer.

194
00:12:34,690 --> 00:12:41,620
‫E isso porque quando você deixa um estado em uma máquina de estado de animação, ela redefine a animação dentro dela,

195
00:12:41,620 --> 00:12:43,000
‫redefine-a para o início.

196
00:12:43,010 --> 00:12:45,670
‫Então esse é um recurso muito útil aqui para a morte.

197
00:12:45,670 --> 00:12:49,970
‫Então, para recapitular, o que aprendemos nesta palestra é como fazer máquinas de estado mais complexas e aninhar

198
00:12:49,970 --> 00:12:51,640
‫máquinas de estado umas nas outras.

199
00:12:52,060 --> 00:12:57,820
‫E vimos sobre as transições automáticas e como elas podem nos ajudar a fazer uma sequência de transições acontecer

200
00:12:57,820 --> 00:12:58,570
‫mais facilmente.

201
00:12:58,720 --> 00:12:59,860
‫E nos vemos na próxima palestra.

