﻿1
00:00:04,570 --> 00:00:05,530
‫Olá e bem-vindo.

2
00:00:05,530 --> 00:00:10,090
‫Nesta palestra vamos cobrir muitas coisas legais, mas o mais importante, vamos

3
00:00:10,090 --> 00:00:14,020
‫ver como podemos filho de um ator para outro ator.

4
00:00:14,020 --> 00:00:18,640
‫Como você pode ver aqui, o rifle é um filho do personagem atirador

5
00:00:18,640 --> 00:00:24,360
‫e como podemos fazê-lo de tal forma que a malha esteja realmente presa à mão deste como fósforo.

6
00:00:24,400 --> 00:00:28,150
‫Como você pode ver, essa arma está se movendo com a mão desse jogador.

7
00:00:28,150 --> 00:00:29,830
‫Vamos mergulhar e ver como é feito.

8
00:00:30,950 --> 00:00:37,760
‫Então, a primeira coisa que queremos fazer antes de colocar uma arma nas mãos dessa malha é remover ou

9
00:00:37,760 --> 00:00:40,250
‫ocultar a arma que está atualmente.

10
00:00:40,760 --> 00:00:46,610
‫Agora acho que a maneira mais fácil de fazer isso é esconder o osso que tem a arma.

11
00:00:46,860 --> 00:00:47,480
‫Vamos dar uma olhada.

12
00:00:47,510 --> 00:00:53,870
‫Então, se formos para os sapatos, um sinal sonoro de caractere seria um bom ponto de entrada para isso.

13
00:00:53,870 --> 00:00:56,070
‫E então eu quero encontrar ir para a malha real.

14
00:00:56,840 --> 00:01:03,050
‫Aqui temos a malha esquelética e se eu for ao esqueleto, podemos descobrir que esta arma aqui, se eu

15
00:01:03,050 --> 00:01:07,490
‫clicar na arma, tem um osso que leva a ela chamado arma.

16
00:01:07,490 --> 00:01:15,740
‫Os sublinhados de osso e arma são e basicamente queremos ocultar isso, mas a maneira mais fácil de ocultar isso em todos

17
00:01:15,740 --> 00:01:19,970
‫os aspectos será fazê-lo em código e faremos em C++.

18
00:01:20,060 --> 00:01:23,240
‫Então, a primeira coisa é se apossar dos componentes da malha.

19
00:01:23,720 --> 00:01:30,160
‫A maneira de fazer isso quando você está em uma subclasse de caractere é chamar para obter o código de malha.

20
00:01:30,470 --> 00:01:31,400
‫Então temos malha.

21
00:01:31,730 --> 00:01:35,180
‫Então com a malha queremos esconder o osso.

22
00:01:35,480 --> 00:01:44,510
‫Dificilmente há um osso de couro por métodos de nome e isso realmente existe no pai do componente de malha esquelética, a pele,

23
00:01:44,510 --> 00:01:46,280
‫o componente de malha.

24
00:01:46,280 --> 00:01:47,870
‫Vamos dar uma olhada no cabeçalho do arquivo brevemente.

25
00:01:48,230 --> 00:01:50,060
‫Componente de malha de pele ponto h.

26
00:01:50,300 --> 00:01:52,130
‫Há um par de funções aqui.

27
00:01:52,130 --> 00:01:55,160
‫O que estamos procurando é Hide Bone pelo nome.

28
00:01:55,460 --> 00:01:56,960
‫Então você pode ver a assinatura aqui.

29
00:01:57,170 --> 00:01:59,540
‫Temos o nome do osso entra e nome.

30
00:01:59,900 --> 00:02:02,600
‫E então a segunda coisa é esse corpo de fase e para cima.

31
00:02:03,110 --> 00:02:07,250
‫Agora, até onde eu sei, isso não é usado na base de código, mas temos que fornecê-lo porque

32
00:02:07,250 --> 00:02:08,450
‫está lá na assinatura.

33
00:02:08,810 --> 00:02:15,020
‫Então vamos em frente e usá-lo para que Arrow possa fazer o hide bone pelo nome.

34
00:02:15,320 --> 00:02:16,880
‫E para preenchimento automático, não está funcionando.

35
00:02:16,880 --> 00:02:24,560
‫Isso é um bug em 4. 25 no momento no código v, o preenchimento automático não quer funcionar 100%, mas tudo bem.

36
00:02:24,560 --> 00:02:26,570
‫Podemos aprender a maneira manual em conjunto.

37
00:02:27,350 --> 00:02:32,000
‫Então vamos querer o nome do osso e vou deixar isso para você como um exercício para preencher

38
00:02:32,000 --> 00:02:32,930
‫em um segundo.

39
00:02:33,590 --> 00:02:41,510
‫E então a segunda coisa é que nós queríamos aquela coisa de corpo operacional físico e nós vamos fazer isso.

40
00:02:41,630 --> 00:02:44,870
‫Isso é um enum, então vamos precisar preenchê-lo.

41
00:02:45,770 --> 00:02:50,150
‫Vou usar F12 para ir para a definição e ver o que temos no PBO.

42
00:02:50,150 --> 00:02:50,510
‫Nenhum.

43
00:02:50,510 --> 00:02:53,000
‫Não faça nada que pareça um padrão sensato.

44
00:02:53,000 --> 00:02:53,600
‫Vamos com isso.

45
00:02:53,930 --> 00:02:57,320
‫E então usamos o ponto e vírgula para terminar nossa linha ali mesmo.

46
00:02:58,070 --> 00:03:01,460
‫Então, vamos compilar listas e ver se temos todas as inclusões de que precisamos.

47
00:03:02,450 --> 00:03:02,750
‫Frio.

48
00:03:02,780 --> 00:03:09,650
‫Parece que está funcionando, então devemos ter todas as inclusões de que precisamos agora, vamos quais são seus desafios para colocar

49
00:03:09,650 --> 00:03:15,920
‫o nome do osso, dê um rápido desafio e eles estavam voltando o nome do osso é o

50
00:03:15,920 --> 00:03:21,590
‫sublinhado da arma, foi sugerido um pouco antes arma sublinhado R deve fazer o truque se

51
00:03:21,590 --> 00:03:29,090
‫formos em frente e recompilarmos com isso agora e apertarmos play, você pode ver que ele não está mais segurando uma arma.

52
00:03:29,120 --> 00:03:29,720
‫Fantástico.

53
00:03:30,110 --> 00:03:34,700
‫Então a próxima coisa é colocar uma arma diferente na mão dele, a arma do ator.

54
00:03:35,060 --> 00:03:37,220
‫Então, precisamos ir para o nosso esqueleto.

55
00:03:37,520 --> 00:03:42,020
‫E o que queremos fazer aqui é adicionar um novo soquete.

56
00:03:42,290 --> 00:03:46,670
‫Então vamos adicionar um soquete no lugar de nossa arma.

57
00:03:46,670 --> 00:03:47,900
‫Ah, e o que é um soquete.

58
00:03:48,560 --> 00:03:54,440
‫Uma tomada como soa como uma tomada é algo que você pode conectar, é um ponto em que

59
00:03:54,440 --> 00:03:56,480
‫você pode conectar outras coisas.

60
00:03:56,630 --> 00:04:04,700
‫Então você pode querer conectar, por exemplo, uma arma e você quer que ela seja filho não para a malha como

61
00:04:04,700 --> 00:04:11,900
‫um todo, mas para ter um osso específico dessa malha, o que significa que ela se moverá corretamente com

62
00:04:11,900 --> 00:04:13,250
‫braços do personagem.

63
00:04:13,250 --> 00:04:17,000
‫Quando ele está fazendo uma animação, quando ele está correndo, vai parecer que

64
00:04:17,000 --> 00:04:22,160
‫está preso à sua mão e não em algum lugar, você sabe, não rigidamente fixado em seu torso.

65
00:04:22,430 --> 00:04:27,410
‫Então, vamos adicionar um soquete filho a uma arma e fazer isso.

66
00:04:27,410 --> 00:04:34,070
‫Você vai para o esqueleto, clica com o botão direito do mouse no osso ao qual deseja anexar esse soquete e clica

67
00:04:34,070 --> 00:04:35,210
‫em adicionar soquete.

68
00:04:35,390 --> 00:04:38,510
‫E vamos chamar essa de arma.

69
00:04:39,910 --> 00:04:40,540
‫Soquete.

70
00:04:41,440 --> 00:04:46,750
‫Estou usando o camel case aqui como minha convenção, e é isso que vamos querer anexar agora.

71
00:04:46,750 --> 00:04:52,690
‫Você verá onde isso é útil quando formos realmente fazer o anexo para nossa arma.

72
00:04:53,410 --> 00:04:59,740
‫Agora, o que deve ser observado aqui é que não queremos fazer um anexo de configuração como faríamos no construtor em tempo

73
00:05:00,130 --> 00:05:00,940
‫de execução.

74
00:05:00,940 --> 00:05:05,170
‫Quando fazemos a anexação, temos que usar um conjunto diferente de funções em vez das que usamos

75
00:05:05,170 --> 00:05:05,770
‫no construtor.

76
00:05:06,460 --> 00:05:11,590
‫E lembre-se quando eu disse que a única hierarquia aqui é realmente entre os componentes da cena.

77
00:05:11,980 --> 00:05:16,390
‫Agora, felizmente, não precisamos entrar e pegar os componentes da raiz da arma e anexá-la.

78
00:05:16,390 --> 00:05:24,700
‫Existe um método auxiliar no ator que nos permite fazer a anexação e que é anexar aos componentes.

79
00:05:25,270 --> 00:05:26,980
‫Então vamos ver onde isso está definido.

80
00:05:26,980 --> 00:05:32,680
‫Se formos olhar para o ator Dot H head of File e houver alguns

81
00:05:32,680 --> 00:05:41,290
‫deles, queremos aquele que vive sob a estrutura do jogo e vamos procurar aqui para anexar aos colchetes abertos do componente e

82
00:05:41,290 --> 00:05:43,090
‫encontrar o real declaração.

83
00:05:43,090 --> 00:05:43,510
‫Aqui está.

84
00:05:44,020 --> 00:05:45,570
‫Então, o que isso vai levar?

85
00:05:45,580 --> 00:05:47,890
‫Vai receber um componente using.

86
00:05:48,040 --> 00:05:52,870
‫O pai ao qual queremos anexar neste caso será nossa malha esquelética do personagem, as

87
00:05:53,470 --> 00:05:54,550
‫regras de transformação.

88
00:05:54,550 --> 00:05:55,870
‫Chegaremos a isso em apenas um segundo.

89
00:05:55,870 --> 00:05:57,690
‫E aí está, o nome do soquete.

90
00:05:57,940 --> 00:06:00,730
‫É onde em uma malha esquelética devemos nos prender?

91
00:06:00,730 --> 00:06:02,680
‫Se for uma malha esquelética, ela se conectará ao soquete.

92
00:06:02,980 --> 00:06:08,440
‫Se não for uma malha esquelética, ele ignorará o argumento do soquete e apenas anexará se for uma malha estática, por

93
00:06:08,440 --> 00:06:08,980
‫exemplo.

94
00:06:09,490 --> 00:06:11,740
‫Então, queremos anexar para obter malha.

95
00:06:12,760 --> 00:06:14,530
‫Nós temos essas regras de transformação.

96
00:06:14,530 --> 00:06:15,130
‫O que são aqueles?

97
00:06:15,130 --> 00:06:18,850
‫Vamos clicar em F 12 para clicar nele.

98
00:06:18,850 --> 00:06:24,610
‫As diferentes regras que estão disponíveis, pois são as regras predefinidas, você pode definir as suas próprias, mas também

99
00:06:24,640 --> 00:06:26,230
‫pode usar essas predefinidas.

100
00:06:26,230 --> 00:06:31,420
‫Temos manter a transformação relativa, manter a transformação do mundo ajustada ao destino, sem incluir o céu, ignorará isso.

101
00:06:31,420 --> 00:06:37,090
‫Por fim, os dois principais a serem observados são esses dois primeiros e basicamente significa que quando estamos

102
00:06:37,090 --> 00:06:43,510
‫anexando, deve permanecer no mesmo lugar em que estava no mundo ou devemos usar essa posição mundial como a nova

103
00:06:43,510 --> 00:06:45,760
‫posição local em nosso caso ?

104
00:06:46,030 --> 00:06:52,480
‫Porque queremos que essa arma esteja essencialmente em zero zero, que seria sua localização no mundo.

105
00:06:52,480 --> 00:06:55,450
‫Queremos manter a transformação relativa, então vamos fazer isso.

106
00:06:55,450 --> 00:06:58,600
‫Então, vamos fazer com que as regras de transformação F mantenham a transformação relativa.

107
00:07:00,810 --> 00:07:03,090
‫Então eu transformei salas, papéis, cortei dois pontos.

108
00:07:03,420 --> 00:07:08,850
‫E então deveria ser, deixe-me dizer, apenas copiar as transformações relativas do keep assim.

109
00:07:09,570 --> 00:07:10,830
‫E então queremos o soquete.

110
00:07:10,950 --> 00:07:15,960
‫Então, novamente, macro de texto aqui e depois o nome do soquete que era o soquete da arma.

111
00:07:17,900 --> 00:07:19,430
‫E termine a linha.

112
00:07:19,430 --> 00:07:21,560
‫Isso vai configurar o anexo.

113
00:07:22,040 --> 00:07:26,750
‫E agora o ponto final será o que queremos configurar.

114
00:07:27,690 --> 00:07:31,730
‫A arma para ter esta classe como seu dono.

115
00:07:32,070 --> 00:07:33,600
‫Este é um ponto um pouco sutil.

116
00:07:33,690 --> 00:07:34,890
‫Por que temos um dono?

117
00:07:34,920 --> 00:07:37,950
‫Eu apenas disse que não havia hierarquia entre os atores.

118
00:07:38,400 --> 00:07:42,090
‫Bem, não há no sentido de transformadores, mas eles têm propriedade.

119
00:07:42,480 --> 00:07:48,020
‫E onde essa propriedade realmente entra em jogo é no multiplayer e no dano.

120
00:07:48,030 --> 00:07:52,080
‫Então, veremos mais tarde como precisaremos saber sobre o proprietário.

121
00:07:52,350 --> 00:08:00,030
‫Ele também permite que a arma saiba qual é o personagem proprietário e pode usar isso para obter referências ao

122
00:08:00,030 --> 00:08:01,800
‫personagem proprietário mais tarde.

123
00:08:02,100 --> 00:08:02,880
‫Isso será útil.

124
00:08:03,120 --> 00:08:07,830
‫No momento, não nos importamos particularmente, mas vamos fazer isso apenas por uma questão de completude.

125
00:08:08,280 --> 00:08:09,340
‫Agora eu deveria nomear isso errado.

126
00:08:09,360 --> 00:08:15,030
‫Não deve ser configurado proprietário, mas configurado proprietário para isso porque é o ator que é o proprietário da arma.

127
00:08:15,990 --> 00:08:16,620
‫do Cobain.

128
00:08:16,620 --> 00:08:19,440
‫Vamos compilar e ver se está funcionando.

129
00:08:20,590 --> 00:08:21,640
‫Compilado, bem sucedido.

130
00:08:21,640 --> 00:08:24,130
‫Vamos mergulhar e jogar o jogo.

131
00:08:24,370 --> 00:08:24,970
‫Impressionante.

132
00:08:24,970 --> 00:08:26,770
‫Temos uma arma em nossas mãos.

133
00:08:27,070 --> 00:08:28,030
‫Está no lugar certo?

134
00:08:28,060 --> 00:08:28,750
‫Vamos dar uma olhada.

135
00:08:28,900 --> 00:08:32,410
‫Vamos sair daqui e dar uma olhada na mão.

136
00:08:32,800 --> 00:08:33,580
‫Não exatamente.

137
00:08:33,610 --> 00:08:36,010
‫Você pode ver que poderíamos fazer um pouco de ajuste aqui.

138
00:08:36,400 --> 00:08:37,410
‫Então é isso que vamos fazer.

139
00:08:37,420 --> 00:08:39,340
‫E este é um desafio para você.

140
00:08:39,370 --> 00:08:46,300
‫Basicamente, o que você vai tentar fazer é descobrir qual deve ser o deslocamento na malha, de

141
00:08:46,300 --> 00:08:52,300
‫modo que essa alça esteja realmente dentro da mão do personagem Wraith das malhas.

142
00:08:52,630 --> 00:08:54,220
‫Pause o vídeo e experimente.

143
00:08:54,790 --> 00:08:55,480
‫Ok, bem-vindo de volta.

144
00:08:55,490 --> 00:09:00,250
‫Então, vou fazer isso selecionando essa malha e tentando movê-la.

145
00:09:00,640 --> 00:09:06,670
‫Eu vou ter que definir o tamanho do snap da grade na viewport para um pouco menos.

146
00:09:06,790 --> 00:09:11,800
‫E vou tentar ampliar o melhor que puder nessa mão.

147
00:09:13,340 --> 00:09:13,600
‫OK.

148
00:09:13,610 --> 00:09:16,400
‫Diminuindo um pouco isso, acho que é bom.

149
00:09:16,580 --> 00:09:17,090
‫Gritar.

150
00:09:17,120 --> 00:09:21,590
‫Agora vamos em frente e copiar o local e abrir.

151
00:09:21,590 --> 00:09:24,440
‫Acesse o navegador de conteúdo e abra o rifle BP.

152
00:09:25,040 --> 00:09:33,380
‫Abra o editor de blueprint completo, vá para a malha e pare de simular e cole o local que copiou

153
00:09:33,380 --> 00:09:34,100
‫lá.

154
00:09:34,700 --> 00:09:35,180
‫OK fixe.

155
00:09:35,180 --> 00:09:35,960
‫Entendido.

156
00:09:36,230 --> 00:09:38,840
‫E vamos lá e aperte o play.

157
00:09:40,020 --> 00:09:46,320
‫E vamos ver que é realmente amplo na coisa certa f8 para fora e zoom.

158
00:09:46,470 --> 00:09:50,940
‫A propósito, você pode usar a roda de rolagem para desacelerar seu movimento quando estiver se movendo dessa

159
00:09:50,940 --> 00:09:51,450
‫maneira.

160
00:09:51,900 --> 00:09:52,500
‫Fantástico.

161
00:09:52,500 --> 00:09:56,670
‫Parece que ele colocou a mão diretamente na maçaneta.

162
00:09:57,580 --> 00:09:58,120
‫Coisas incríveis.

163
00:09:58,120 --> 00:10:06,520
‫Assim, aprendemos como podemos associar atores filhos a outros atores e como podemos anexar componentes de cena a

164
00:10:06,520 --> 00:10:08,680
‫encaixes de malhas esqueléticas.

165
00:10:08,800 --> 00:10:14,620
‫Na próxima palestra, veremos um pouco sobre tiro e como a arquitetura dessa arma basicamente

166
00:10:15,190 --> 00:10:18,220
‫se encaixa em uma arquitetura de tiro.

167
00:10:18,220 --> 00:10:19,330
‫Então eu te vejo então.

