﻿1
00:00:04,320 --> 00:00:05,670
‫Ei, bem-vindo de volta.

2
00:00:05,700 --> 00:00:11,280
‫Neste vídeo, vamos falar sobre componentes e como nosso peão base vai querer alguns

3
00:00:11,280 --> 00:00:17,490
‫desses componentes para coisas como colisões e representação visual, como malhas, bem como um ponto

4
00:00:17,490 --> 00:00:20,740
‫de spawn de onde nossos projéteis aparecerão.

5
00:00:20,760 --> 00:00:26,070
‫Vamos falar sobre como componentes, suporte, anexos para que possamos anexar vários componentes uns

6
00:00:26,070 --> 00:00:32,760
‫aos outros, bem como como nosso peão tem um componente raiz que armazena as informações de transformação para

7
00:00:32,760 --> 00:00:33,930
‫o --.

8
00:00:34,200 --> 00:00:40,770
‫Agora já criamos nossa primeira classe C++ chamada Base --, e agora estamos prontos para começar a adicionar

9
00:00:40,770 --> 00:00:42,630
‫algumas coisas à base --.

10
00:00:42,690 --> 00:00:50,090
‫A base -- vai precisar de alguns componentes, como malhas para a base e torre do tanque.

11
00:00:50,100 --> 00:00:55,470
‫C Em nossa pasta de malhas, temos uma base de tanque, temos uma torre de tanque e para a torre também

12
00:00:55,470 --> 00:00:57,210
‫temos uma base e uma torre.

13
00:00:57,540 --> 00:01:00,480
‫Então vamos precisar de alguns componentes de malha.

14
00:01:00,480 --> 00:01:06,930
‫Também vamos querer um componente de cápsula para lidar com colisões para que nosso tanque e torre não passem

15
00:01:06,930 --> 00:01:08,000
‫um pelo outro.

16
00:01:08,010 --> 00:01:10,890
‫Agora, vamos falar sobre componentes por um segundo.

17
00:01:11,040 --> 00:01:17,180
‫Quando adicionamos um componente a uma classe, precisamos decidir qual classe esse componente deve ser.

18
00:01:17,190 --> 00:01:19,830
‫Agora, uma escolha é um componente de cena.

19
00:01:20,070 --> 00:01:26,880
‫A classe de componente que você viu tem algumas propriedades, como tem uma transformação, ou seja, tem uma localização,

20
00:01:26,880 --> 00:01:28,380
‫uma rotação e tal.

21
00:01:28,440 --> 00:01:30,330
‫Ele também suporta anexo.

22
00:01:30,330 --> 00:01:34,530
‫Isso significa que podemos anexar outros componentes a um componente de cena.

23
00:01:34,530 --> 00:01:36,900
‫Aprenderemos mais sobre como isso funciona mais tarde.

24
00:01:37,020 --> 00:01:42,780
‫E um componente de cena não tem uma representação visual, o que significa que não tem uma malha ou

25
00:01:42,780 --> 00:01:43,410
‫algo assim.

26
00:01:43,410 --> 00:01:45,570
‫Na verdade, não podemos vê-lo no jogo.

27
00:01:45,570 --> 00:01:51,450
‫Agora, existem algumas outras classes no Unreal Engine que são derivadas do componente de cena, como um

28
00:01:51,450 --> 00:01:52,650
‫componente de cápsula.

29
00:01:52,680 --> 00:01:59,130
‫A classe de componentes da cápsula YOU é feita para lidar com colisões e isso é tudo para que serve.

30
00:01:59,130 --> 00:02:05,190
‫Usamos o componente cápsula para que nosso -- não caia no chão ou se mova pelas paredes e

31
00:02:05,190 --> 00:02:06,240
‫coisas assim.

32
00:02:06,240 --> 00:02:11,850
‫Agora também derivado da classe de componente de cena é o componente de malha estática.

33
00:02:12,150 --> 00:02:19,110
‫O uso da classe de componente de malha estática nos dá a capacidade de ter uma representação visual,

34
00:02:19,140 --> 00:02:25,830
‫especificamente uma malha que pertencerá à nossa -- classe que podemos ver no mundo enquanto a movemos.

35
00:02:26,100 --> 00:02:32,550
‫Agora, por padrão, nossa classe -- já tem um componente, é chamado de componente raiz.

36
00:02:32,550 --> 00:02:37,440
‫Vamos voltar ao código VS e ver se podemos encontrar esse componente raiz.

37
00:02:37,440 --> 00:02:43,170
‫Então, estou aqui na Base Pont CP e vou clicar em qualquer lugar,

38
00:02:43,170 --> 00:02:48,270
‫como aqui no construtor, e digitar o componente raiz assim.

39
00:02:48,450 --> 00:02:56,460
‫Agora vou clicar com o botão direito do mouse sobre isso e clicar em ir para definição e, de repente, temos o ator

40
00:02:56,460 --> 00:02:56,850
‫aberto.

41
00:02:56,850 --> 00:03:04,740
‫E aqui em atores em uma seção protegida, vemos um ponteiro de componente que você viu chamado componente raiz.

42
00:03:05,190 --> 00:03:10,470
‫Portanto, essa variável chamada componente raiz existe na classe do ator.

43
00:03:10,470 --> 00:03:15,690
‫Portanto, qualquer coisa derivada de ator herdará essa variável de componente raiz.

44
00:03:16,260 --> 00:03:20,820
‫Isso significa que nossa base -- também tem essa variável de componente raiz.

45
00:03:20,850 --> 00:03:27,360
‫Então, sempre que pensamos sobre a localização de um determinado --, estamos realmente falando sobre as

46
00:03:27,360 --> 00:03:33,870
‫informações de localização armazenadas na transformação desse componente raiz, que é um componente de cena.

47
00:03:33,870 --> 00:03:36,690
‫Portanto, os componentes de cena têm sua própria transformação.

48
00:03:36,720 --> 00:03:42,930
‫Vou seguir em frente e fechar o Ator H e excluir esta linha que adicionei ao construtor de base

49
00:03:42,930 --> 00:03:43,500
‫--.

50
00:03:43,890 --> 00:03:50,640
‫Então sabemos que nosso -- tem este componente raiz e seu tipo é componente visto, o que significa que

51
00:03:50,640 --> 00:03:52,770
‫nosso -- tem uma transformação.

52
00:03:52,770 --> 00:03:57,210
‫Mas também sabemos que esse componente raiz não possui uma representação visual.

53
00:03:57,210 --> 00:03:58,380
‫É invisível.

54
00:03:58,380 --> 00:04:05,820
‫No entanto, podemos reatribuir esse componente raiz com algum outro objeto cujo tipo deriva do componente visto.

55
00:04:05,850 --> 00:04:07,350
‫Agora vimos que o U.

56
00:04:07,350 --> 00:04:10,500
‫A classe de componente da cápsula é derivada do componente de cena.

57
00:04:10,500 --> 00:04:17,670
‫Portanto, se criarmos uma cápsula, podemos atribuí-la como raiz em vez do componente de cena padrão.

58
00:04:17,820 --> 00:04:21,360
‫Agora mencionamos que os componentes da cena, suportam o anexo.

59
00:04:21,360 --> 00:04:26,790
‫Isso significa que podemos criar outros componentes e anexá-los a um componente de cena.

60
00:04:26,790 --> 00:04:32,730
‫Portanto, se criarmos um componente de malha estática, por exemplo, chamado de malha base, podemos anexá-lo ao

61
00:04:32,730 --> 00:04:33,510
‫componente raiz.

62
00:04:33,540 --> 00:04:40,080
‫Agora, como um componente de malha estática é derivado da classe de componente de cena, ele também suporta anexo.

63
00:04:40,080 --> 00:04:44,760
‫Então, se criarmos outra malha, podemos anexá-la à primeira malha.

64
00:04:44,760 --> 00:04:50,760
‫Assim, poderíamos criar um componente de malha estática de malha atual e anexá-lo ao componente de malha base.

65
00:04:50,790 --> 00:04:53,940
‫Agora também podemos criar novos componentes de cena.

66
00:04:53,940 --> 00:05:00,690
‫Por exemplo, se queremos um componente de cena que podemos chamar de ponto de spawn do projétil, podemos anexá-lo à

67
00:05:00,690 --> 00:05:01,890
‫malha da torre.

68
00:05:01,890 --> 00:05:03,750
‫Agora, por que iríamos apenas criar uma cena?

69
00:05:03,860 --> 00:05:04,510
‫Componente.

70
00:05:04,520 --> 00:05:07,020
‫Não podemos dar a ele sua própria representação visual.

71
00:05:07,040 --> 00:05:13,280
‫Bem, se precisarmos de um ponto de desova, um local de onde gostaríamos de gerar projéteis, um componente de cena é perfeito para isso

72
00:05:13,280 --> 00:05:19,100
‫porque tem sua própria transformação, sua própria localização, rotação, etc. e podemos usar isso

73
00:05:19,100 --> 00:05:22,460
‫como um ponto para gerar projéteis.

74
00:05:22,490 --> 00:05:28,880
‫Então, depois de atribuir uma cápsula para ser o componente raiz, nosso componente raiz agora terá o U.

75
00:05:28,910 --> 00:05:36,560
‫O tipo de classe do componente da cápsula e a malha base e a malha da torre seriam componentes de malha estática e

76
00:05:36,560 --> 00:05:40,460
‫nosso ponto de geração de projéteis seria um componente U visto.

77
00:05:40,880 --> 00:05:46,340
‫Agora vamos falar sobre essa coisa de apego por um segundo, porque essas coisas estão todas ligadas umas às

78
00:05:46,340 --> 00:05:46,670
‫outras.

79
00:05:46,700 --> 00:05:52,850
‫Isso significa que, à medida que o componente raiz se move no espaço, tudo o que está anexado a ele se

80
00:05:52,850 --> 00:05:54,350
‫moverá junto com ele.

81
00:05:54,740 --> 00:05:59,640
‫Mas a própria malha base pode se mover em relação à raiz.

82
00:05:59,660 --> 00:06:06,260
‫Por exemplo, ele pode girar e tudo ligado à malha de base seguirá.

83
00:06:06,680 --> 00:06:14,210
‫Da mesma forma, temos essa malha de torre anexada à malha de base e ela mesma pode se mover independentemente da malha

84
00:06:14,210 --> 00:06:15,020
‫de base.

85
00:06:15,050 --> 00:06:21,320
‫Por exemplo, se girarmos a malha da torre, ela irá girar e qualquer coisa anexada a ela, como

86
00:06:21,320 --> 00:06:25,270
‫o componente de cena, seguirá junto com a malha da torre.

87
00:06:25,280 --> 00:06:30,560
‫Assim, o componente de cena se moverá junto com a malha da torre à medida que ela gira.

88
00:06:30,560 --> 00:06:35,450
‫Mas é claro que se quiséssemos, poderíamos mover o componente da cena em relação à malha da torre.

89
00:06:35,630 --> 00:06:40,550
‫E como nada está anexado ao componente de cena, bem, não há nada para acompanhar.

90
00:06:40,580 --> 00:06:46,330
‫Agora vamos dar uma olhada em como os componentes funcionam em blueprints, o que a pasta de conteúdo selecionou.

91
00:06:46,340 --> 00:06:50,930
‫Vou clicar com o botão direito do mouse e selecionar Blueprint Class para criar um novo blueprint.

92
00:06:50,960 --> 00:06:59,000
‫Vamos escolher o ator e chamar este Components Actor agora dê um duplo clique em components actor e observe que temos

93
00:06:59,000 --> 00:07:01,020
‫a raiz da cena padrão.

94
00:07:01,040 --> 00:07:05,040
‫Isso representa aquela variável de componente raiz que vimos em C++.

95
00:07:05,060 --> 00:07:11,780
‫Agora, se quisermos, podemos adicionar novos componentes clicando no botão adicionar e selecionando o tipo de componente que gostaríamos

96
00:07:11,780 --> 00:07:12,770
‫de adicionar.

97
00:07:12,770 --> 00:07:15,790
‫Procure Capsule e selecione Capsule Collision.

98
00:07:15,800 --> 00:07:17,900
‫Este é um componente da cápsula.

99
00:07:17,900 --> 00:07:20,320
‫Sua contraparte C++ é o U.

100
00:07:20,330 --> 00:07:21,780
‫Classe de componente da cápsula.

101
00:07:21,800 --> 00:07:24,260
‫Observe que está logo abaixo da cena padrão.

102
00:07:24,260 --> 00:07:27,440
‫Root Isso indica que está anexado a esta cena.

103
00:07:27,440 --> 00:07:30,350
‫Root Podemos continuar adicionando mais componentes.

104
00:07:30,350 --> 00:07:36,620
‫Por exemplo, se você selecionar Kub, um componente de malha estática será adicionado e sua propriedade de malha estática

105
00:07:36,620 --> 00:07:40,430
‫no painel de detalhes será definida automaticamente como um cubo.

106
00:07:40,430 --> 00:07:41,460
‫Malha estática.

107
00:07:41,480 --> 00:07:46,420
‫Agora observe no painel de componentes, o cubo está logo abaixo da cápsula.

108
00:07:46,430 --> 00:07:52,280
‫Se clicarmos no menu suspenso ao lado dele, não veremos mais o cubo aqui, então podemos recolhê-lo para ocultar

109
00:07:52,280 --> 00:07:55,490
‫quaisquer objetos que estejam anexados a um determinado componente.

110
00:07:55,490 --> 00:08:01,340
‫Agora podemos reatribuir o componente raiz clicando e arrastando um de nossos componentes para a raiz da cena

111
00:08:01,340 --> 00:08:01,970
‫padrão.

112
00:08:01,970 --> 00:08:07,370
‫Por exemplo, se eu clicar e arrastar a cápsula para a raiz da cena padrão, ela agora se tornará o

113
00:08:07,370 --> 00:08:08,210
‫componente raiz.

114
00:08:08,210 --> 00:08:11,870
‫Portanto, reatribuímos o componente raiz a este componente cápsula.

115
00:08:11,870 --> 00:08:14,180
‫Também podemos atribuir anexo.

116
00:08:14,180 --> 00:08:16,430
‫Vamos clicar em adicionar e selecionar esfera.

117
00:08:16,430 --> 00:08:21,200
‫Agora, por padrão, a esfera é anexada à cápsula assim como a malha estática do cubo.

118
00:08:21,200 --> 00:08:27,560
‫Mas se eu clicar e arrastar a esfera para o cubo, a esfera agora é anexada diretamente ao cubo.

119
00:08:27,560 --> 00:08:33,530
‫Se clicarmos na esfera e a arrastarmos para a cápsula, teremos a opção de criar uma nova raiz

120
00:08:33,530 --> 00:08:34,340
‫ou anexar.

121
00:08:34,700 --> 00:08:39,680
‫Se selecionarmos anexar, a esfera será anexada à cápsula novamente.

122
00:08:39,950 --> 00:08:46,010
‫Mas se fôssemos selecionar fazer nova raiz, a esfera se tornaria o componente raiz.

123
00:08:46,550 --> 00:08:52,910
‫Portanto, não apenas temos controle sobre a criação de novos componentes e como eles são anexados, mas também

124
00:08:52,910 --> 00:08:54,770
‫podemos reatribuir esse componente raiz.

125
00:08:55,130 --> 00:09:00,410
‫Vamos em frente e selecione a esfera clicando com o botão esquerdo e segure shift e clique com

126
00:09:00,410 --> 00:09:04,850
‫o botão esquerdo no cubo para selecioná-lo também e pressione delete para remover esses componentes.

127
00:09:05,180 --> 00:09:10,520
‫Agora, para o seu desafio, gostaria que você se familiarizasse um pouco mais com os componentes dos blueprints.

128
00:09:10,520 --> 00:09:12,980
‫Adicione alguns componentes ao nosso ator.

129
00:09:12,980 --> 00:09:17,510
‫Já temos um componente cápsula e atualmente é o componente raiz.

130
00:09:17,510 --> 00:09:23,960
‫Adicione um componente de malha estática e, para sua malha estática, atribua a base do tanque e, em seguida, adicione um segundo componente

131
00:09:23,960 --> 00:09:27,950
‫de malha estática e atribua a torre do tanque como sua malha estática.

132
00:09:27,980 --> 00:09:34,040
‫Certifique-se de anexar a malha de base à cápsula e anexar a malha da torre à malha de base.

133
00:09:34,040 --> 00:09:40,640
‫Agora, uma vez que você fez este movimento e dimensione a malha base e observe como a malha da torre anexada se

134
00:09:40,640 --> 00:09:42,800
‫comporta, pause o vídeo e experimente.

135
00:09:45,720 --> 00:09:46,080
‫OK.

136
00:09:46,080 --> 00:09:48,780
‫Então, vou clicar em Adicionar e selecionar malha estática.

137
00:09:48,780 --> 00:09:53,550
‫Agora, no painel de detalhes, vou definir a malha estática para a malha da base do tanque.

138
00:09:53,550 --> 00:09:57,150
‫Em seguida, vou clicar em Adicionar e selecionar malha estática novamente.

139
00:09:57,150 --> 00:10:02,760
‫Observe que ela é automaticamente anexada à primeira malha estática porque é isso que eu ainda havia selecionado no

140
00:10:02,760 --> 00:10:03,840
‫painel de detalhes.

141
00:10:03,840 --> 00:10:06,840
‫Vou definir a malha estática para a torre do tanque.

142
00:10:06,870 --> 00:10:12,330
‫Agora com a primeira malha estática selecionada, vou movê-la e observar que a segunda malha estática que está

143
00:10:12,330 --> 00:10:15,330
‫anexada a ela está se movendo junto com ela.

144
00:10:15,330 --> 00:10:18,750
‫O mesmo funciona para rotação e escala.

145
00:10:18,750 --> 00:10:22,770
‫À medida que eu o dimensiono, a malha anexada também fica maior.

146
00:10:23,130 --> 00:10:29,400
‫Então, falamos sobre componentes e vimos como podemos anexar componentes a outros componentes e mover

147
00:10:29,400 --> 00:10:30,480
‫e dimensionar.

148
00:10:30,480 --> 00:10:34,290
‫Um componente afeta os outros componentes que estão anexados a ele.

149
00:10:34,290 --> 00:10:41,100
‫Também vimos que pons herda um componente raiz da classe ator e este é o objeto que armazena

150
00:10:41,100 --> 00:10:43,650
‫as informações de transformação do peão.

151
00:10:43,980 --> 00:10:48,270
‫Aprenderemos sobre como criar componentes em C++ e as próximas palestras.

152
00:10:48,840 --> 00:10:50,250
‫Vejo vocês no próximo vídeo.

