Would you like to inspect the original subtitles? These are the user uploaded subtitles that are being translated:
1
00:00:00,190 --> 00:00:04,590
15. The Grid
Player - Animação: Corrida
2
00:00:04,590 --> 00:00:07,460
Então, agora que a gente vai
implementar a nossa primeira animação...
3
00:00:07,880 --> 00:00:09,090
No personagem.
4
00:00:09,480 --> 00:00:11,310
A gente vai começar pela corrida, tá?
5
00:00:11,810 --> 00:00:12,900
Então, basicamente...
6
00:00:13,370 --> 00:00:15,410
A gente está andando aqui,
parece que está flutuando, né?
7
00:00:15,410 --> 00:00:17,160
Tem que ter aquela animaçãozinha de...
8
00:00:17,870 --> 00:00:18,650
De correr.
9
00:00:19,130 --> 00:00:21,310
E isso, a gente tem aqui.
Vou abrir o...
10
00:00:21,600 --> 00:00:24,280
Animation Blueprint.
A gente tem essa animaçãozinha aqui, Run.
11
00:00:26,130 --> 00:00:26,520
Né?
12
00:00:26,930 --> 00:00:27,730
Que, basicamente, ele está...
13
00:00:28,290 --> 00:00:29,730
Andandinho, ali.
Correndo.
14
00:00:29,730 --> 00:00:30,350
Beleza?
15
00:00:30,630 --> 00:00:32,720
Então, vamos fazer isso no
nosso Animation Blueprint.
16
00:00:33,100 --> 00:00:35,300
Deixa eu fechar esses caras todos aqui.
17
00:00:35,890 --> 00:00:36,960
Animation Blueprint.
18
00:00:37,400 --> 00:00:37,970
Então, vamos lá.
19
00:00:38,500 --> 00:00:39,250
Primeira coisa.
20
00:00:39,580 --> 00:00:40,970
Aqui em Animation Graph...
21
00:00:40,970 --> 00:00:43,330
Né? Eu tenho o meu Final Animation Pose.
22
00:00:43,750 --> 00:00:45,650
Que é a pose final que vai aparecer.
23
00:00:46,000 --> 00:00:47,720
Então, tudo que eu conectar lá...
24
00:00:47,720 --> 00:00:49,540
Vai aparecer.
Então, eu poderia, por exemplo...
25
00:00:49,950 --> 00:00:52,450
Desconectar esse cara e conectar o Run.
26
00:00:53,270 --> 00:00:53,970
Aqui.
27
00:00:54,950 --> 00:00:57,630
Dar um Compilar e agora ele
está tocando a animação de Run, né?
28
00:00:58,470 --> 00:00:59,880
Mas, eu preciso que tenha uma lógica.
29
00:01:00,180 --> 00:01:01,360
Para que isso varie.
30
00:01:01,360 --> 00:01:03,570
Entre o Idle, que ele está esperando.
31
00:01:03,570 --> 00:01:05,660
E o Run, que ele está
correndo, ele está andando.
32
00:01:06,480 --> 00:01:09,820
Então, eu vou criar uma coisa
que a gente chama de State Machine.
33
00:01:11,240 --> 00:01:12,660
Add New State Machine.
34
00:01:13,220 --> 00:01:17,150
Que é uma ferramenta própria aí, do
Animation Blueprint, perfeita para essas coisas.
35
00:01:17,650 --> 00:01:19,410
A gente pode criar vários estados.
36
00:01:19,410 --> 00:01:20,560
E colocar lógicas...
37
00:01:20,830 --> 00:01:22,760
Para que a gente varie
entre esses estados.
38
00:01:22,760 --> 00:01:25,690
Então, a gente coloca uma lógica para
que ele varie entre o Idle e o Run.
39
00:01:25,690 --> 00:01:26,280
Né?
40
00:01:26,280 --> 00:01:28,350
Eu vou só colocar um nome
para esse State Machine.
41
00:01:28,650 --> 00:01:31,860
Esse aqui, eu vou colocar como Idle/Run.
42
00:01:32,220 --> 00:01:34,160
Para eu saber que essa
State Machine tem a ver com...
43
00:01:34,600 --> 00:01:36,420
A variação entre o Idle e o Run.
44
00:01:36,710 --> 00:01:37,160
Tá?
45
00:01:37,160 --> 00:01:38,350
Clico duas vezes aqui.
46
00:01:38,350 --> 00:01:40,160
Tem uma entrada e não tem mais nada.
47
00:01:40,160 --> 00:01:43,080
Eu tenho que criar alguns estados aqui.
Então, vamos só clicar e arrastar.
48
00:01:44,080 --> 00:01:45,540
Eu posso colocar um estado...
49
00:01:46,000 --> 00:01:47,040
Add State.
50
00:01:47,790 --> 00:01:50,510
E o nome para esse estado.
O nome que eu vou colocar vai ser...
51
00:01:50,990 --> 00:01:51,580
Idle.
52
00:01:52,760 --> 00:01:54,520
Então, esse é o primeiro estado.
O estado Idle!
53
00:01:54,520 --> 00:01:56,500
E o outro estado que a gente tem, seria o Run.
54
00:01:56,500 --> 00:01:57,870
Então, eu vou só clicar e arrastar aqui também.
55
00:01:58,380 --> 00:01:59,680
Add State, Run.
56
00:02:00,510 --> 00:02:00,850
Run.
57
00:02:01,330 --> 00:02:03,930
Você percebe que quando eu fiz isso...
Deixa eu só arrumar aqui, para...
58
00:02:04,310 --> 00:02:05,090
Run.
59
00:02:05,450 --> 00:02:07,570
Então, quando eu fiz isso,
ele criou essa bolinha aqui.
60
00:02:07,980 --> 00:02:10,460
Na verdade é uma condição.
Ele está dizendo...
61
00:02:10,990 --> 00:02:14,550
Ele está perguntando qual é a
condição para variar entre o Idle e o Run.
62
00:02:15,120 --> 00:02:15,830
Ok?
63
00:02:15,830 --> 00:02:17,700
Então, depois a gente vai colocar uma condição.
64
00:02:17,700 --> 00:02:18,920
Se eu clicar duas vezes aqui...
65
00:02:19,380 --> 00:02:21,650
Tem uma condição.
Você percebe que é uma Boolean.
66
00:02:21,650 --> 00:02:22,090
Né?
67
00:02:22,290 --> 00:02:23,950
Pode entrar na transição?
68
00:02:24,330 --> 00:02:27,590
E aqui, a resposta é "sim" ou "não".
Ele pode ou não pode entrar na transição.
69
00:02:27,900 --> 00:02:28,970
Já vamos voltar aqui.
70
00:02:29,580 --> 00:02:31,070
Idle e Run.
Eu voltei.
71
00:02:31,810 --> 00:02:33,790
Então, em Idle, eu tenho
que colocar alguma coisa dentro.
72
00:02:34,110 --> 00:02:35,210
Eu clico duas vezes.
73
00:02:35,210 --> 00:02:38,090
No Idle, obviamente, eu vou
colocar a animação de Idle.
74
00:02:38,840 --> 00:02:40,850
Então, nesse State, né?
Nesse estado...
75
00:02:41,160 --> 00:02:43,230
Aqui dentro, ele vai tocar a animação de Idle.
76
00:02:43,960 --> 00:02:44,930
E dentro do Run...
77
00:02:45,110 --> 00:02:46,180
Aqui dentro.
78
00:02:46,180 --> 00:02:47,170
Dentro desse estado.
79
00:02:47,500 --> 00:02:50,140
Ele vai tocar a animação de Run.
Trago o Run para cá.
80
00:02:50,710 --> 00:02:52,030
E conecto no...
81
00:02:52,030 --> 00:02:54,030
Animation Pose.
Beleza?
82
00:02:54,380 --> 00:02:55,760
Volto aqui, no Idle/Run.
83
00:02:55,760 --> 00:02:57,170
Então, eu tenho o Idle...
84
00:02:57,170 --> 00:02:57,870
E o Run.
85
00:02:57,870 --> 00:03:00,090
Nesse cara, aqui dentro, eu tenho uma animação.
86
00:03:00,630 --> 00:03:02,660
E nesse cara aqui, eu tenho a outra animação.
87
00:03:02,920 --> 00:03:04,170
De Run.
Beleza.
88
00:03:04,170 --> 00:03:06,750
Então, tranquilo.
Agora eu vou voltar aqui no meu começo.
89
00:03:06,750 --> 00:03:07,750
No Anim Graph.
90
00:03:08,610 --> 00:03:12,110
Ao invés de conectar esses caras,
eu vou conectar o meu State Machine.
91
00:03:12,110 --> 00:03:12,640
Beleza?
92
00:03:12,950 --> 00:03:13,940
Conecto ele aqui.
93
00:03:14,380 --> 00:03:16,130
E esse cara que vai dar a lógica...
94
00:03:16,480 --> 00:03:19,080
Para que seja a pose final do personagem.
95
00:03:19,430 --> 00:03:20,280
Eu Compilo.
96
00:03:20,670 --> 00:03:22,130
Ele voltou para o Idle.
97
00:03:22,130 --> 00:03:23,420
Por que voltou para o Idle?
98
00:03:23,420 --> 00:03:25,830
Se eu entrar aqui dentro,
ele está tocando o Idle, né?
99
00:03:25,830 --> 00:03:28,820
Assim que eu fiz isso, ele já disse
para mim, aqui embaixo, no...
100
00:03:28,820 --> 00:03:30,300
Compilador.
Quando eu Compilei.
101
00:03:30,910 --> 00:03:32,600
Está dizendo:
"O Idle to Run", né?
102
00:03:32,600 --> 00:03:34,130
"Esse lugar que eu estou aqui."
103
00:03:34,410 --> 00:03:35,550
"Nunca vai acontecer."
104
00:03:35,550 --> 00:03:38,820
"Por favor, conecte alguma
coisa no Can Enter Transition."
105
00:03:39,400 --> 00:03:41,280
Ele está falando dessa bolinha aqui.
106
00:03:41,280 --> 00:03:42,580
Não tem nada conectado.
107
00:03:43,090 --> 00:03:46,020
Está dizendo para mim:
"Nunca vai acontecer do cara ir para o Run..."
108
00:03:46,020 --> 00:03:47,920
"Porque não tem nada aqui dentro, na condição."
109
00:03:48,110 --> 00:03:48,540
Tá?
110
00:03:48,540 --> 00:03:50,030
Se eu deixar a condição ligada...
111
00:03:50,030 --> 00:03:51,950
Pode entrar na transição?
Pode.
112
00:03:52,290 --> 00:03:52,730
Pode.
113
00:03:53,020 --> 00:03:53,750
Deixar ligado.
114
00:03:54,260 --> 00:03:55,220
Eu vou Compilar.
115
00:03:55,220 --> 00:03:56,880
Ele voltou para a animação de Run.
116
00:03:57,140 --> 00:04:00,200
Ele vai tocar o Idle, mas ele
olha a condição verdadeira, ele...
117
00:04:00,510 --> 00:04:01,300
Pula para o Run.
118
00:04:01,300 --> 00:04:01,950
Tá?
119
00:04:01,950 --> 00:04:05,250
Então, agora ele vai ficar sempre no Run.
Porque não tem nada que faça ele voltar para o Idle, né?
120
00:04:05,640 --> 00:04:07,570
Então, a gente tem que
trabalhar essa condição aqui.
121
00:04:07,570 --> 00:04:08,570
Essa Booleana.
122
00:04:09,330 --> 00:04:10,660
Eu vou desligar porque é o padrão.
123
00:04:11,250 --> 00:04:15,080
Eu tenho que trabalhar essa condição para dizer para
ele quando que ele pode entrar na animação de Run.
124
00:04:15,370 --> 00:04:18,870
Basicamente, ele pode entrar na
animação de Run quando ele correr, né?
125
00:04:19,230 --> 00:04:20,470
Tá?
Então, eu vou voltar aqui.
126
00:04:21,180 --> 00:04:23,500
Em Anim Graph.
Deixa quietinho, por enquanto.
127
00:04:23,500 --> 00:04:25,890
A gente tem um Event Graph
aqui no Animation Blueprint.
128
00:04:26,140 --> 00:04:27,870
Existe uma Função, que se chama...
129
00:04:27,870 --> 00:04:28,520
Try...
130
00:04:29,470 --> 00:04:30,970
Get Pawn Owner.
131
00:04:31,240 --> 00:04:33,130
Tá?
Try Get Pawn Owner.
132
00:04:33,620 --> 00:04:34,560
Eu clico nesse cara.
133
00:04:34,860 --> 00:04:38,450
O que ele está tentando fazer?
Ele está tentando pegar o Owner, o dono.
134
00:04:38,450 --> 00:04:40,900
Né?
O Pawn é a Classe Pawn.
135
00:04:41,480 --> 00:04:43,070
E ele está tentando pegar o dono.
136
00:04:43,070 --> 00:04:44,850
O dono dessa Animation Blueprint.
137
00:04:44,850 --> 00:04:47,900
Ele vai pegar uma referência
à Classe que é dona dele.
138
00:04:48,190 --> 00:04:49,570
Mas, aí a gente tem que fazer um Cast.
139
00:04:50,090 --> 00:04:52,980
Para a nossa Classe específica.
Então, Cast to...
140
00:04:54,080 --> 00:04:56,370
Qual que é a nossa Classe?
BP_HeroChar.
141
00:04:57,290 --> 00:04:58,520
Então, faz um Cast to.
142
00:04:58,830 --> 00:05:01,280
Então, a partir daí, eu posso
agora pegar o meu BP_HeroChar...
143
00:05:01,280 --> 00:05:03,190
E pegar as variáveis que estão lá.
Então...
144
00:05:03,190 --> 00:05:04,010
Get...
145
00:05:04,650 --> 00:05:05,930
Is Sprinting, né?
146
00:05:08,170 --> 00:05:09,270
Is Sprinting.
147
00:05:09,680 --> 00:05:10,390
Está lá.
148
00:05:10,390 --> 00:05:11,880
Get Is Sprinting.
149
00:05:12,950 --> 00:05:17,030
Eu vou guardar, então. Já que está funcionando,
eu vou guardar esse valor aqui em uma variável.
150
00:05:17,430 --> 00:05:19,590
Promote to Variable.
A gente já fez isso.
151
00:05:19,590 --> 00:05:20,640
Bastante, né?
152
00:05:20,640 --> 00:05:21,590
Não é novidade.
153
00:05:22,350 --> 00:05:24,090
Vou colocar aqui, como HeroRefer.
154
00:05:25,030 --> 00:05:25,780
HeroChar.
155
00:05:28,400 --> 00:05:29,910
Refer.
Referência.
156
00:05:30,280 --> 00:05:33,880
A partir de agora, então, dentro do
Animation Blueprint, eu posso acessar o HeroChar...
157
00:05:33,880 --> 00:05:35,090
Através dessa variável aqui.
158
00:05:35,530 --> 00:05:36,580
Isso aqui, eu vou fazer...
159
00:05:37,790 --> 00:05:40,660
Quando atualizar a animação.
Update Animation.
160
00:05:42,070 --> 00:05:42,660
Pronto.
161
00:05:43,430 --> 00:05:47,470
Uma coisa que é legal de fazer é o seguinte.
A gente vai colocar um DoOnce.
162
00:05:49,000 --> 00:05:51,360
A gente vai fazer isso com mais calma, lá ná...
163
00:05:51,360 --> 00:05:52,480
No capítulo de Animação.
164
00:05:52,880 --> 00:05:55,580
Mas, eu vou fazer um DoOnce.
Ou seja, "Faça isso só uma vez".
165
00:05:55,580 --> 00:05:56,020
Né?
166
00:05:56,290 --> 00:05:59,160
A gente só precisa pegar a
referência, fazer esse Cast, uma vez.
167
00:05:59,400 --> 00:06:00,680
E não todas as vezes.
168
00:06:01,150 --> 00:06:03,280
Que a animação fizer um update.
169
00:06:04,170 --> 00:06:06,010
Então, aqui, a primeira coisa
que a gente vai fazer...
170
00:06:06,430 --> 00:06:07,150
É...
171
00:06:07,150 --> 00:06:08,520
Pegar a referência.
172
00:06:12,030 --> 00:06:12,950
Do HeroChar.
173
00:06:14,100 --> 00:06:18,540
Então, a partir de agora, com essa referência do
HeroChar, eu posso pegar coisas lá do personagem, né?
174
00:06:18,870 --> 00:06:20,960
Então, vamos só analisar de volta, o Idle/Run.
175
00:06:21,320 --> 00:06:23,880
Qual a condição para ele mudar
a animação de Idle...
176
00:06:23,880 --> 00:06:25,700
De esperando, para Run, né?
177
00:06:25,700 --> 00:06:27,150
Aquela animação que ele está andando.
178
00:06:27,880 --> 00:06:30,270
Basicamente, se o personagem
está se movendo, não está.
179
00:06:30,680 --> 00:06:31,240
Certo?
180
00:06:31,680 --> 00:06:32,760
Então, vamos fazer o seguinte...
181
00:06:33,030 --> 00:06:34,760
Só deixa eu Compilar de novo e salvar.
182
00:06:35,950 --> 00:06:39,000
Então, vamos fazer o seguinte.
A gente tem que pegar um valor lá no personagem...
183
00:06:39,000 --> 00:06:40,880
Que me diga se ele está
se movendo ou não está.
184
00:06:41,190 --> 00:06:43,410
Esse valor, basicamente,
seria a velocidade dele.
185
00:06:43,410 --> 00:06:46,290
Né? Se a velocidade é maior
que zero, então ele está se movendo.
186
00:06:46,620 --> 00:06:48,370
Se ela é zero, ele não está se movendo.
187
00:06:48,390 --> 00:06:48,940
Né?
188
00:06:48,940 --> 00:06:51,370
Lembrando das aulas
de velocidade, lá no Vetor.
189
00:06:51,840 --> 00:06:52,430
Né?
190
00:06:52,430 --> 00:06:53,990
Então, deixa eu pegar esse personagem.
191
00:06:54,940 --> 00:06:55,720
Get...
192
00:06:55,720 --> 00:06:59,260
Vou pegar a velocidade dele.
Então, eu vou pegar Get Velocity.
193
00:07:01,320 --> 00:07:04,660
E Velocity a gente já sabe.
A velocidade, a gente já sabe que é um Vetor, né?
194
00:07:05,380 --> 00:07:07,850
É, ele tem três Floats.
195
00:07:07,850 --> 00:07:10,460
Ele está se movendo em três direções.
X, Y e Z.
196
00:07:10,990 --> 00:07:13,090
Não me importa a direção
que ele está se movendo.
197
00:07:13,090 --> 00:07:13,600
Tá?
198
00:07:14,120 --> 00:07:16,930
O que me importa é se essa
velocidade é maior do que zero.
199
00:07:17,230 --> 00:07:19,440
Então, eu vou pegar aqui, o Vector Lenght.
200
00:07:20,480 --> 00:07:22,010
Que é o comprimento do Vetor.
201
00:07:25,160 --> 00:07:27,420
Basicamente, o que a gente fez
lá na aula de Vetores, né?
202
00:07:28,730 --> 00:07:29,840
Peguei o Vector Lenght.
203
00:07:30,220 --> 00:07:32,950
E eu quero saber se esse cara
é maior do que zero. Maior...
204
00:07:33,960 --> 00:07:35,110
Float > Float.
205
00:07:35,420 --> 00:07:36,050
Então...
206
00:07:36,050 --> 00:07:39,270
Se isso aqui for maior do que zero,
então, basicamente, ele está se movendo.
207
00:07:39,270 --> 00:07:41,770
Tá? Então, eu vou guardar
esse resultado em uma variável.
208
00:07:42,260 --> 00:07:43,470
Promote to Variable.
209
00:07:44,340 --> 00:07:47,190
E vou colocar um nome para
esse cara, como IsMoving.
210
00:07:47,190 --> 00:07:49,240
Ou seja, se ele está se movendo ou não está.
211
00:07:50,130 --> 00:07:51,380
Então, se o personagem...
212
00:07:51,620 --> 00:07:54,080
Chegar a uma velocidade maior
do que zero, ele está se movendo.
213
00:07:54,080 --> 00:07:55,370
Então, IsMoving é verdadeiro.
214
00:07:56,030 --> 00:07:57,760
Deixa eu Compilar aqui,
para ficar bonitinho.
215
00:07:58,200 --> 00:08:00,870
E vou colocar esse cara aqui.
Conectei.
216
00:08:02,140 --> 00:08:03,960
Então, agora, a
minha Animation Blueprint...
217
00:08:04,440 --> 00:08:06,320
Ela sabe se o personagem...
218
00:08:06,700 --> 00:08:09,380
Está se movendo ou não está.
Toda vez que a velocidade for maior do que zero.
219
00:08:10,260 --> 00:08:11,070
Então, aqui...
220
00:08:11,070 --> 00:08:12,030
Eu vou fazer...
221
00:08:13,320 --> 00:08:14,030
Get...
222
00:08:14,970 --> 00:08:16,860
HeroChar.
223
00:08:19,810 --> 00:08:21,960
Velocity.
224
00:08:28,650 --> 00:08:30,440
E a gente está colocando o Set...
225
00:08:31,040 --> 00:08:33,990
IsMoving.
Que é uma variável de dentro da Blueprint.
226
00:08:34,450 --> 00:08:35,710
Por que a gente fez essa variável?
227
00:08:36,290 --> 00:08:40,190
Porque a gente vai conseguir armazenar a
informação, se ele está se movendo ou não está.
228
00:08:40,680 --> 00:08:41,450
Beleza?
229
00:08:41,450 --> 00:08:43,540
Então, agora, a gente vai
voltar aqui no Idle/Run...
230
00:08:44,350 --> 00:08:47,000
E vai ter uma coisa para
conectar nessa transição aqui.
231
00:08:47,460 --> 00:08:49,050
Então, se ele está se movendo...
232
00:08:49,060 --> 00:08:51,480
Eu vou pegar esse IsMoving.
Conectar aqui.
233
00:08:52,450 --> 00:08:55,470
Se ele está se movendo, então,
ele vai tocar a animação de Run.
234
00:08:55,470 --> 00:08:58,110
Se ele não está, ele vai ficar
tocando a animação de Idle.
235
00:08:58,530 --> 00:09:02,290
Então, a gente só tem que fazer uma condição para
que ele volte. Porque só tem uma flechinha indo, né?
236
00:09:02,590 --> 00:09:03,840
De Idle para Run.
237
00:09:04,310 --> 00:09:07,660
Então, eu vou clicar aqui e vou
fazer uma setinha para voltar.
238
00:09:08,420 --> 00:09:11,320
Então, para ir, ele vai
quando ele está se movendo.
239
00:09:11,320 --> 00:09:11,970
Beleza?
240
00:09:12,270 --> 00:09:14,800
Para voltar, ele tem que voltar para Idle.
241
00:09:15,220 --> 00:09:17,410
Quando ele não está se movendo.
Então, clico aqui.
242
00:09:17,950 --> 00:09:19,860
Eu pego exatamente a mesma variável.
243
00:09:20,760 --> 00:09:22,670
Eu falo: "Não está".
Então, not.
244
00:09:23,120 --> 00:09:24,400
Not Boolean.
245
00:09:25,400 --> 00:09:28,510
Se essa Booleana é falsa,
se ele não está se movendo...
246
00:09:28,940 --> 00:09:30,940
Então, você pode voltar para o Idle.
247
00:09:31,550 --> 00:09:35,000
E está pronto aí, a nossa primeira State Machine.
Então, vamos ver se está funcionando, né?
248
00:09:35,830 --> 00:09:36,240
Play.
249
00:09:36,900 --> 00:09:39,410
Então, a minha velocidade
é zero, ele toca o Idle.
250
00:09:40,260 --> 00:09:42,270
Se eu começo a andar, então agora ele está tocando...
251
00:09:42,810 --> 00:09:43,870
A animação de Run.
252
00:09:44,510 --> 00:09:46,430
Porque a velocidade dele
é maior do que zero.
253
00:09:46,670 --> 00:09:47,150
Tá?
254
00:09:50,630 --> 00:09:51,910
Funcionando, então.
255
00:09:51,910 --> 00:09:53,890
Beleza? Agora, a gente
precisa fazer outros tipos de...
256
00:09:54,140 --> 00:09:55,610
Implementações.
Se eu pular...
257
00:09:56,280 --> 00:09:59,340
Ele... Até funciona. Está até
interessantezinha, essa animação.
258
00:09:59,680 --> 00:10:01,420
Mas, ele tem uma animação de pulo.
259
00:10:01,420 --> 00:10:02,530
Que a gente vai implementar...
260
00:10:02,990 --> 00:10:04,270
Agora, na próxima aula.
21298
Can't find what you're looking for?
Get subtitles in any language from opensubtitles.com, and translate them here.