﻿1
00:00:04,440 --> 00:00:05,250
‫Olá e bem-vindo.

2
00:00:05,260 --> 00:00:10,530
‫Nesta palestra, vamos aprender sobre a diferença entre peões como esse cara e

3
00:00:10,530 --> 00:00:12,570
‫personagens como esse cara.

4
00:00:12,570 --> 00:00:19,260
‫E vamos seguir em frente e configurar um diagrama de personagem e um ator C++ de personagem para se parecer com isso, para

5
00:00:19,260 --> 00:00:21,000
‫que tenhamos nossa malha Wraith.

6
00:00:21,030 --> 00:00:22,620
‫Vamos mergulhar e ver como é feito.

7
00:00:22,860 --> 00:00:29,760
‫Ok, então a primeira parte do nosso plano de projeto maior que vamos querer começar é o movimento

8
00:00:29,820 --> 00:00:31,560
‫do jogador, número um.

9
00:00:31,560 --> 00:00:36,990
‫Isso é o que basicamente é fundamental na maioria dos jogos, não apenas jogos de tiro, então eles estariam

10
00:00:36,990 --> 00:00:41,850
‫indo para animação e tiro e saúde e morte e todas as outras coisas que queremos chegar.

11
00:00:42,150 --> 00:00:45,390
‫Mas a primeira coisa a resolver é o movimento do jogador.

12
00:00:46,110 --> 00:00:49,740
‫Para fazer isso, vamos criar uma classe de personagem.

13
00:00:49,740 --> 00:00:50,970
‫Agora, o que é uma classe de personagem?

14
00:00:50,970 --> 00:00:55,800
‫Bem, em primeiro lugar, há uma distinção entre um peão e um personagem.

15
00:00:56,250 --> 00:01:01,070
‫O peão é qualquer coisa que você possa possuir como jogador.

16
00:01:01,080 --> 00:01:05,040
‫Falaremos mais sobre posse mais tarde, mas você já deve ter visto um pouco sobre isso antes.

17
00:01:05,490 --> 00:01:10,260
‫Mas a ideia aqui é que o peão é a coisa que é controlada pelo jogador.

18
00:01:10,260 --> 00:01:10,830
‫Um personagem?

19
00:01:10,830 --> 00:01:11,550
‫O que é um personagem?

20
00:01:11,850 --> 00:01:15,060
‫Bem, a primeira coisa a dizer é que o personagem é um peão.

21
00:01:15,060 --> 00:01:17,730
‫Ele herda diretamente da classe de peões.

22
00:01:17,730 --> 00:01:20,730
‫Então ele pode fazer tudo o que o peão pode fazer.

23
00:01:20,850 --> 00:01:25,470
‫E mais ainda, um personagem é uma especialização de um peão.

24
00:01:26,190 --> 00:01:28,410
‫Ele adiciona caráter como recursos.

25
00:01:28,410 --> 00:01:29,490
‫Bem, isso não é muito informativo.

26
00:01:29,490 --> 00:01:32,820
‫Então, que tipo de coisas são o caráter sobre um personagem?

27
00:01:33,240 --> 00:01:39,870
‫Bem, por exemplo, movimento movendo-se como uma pessoa normal faria, movendo-se no chão, sendo capaz de pular,

28
00:01:39,870 --> 00:01:43,560
‫ser capaz de correr, todo esse tipo de coisa.

29
00:01:43,860 --> 00:01:49,470
‫Isso tende a ser o domínio de um personagem em vez de um peão, porque os peões podem voar como naves espaciais,

30
00:01:49,470 --> 00:01:49,980
‫por exemplo.

31
00:01:49,980 --> 00:01:53,550
‫Eles não são como as pessoas, então é assim que um personagem é.

32
00:01:53,790 --> 00:01:59,070
‫E também adiciona coisas como movimento de malha NAF, que veremos mais quando chegarmos

33
00:01:59,070 --> 00:02:05,160
‫à seção de IA desta seção, e isso nos ajudará a mover o personagem, evitar obstáculos e

34
00:02:05,160 --> 00:02:06,030
‫coisas assim.

35
00:02:06,780 --> 00:02:09,570
‫Então, como vamos em frente e criamos um personagem?

36
00:02:09,960 --> 00:02:10,320
‫Muitíssimo.

37
00:02:10,320 --> 00:02:13,320
‫O mesmo que criaríamos qualquer outra classe C++.

38
00:02:13,320 --> 00:02:16,380
‫Podemos adicionar uma nova classe C++.

39
00:02:16,380 --> 00:02:20,970
‫E você pode ver aqui entre as opções, há -- e há caráter.

40
00:02:21,450 --> 00:02:28,140
‫Agora vou seguir em frente e dar-lhe um desafio logo de cara para criar o Blueprint Children e o

41
00:02:28,140 --> 00:02:29,910
‫C++ para esse assunto.

42
00:02:29,910 --> 00:02:34,050
‫Então vamos, em primeiro lugar, seguir adiante para criar o C++.

43
00:02:34,050 --> 00:02:35,700
‫Isso não vai fazer parte do seu desafio.

44
00:02:36,000 --> 00:02:38,070
‫Vamos criar um peão para nós mesmos.

45
00:02:38,580 --> 00:02:42,870
‫Então, vou chamar meu -- porque porque não vamos usar o --.

46
00:02:42,870 --> 00:02:46,080
‫Vamos querer ver a diferença entre isso e o personagem.

47
00:02:46,260 --> 00:02:52,440
‫Então vamos em frente e criamos essa classe e, uma vez que isso vá em frente e termine, você terminará com uma --

48
00:02:52,440 --> 00:02:57,390
‫classe, o tipo de coisa que você já viu antes de começar a tocar uma configuração técnica, tocar

49
00:02:57,390 --> 00:02:58,950
‫o componente de entrada, etc.

50
00:02:59,280 --> 00:03:04,140
‫Então o que vamos fazer é fazer o mesmo procedimento novamente, adicionar uma nova classe C++.

51
00:03:04,140 --> 00:03:06,990
‫Desta vez vamos criar um personagem, vá para o próximo.

52
00:03:07,410 --> 00:03:12,420
‫E em vez de chamá-lo de algo sem imaginação como meu personagem, vou chamá-lo de

53
00:03:12,750 --> 00:03:17,850
‫personagem atirador, que é mais descritivo sobre o tipo de personagem que estamos tentando criar aqui.

54
00:03:18,270 --> 00:03:20,370
‫Eu vou em frente e criar essa classe.

55
00:03:21,030 --> 00:03:26,670
‫E quando terminar de construir, você pode ver que temos uma cabeça bem parecida, um arquivo.

56
00:03:26,670 --> 00:03:32,820
‫Na verdade, praticamente tudo é idêntico, exceto pelo que herda da classe de personagem em

57
00:03:32,820 --> 00:03:34,320
‫vez do --.

58
00:03:34,320 --> 00:03:36,600
‫É muito, muito semelhante fora isso.

59
00:03:37,050 --> 00:03:41,490
‫Então, para ver as diferenças, vamos ter que olhar para os filhos do projeto dessas coisas para

60
00:03:41,490 --> 00:03:43,500
‫ver que tipo de componentes estão lá.

61
00:03:44,190 --> 00:03:50,070
‫Então, vai ser um desafio seguir adiante para criar o C++, como acabei de fazer, adicionar

62
00:03:50,070 --> 00:03:54,960
‫um filho blueprint para cada um dos meus spawn e do shooter.

63
00:03:55,020 --> 00:04:01,140
‫Então, que diferenças você pode ver ao abrir esses dois projetos separados, pausar o vídeo e

64
00:04:01,140 --> 00:04:01,860
‫tentar.

65
00:04:02,100 --> 00:04:02,940
‫Ei, bem-vindo de volta.

66
00:04:03,300 --> 00:04:04,710
‫Então vamos dar uma chance a isso.

67
00:04:04,710 --> 00:04:12,360
‫Se entrarmos no editor e eu for navegar até o topo do meu diretório de conteúdo

68
00:04:12,360 --> 00:04:15,240
‫e adicionar alguns novos projetos.

69
00:04:15,750 --> 00:04:18,750
‫Então, vou clicar com o botão direito do mouse em criar uma classe de blueprint.

70
00:04:19,170 --> 00:04:25,290
‫E em vez de herdar de uma dessas, vou selecionar todas as classes e procurar pela minha

71
00:04:25,290 --> 00:04:32,160
‫-- classe, que é filha da --, como podemos ver, selecione essa e vá e crie uma substituição de

72
00:04:32,160 --> 00:04:32,600
‫que.

73
00:04:32,640 --> 00:04:39,510
‫Vou chamá-lo de sublinhado BP meu -- para usar essa convenção, que nos ajuda a diferenciar entre

74
00:04:39,510 --> 00:04:41,970
‫o C++ e o blueprint.

75
00:04:42,510 --> 00:04:45,300
‫Então, vou clicar com o botão direito e criar outra classe de blueprint.

76
00:04:45,300 --> 00:04:48,030
‫Desta vez vou procurar o personagem atirador.

77
00:04:49,210 --> 00:04:50,470
‫E selecione esse.

78
00:04:50,470 --> 00:04:54,520
‫E, previsivelmente, vou chamar esse personagem de atirador de sublinhado da BP.

79
00:04:54,880 --> 00:04:59,320
‫Isso meio que nos ajuda em termos de não ter que ser muito imaginativo para nomear as coisas.

80
00:04:59,320 --> 00:05:02,080
‫Você não quer ser imaginativo ao nomear essas crianças do projeto.

81
00:05:02,440 --> 00:05:06,850
‫Você só quer poder dizer que será exatamente o mesmo nome apenas com o sublinhado BP na

82
00:05:06,850 --> 00:05:07,240
‫frente.

83
00:05:07,750 --> 00:05:13,330
‫Então vamos em frente e abrir esses dois e encaixá-los na janela principal para que possamos compará-los de forma agradável e

84
00:05:13,330 --> 00:05:13,840
‫fácil.

85
00:05:14,110 --> 00:05:19,450
‫Abra o ponto de atirar um personagem na janela principal e imediatamente podemos ver algumas diferenças.

86
00:05:19,960 --> 00:05:24,340
‫O peão basicamente não tem nada acontecendo na visão do componente.

87
00:05:24,370 --> 00:05:27,790
‫Ele tem uma raiz de cena padrão e nada mais.

88
00:05:28,510 --> 00:05:30,090
‫Passamos para o personagem atirador.

89
00:05:30,100 --> 00:05:33,160
‫No entanto, você pode ver que há mais algumas coisas acontecendo para começar.

90
00:05:33,520 --> 00:05:40,540
‫Temos um componente de cápsula aqui, o que já está implicando que está esperando uma

91
00:05:40,540 --> 00:05:44,080
‫forma humanóide para caber dentro dessa cápsula.

92
00:05:44,080 --> 00:05:50,430
‫A cápsula é para fazer física bruta e manipulação ou colisão com o terreno.

93
00:05:50,440 --> 00:05:54,520
‫E então, obviamente, algo que se encaixa muito bem é um personagem humanóide.

94
00:05:54,610 --> 00:05:59,380
‫Temos um componente de seta que basicamente nos diz qual o caminho a seguir para esse personagem.

95
00:05:59,830 --> 00:06:02,290
‫E então temos uma malha, que é herdada.

96
00:06:02,290 --> 00:06:03,760
‫É herdado do C++.

97
00:06:03,760 --> 00:06:08,960
‫Na verdade, ela é herdada de dois níveis acima porque não definimos nenhuma malha aqui em uma planilha, um

98
00:06:08,970 --> 00:06:09,490
‫personagem.

99
00:06:09,790 --> 00:06:13,900
‫Eles devem ter sido definidos na classe de caractere A.

100
00:06:14,290 --> 00:06:21,430
‫Então, esse componente de malha está chegando até esta classe de blueprint, e ainda não

101
00:06:21,430 --> 00:06:23,470
‫tem nada nessa malha.

102
00:06:23,470 --> 00:06:26,800
‫Então podemos ir em frente e colocar uma malha lá.

103
00:06:26,830 --> 00:06:27,940
‫Então vamos em frente e tentar isso.

104
00:06:27,940 --> 00:06:30,970
‫Vá para o painel de detalhes, para a malha esquelética.

105
00:06:31,360 --> 00:06:34,680
‫E queremos basicamente colocar nosso personagem Wraith.

106
00:06:34,690 --> 00:06:37,450
‫Então eu vou selecionar Wraith aqui e então vamos.

107
00:06:37,450 --> 00:06:39,850
‫Isso o colocou um pouco fora do chão.

108
00:06:39,860 --> 00:06:43,360
‫Então o que eu quero fazer é ir em frente e ajustar os pés dele.

109
00:06:43,870 --> 00:06:48,040
‫Então eles se encontram com o fundo da cápsula da melhor maneira que posso.

110
00:06:48,610 --> 00:06:50,710
‫Parece que acertei na primeira vez.

111
00:06:51,010 --> 00:06:57,040
‫E também queremos alinhá-lo para que ele fique voltado para a seta para a frente, para que possamos

112
00:06:57,040 --> 00:07:01,900
‫fazer um pouco de rotação mágica de 90 graus dessa maneira e estamos dourados.

113
00:07:01,900 --> 00:07:07,000
‫Eu estava pressionando a tecla all para chegar à rotação, que a propósito, ou você poderia

114
00:07:07,000 --> 00:07:13,210
‫usar esses pequenos widgets no canto superior direito da sua janela de visualização para alternar entre a tradução e a rotação.

115
00:07:13,480 --> 00:07:17,590
‫Outra coisa que vale a pena notar aqui na hierarquia de componentes, além do

116
00:07:17,590 --> 00:07:22,990
‫fato de ter essa malha, a seta e o componente cápsula, é que temos esse componente de movimento de personagem.

117
00:07:23,000 --> 00:07:29,020
‫Isso é o que é inteiramente responsável por dar-lhe caráter como movimento, poder andar e

118
00:07:29,020 --> 00:07:29,860
‫correr, etc.

119
00:07:30,160 --> 00:07:34,810
‫Você pode ver aqui no painel de detalhes que temos várias configurações de movimento, temos a escala de

120
00:07:34,810 --> 00:07:35,260
‫gravidade.

121
00:07:35,260 --> 00:07:39,960
‫Então você pode fazer parecer que estamos jogando em Marte ou na Lua ou em Júpiter.

122
00:07:39,970 --> 00:07:42,430
‫Tudo o que você quer fazer, você pode mudar a escala de gravidade pode ser divertido.

123
00:07:42,910 --> 00:07:49,540
‫Temos tipos de movimento padrão para estar em terra, se estamos na água, todo esse tipo

124
00:07:49,540 --> 00:07:53,950
‫de coisa, andar, pular, coisas de rede de informações.

125
00:07:53,950 --> 00:07:56,620
‫Isso funciona automaticamente bem em jogos multiplayer.

126
00:07:56,620 --> 00:07:57,970
‫Tem tudo isso embutido.

127
00:07:58,420 --> 00:08:01,690
‫Então, basicamente, muitas coisas já estão sendo feitas para nós aqui.

128
00:08:02,110 --> 00:08:06,550
‫Então é por isso que queremos usar um personagem em vez de um peão, onde teríamos que escrever todo esse

129
00:08:06,550 --> 00:08:08,880
‫código de movimento do zero se usarmos o personagem.

130
00:08:08,890 --> 00:08:15,250
‫Já está configurado com esse componente de movimento de personagem para nós, e isso está longe de ser todas as coisas

131
00:08:15,250 --> 00:08:17,110
‫que o personagem nos fornece.

132
00:08:17,110 --> 00:08:22,900
‫Ele também fornece muitos detalhes e funções interessantes que podemos chamar na classe base para fazer nosso trabalho

133
00:08:22,900 --> 00:08:24,070
‫ainda mais facilmente.

134
00:08:24,280 --> 00:08:26,410
‫Veremos isso nas próximas palestras.

135
00:08:26,710 --> 00:08:32,440
‫Portanto, a última coisa que podemos querer fazer é garantir que esse personagem seja o peão que eles geram

136
00:08:32,440 --> 00:08:33,670
‫em nosso mapa.

137
00:08:34,150 --> 00:08:37,990
‫Então, a maneira como vou fazer isso é ir para a raiz do nosso conteúdo novamente.

138
00:08:37,990 --> 00:08:39,010
‫E isso é revisão.

139
00:08:39,020 --> 00:08:40,330
‫Tantos desafios para você.

140
00:08:40,330 --> 00:08:49,090
‫Se você quiser, você pode ir em frente e criar um clone deste mapa e um modo de jogo de projeto definido a partir

141
00:08:49,090 --> 00:08:52,870
‫deste mapa que gerará o personagem de atirador de aplicativos.

142
00:08:53,030 --> 00:08:56,800
‫Eu encorajo você a tentar esses muitos desafios, bem como o principal grande desafio.

143
00:08:57,040 --> 00:09:00,160
‫Vou seguir em frente e não dar nenhum slide de desafio para esse.

144
00:09:00,490 --> 00:09:05,680
‫Então, temos os mapas modulares de coleção de pacotes iniciais de ficção científica da primeira temporada.

145
00:09:06,010 --> 00:09:07,000
‫Eu tenho um mapa aqui.

146
00:09:07,000 --> 00:09:11,440
‫Na verdade, vou em frente e copiá-lo para a rota do meu projeto por enquanto.

147
00:09:11,440 --> 00:09:15,880
‫E podemos reorganizar as coisas um pouco mais tarde, à medida que a rota ganha um pouco mais de

148
00:09:15,880 --> 00:09:18,310
‫coisas e a estrutura da organização fica mais clara.

149
00:09:18,820 --> 00:09:22,870
‫Vou renomear esse mapa para Sandbox.

150
00:09:23,680 --> 00:09:29,620
‫Vamos defini-lo como padrão do projeto, acessando as configurações do projeto, mapas e modos e, em

151
00:09:29,620 --> 00:09:35,560
‫seguida, alterando-o de Map one para Sandbox tanto para o jogo quanto para o editor.

152
00:09:38,050 --> 00:09:39,640
‫Então eu vou fazer um modo de jogo.

153
00:09:39,640 --> 00:09:42,680
‫Então, vou clicar com o botão direito do mouse e criar uma classe de blueprint.

154
00:09:42,700 --> 00:09:45,620
‫Vou criar um modelo básico de modo de jogo.

155
00:09:45,640 --> 00:09:49,990
‫Chame isso de BP, modo de jogo de tiro sublinhado.

156
00:09:50,760 --> 00:09:52,590
‫Eu posso abrir isso.

157
00:09:52,600 --> 00:09:58,150
‫Eu não preciso de nenhum C++ nesta classe base, então basicamente não estou derivando do C++.

158
00:09:58,150 --> 00:10:05,140
‫Mas, uma vez que precisamos, sempre podemos copiar os planos dos pais para as classes C++ de nossa própria criação.

159
00:10:05,710 --> 00:10:08,530
‫Então o que eu vou fazer é ir para os detalhes.

160
00:10:08,530 --> 00:10:14,380
‫Se isso não estiver selecionado, você precisa ir para os padrões de classe aqui na barra superior e, em

161
00:10:14,380 --> 00:10:20,560
‫seguida, você pode ir para a seção de classes e descobrir que deve ser algo como o padrão -- classe assim.

162
00:10:21,010 --> 00:10:25,840
‫E vamos procurar o personagem BP shooter na versão blueprint porque ele

163
00:10:25,840 --> 00:10:33,310
‫tem a malha configurada e então vamos voltar para nossa sandbox, abrir nossa sandbox e mudar seu modo de

164
00:10:33,310 --> 00:10:33,730
‫jogo.

165
00:10:34,060 --> 00:10:39,700
‫Agora, a razão pela qual eu criei um sandbox é porque eu não quero editar o mapa original, porque eu

166
00:10:39,700 --> 00:10:43,720
‫sempre quero voltar para aquele para referência se eu tiver estragado meu sandbox.

167
00:10:44,320 --> 00:10:50,620
‫Então, vamos para o menu suspenso de projetos na barra superior e selecione os modos de jogo atualmente definidos para a base do modo

168
00:10:50,620 --> 00:10:51,280
‫de jogo.

169
00:10:52,000 --> 00:10:55,600
‫Em vez disso, vou selecionar o jogo de tiro sublinhado da BP.

170
00:10:55,810 --> 00:10:56,500
‫Modo de jogo.

171
00:10:56,740 --> 00:10:57,850
‫Modo de jogo de tiro, sim.

172
00:10:58,360 --> 00:11:03,190
‫E a peça final do quebra-cabeça será colocar um jogador, começar em algum lugar.

173
00:11:03,220 --> 00:11:07,900
‫Na verdade, eu não percebi isso, mas o mapa já contém um player start.

174
00:11:08,170 --> 00:11:13,870
‫Então, adicionar o próximo significa que agora você pode aparecer acidentalmente em dois lugares separados.

175
00:11:14,080 --> 00:11:16,150
‫Vamos corrigir isso mais tarde no curso.

176
00:11:16,150 --> 00:11:20,080
‫Mas só para você saber, se você acabar gerando em um local diferente e estiver ficando confuso, é

177
00:11:20,080 --> 00:11:20,680
‫por isso.

178
00:11:20,890 --> 00:11:24,130
‫Então vá para o seu lugar, os atores vão para a esquerda.

179
00:11:24,130 --> 00:11:28,990
‫Se você não tiver, vá até a janela e selecione um lugar para que os atores apareçam.

180
00:11:29,470 --> 00:11:30,910
‫E queremos atores básicos.

181
00:11:30,910 --> 00:11:32,350
‫Queremos que o jogador comece ativo.

182
00:11:32,350 --> 00:11:33,670
‫Você apenas vá em frente e traga isso.

183
00:11:33,670 --> 00:11:39,670
‫Dá-nos esta pequena cápsula com uma seta para a frente que nos mostra onde Spawn vai aparecer para que possamos seguir em

184
00:11:39,670 --> 00:11:41,260
‫frente e clicar em play.

185
00:11:41,620 --> 00:11:45,310
‫E não é imediatamente óbvio se isso funcionou ou não.

186
00:11:45,670 --> 00:11:52,280
‫Então o que você tem que fazer é ir para F8 para ejetar do seu peão para desbloquear, possuí-lo.

187
00:11:52,540 --> 00:11:54,130
‫E se você se virar, você pode ver isso.

188
00:11:54,130 --> 00:11:56,880
‫Com certeza, temos nosso personagem aqui.

189
00:11:56,890 --> 00:12:00,670
‫Ele só tinha uma câmera em algum lugar dentro de sua virilha, infelizmente.

190
00:12:00,940 --> 00:12:04,270
‫E assim vamos corrigir isso mais tarde.

191
00:12:04,540 --> 00:12:12,970
‫Mas, no momento, tínhamos uma malha no lugar e continuaremos a partir daí para consertar as animações, obter um personagem em

192
00:12:12,970 --> 00:12:18,370
‫terceira pessoa e assim por diante, e fazê-lo se mover, o mais importante.

193
00:12:19,630 --> 00:12:23,680
‫Portanto, temos o personagem de atirador correto surgindo no momento.

194
00:12:23,680 --> 00:12:25,150
‫Não é uma câmera de terceira pessoa.

195
00:12:25,150 --> 00:12:26,380
‫Nós vamos consertar isso mais tarde.

196
00:12:26,710 --> 00:12:30,130
‫Mas antes de tudo, vamos fazer nosso movimento funcionar.

197
00:12:30,140 --> 00:12:32,380
‫Então, vamos mergulhar para a próxima palestra.

