﻿1
00:00:04,320 --> 00:00:05,010
‫Olá e bem-vindo.

2
00:00:05,010 --> 00:00:11,250
‫Nesta palestra, vamos ter um ar para nos seguir e navegar pelo mundo, evitando

3
00:00:11,250 --> 00:00:14,850
‫obstáculos e geralmente sendo um pouco incômodo.

4
00:00:15,090 --> 00:00:17,280
‫Vamos mergulhar e ver como isso é possível.

5
00:00:18,390 --> 00:00:24,990
‫Então, a próxima peça mais óbvia do quebra-cabeça que precisamos resolver aqui é fazer com que nosso exército

6
00:00:25,420 --> 00:00:27,400
‫se mova em nossa direção.

7
00:00:27,420 --> 00:00:28,950
‫Não adianta eles ficarem parados ali.

8
00:00:29,190 --> 00:00:31,710
‫Eles também precisam se mover e então eles precisarão atirar.

9
00:00:31,710 --> 00:00:34,530
‫Primeiro de tudo, vamos descobrir como podemos fazer o movimento.

10
00:00:35,400 --> 00:00:39,780
‫Agora, quando você estiver se mudando com Ally, preciso saber sobre os obstáculos.

11
00:00:39,780 --> 00:00:41,490
‫Ele precisa fazer algo chamado pathfinding.

12
00:00:41,490 --> 00:00:45,030
‫Porque, digamos, estou me escondendo neste corredor aqui e ele quer chegar até mim.

13
00:00:45,330 --> 00:00:48,470
‫Ele precisa saber que não pode simplesmente atravessar a parede.

14
00:00:48,480 --> 00:00:53,670
‫Vai precisar planejar suas rotas para contornar os obstáculos e vir em minha direção.

15
00:00:54,270 --> 00:01:01,200
‫Agora, a maneira como isso normalmente funciona em jogos em geral e especificamente aqui no Unreal é que geramos uma

16
00:01:01,200 --> 00:01:08,610
‫malha que nos diz onde é possível caminhar dentro de um nível e, em seguida, usando vários algoritmos, um dos quais é

17
00:01:08,610 --> 00:01:10,230
‫chamado de star pathfinding.

18
00:01:10,470 --> 00:01:17,580
‫Você pode navegar nesta malha e criar um plano de rota, e o aliado então usa esse plano de rota para se

19
00:01:17,580 --> 00:01:17,940
‫mover.

20
00:01:18,360 --> 00:01:20,310
‫Então esse é o tipo de esboço do processo.

21
00:01:20,310 --> 00:01:22,220
‫Felizmente, muito disso é feito por nós.

22
00:01:22,230 --> 00:01:23,790
‫Não precisamos codificar isso do zero.

23
00:01:24,180 --> 00:01:29,850
‫Então, o que precisamos fazer é, em primeiro lugar, poder ver a malha NAF e no momento não podemos ver

24
00:01:29,850 --> 00:01:32,520
‫uma malha NAF parcialmente porque não há uma.

25
00:01:32,970 --> 00:01:36,670
‫Então, o que precisamos fazer é olhar em nossa janela de atores colocados aqui.

26
00:01:36,670 --> 00:01:40,020
‫Também imagine uma janela e procure por atores de lugares colocados.

27
00:01:40,650 --> 00:01:47,120
‫Precisamos procurar uma malha de navegação e estamos procurando os limites de volume da malha NAF.

28
00:01:47,130 --> 00:01:53,880
‫Agora, isso cria um volume, um tipo de caixa, e tudo dentro dessa caixa será verificado

29
00:01:54,120 --> 00:01:55,440
‫quanto à navegação.

30
00:01:55,440 --> 00:02:00,480
‫Basicamente, se é plano, se não é muito íngreme, basicamente se há uma parede, você não pode passar por paredes,

31
00:02:00,480 --> 00:02:03,780
‫você não pode passar por cima de paredes porque elas são muito íngremes.

32
00:02:04,140 --> 00:02:08,940
‫Então, se estivermos arrastando um volume de ressalto de malha NAF e apenas o

33
00:02:08,940 --> 00:02:15,450
‫trouxer aqui e apenas colocá-lo levemente no piso para que isso permita que o piso faça parte desse cálculo de navegação.

34
00:02:15,900 --> 00:02:20,910
‫Então o que temos que fazer é habilitar a visibilidade das malhas NAF.

35
00:02:21,210 --> 00:02:25,830
‫Você pode fazer isso clicando no botão show no canto superior esquerdo da sua janela de visualização e, em

36
00:02:25,830 --> 00:02:28,080
‫seguida, clicando na navegação ou usando o atalho.

37
00:02:28,080 --> 00:02:29,820
‫P Então eu vou usar o atalho.

38
00:02:29,820 --> 00:02:33,840
‫P E selecionando ou você nem precisa selecionar o volume de salto.

39
00:02:33,840 --> 00:02:39,180
‫Você pode ver instantaneamente que a malha da tela apareceu dentro do volume dos limites, o que nos diz que

40
00:02:39,180 --> 00:02:40,710
‫esta é uma área caminhável.

41
00:02:40,800 --> 00:02:48,220
‫Então, se tivéssemos nosso inimigo dentro desta área e seu alvo também estivesse dentro da área, então ele poderia encontrar o

42
00:02:48,220 --> 00:02:50,340
‫caminho ao longo dessa malha.

43
00:02:50,880 --> 00:02:55,170
‫Agora vamos dar uma olhada no que acontece se movermos isso para onde há um obstáculo.

44
00:02:55,170 --> 00:02:59,820
‫Você pode ver que a malha corta esse obstáculo.

45
00:03:00,210 --> 00:03:07,650
‫Então, o que realmente queremos fazer é que esse volume abranja todo o nosso nível e você pode optar por não fazer isso

46
00:03:07,650 --> 00:03:14,070
‫ou apenas fazer isso em determinados segmentos, mas a maneira mais fácil é aumentar os limites desse volume, o

47
00:03:14,070 --> 00:03:15,750
‫que você pode fazer.

48
00:03:15,750 --> 00:03:19,140
‫Se você for para o painel de detalhes à direita, há as configurações do pincel.

49
00:03:19,430 --> 00:03:25,200
‫Você pode alterar o tamanho do pincel para que você possa ver que podemos torná-lo maior, podemos torná-lo

50
00:03:25,470 --> 00:03:28,740
‫mais largo e ele fica vermelho quando está sendo recalculado.

51
00:03:28,740 --> 00:03:33,240
‫Você pode ver que está construindo a malha NAF e quanto maior for, mais difícil será

52
00:03:33,240 --> 00:03:35,400
‫construir a malha NAF, mais tempo levará.

53
00:03:35,760 --> 00:03:37,560
‫Mas você pode ver que isso está funcionando.

54
00:03:37,560 --> 00:03:42,690
‫Está cortando os corredores, está cortando os obstáculos que não podemos contornar.

55
00:03:43,140 --> 00:03:51,900
‫A segunda parte deste quebra-cabeça é ter um A. EU. capaz de fazer seus algoritmos de enraizamento nesta malha.

56
00:03:52,350 --> 00:03:56,730
‫Agora, vamos abrir o atirador BP, controlador aéreo, porque eu quero mostrar a vocês algo

57
00:03:56,730 --> 00:03:57,840
‫que está aqui.

58
00:03:57,930 --> 00:04:02,310
‫Vou abrir o editor de blueprint completo aqui e dar uma olhada aqui.

59
00:04:02,310 --> 00:04:05,940
‫Existe um componente chamado de componente seguinte ao caminho.

60
00:04:06,450 --> 00:04:12,960
‫Esse componente é responsável por encontrar uma malha de RF e basicamente nos permitir criar

61
00:04:12,960 --> 00:04:16,200
‫caminhos e segui-los e movê-los automaticamente.

62
00:04:16,200 --> 00:04:18,810
‫Portanto, não precisamos criar nenhuma dessas funcionalidades.

63
00:04:19,170 --> 00:04:24,090
‫Tudo o que temos a fazer é usar uma função que está disponível em nosso controlador aéreo.

64
00:04:24,390 --> 00:04:33,230
‫Se você for procurar o ponto H do controlador aéreo e procurar o movimento para funcionar, vamos passar

65
00:04:33,240 --> 00:04:35,460
‫para com colchetes abertos.

66
00:04:35,460 --> 00:04:37,170
‫Então há algumas opções aqui.

67
00:04:37,170 --> 00:04:40,080
‫Temos um leva um movimento para solicitar.

68
00:04:40,530 --> 00:04:45,450
‫Existem algumas outras opções aqui também, mas isso deve ter um nome diferente.

69
00:04:45,450 --> 00:04:52,080
‫Agora, em versões posteriores no trilho, temos a mudança para o ator e temos a mudança para o local, que

70
00:04:52,080 --> 00:04:55,280
‫têm a mesma distinção do nosso foco de configuração.

71
00:04:55,290 --> 00:05:00,570
‫Você pode definir o foco para algo que está se movendo como um ator, ou pode definir o foco para

72
00:05:00,570 --> 00:05:06,210
‫um destino específico, como um ponto de passagem em sua rota de patrulha, por exemplo, pode ser um movimento para o local.

73
00:05:06,510 --> 00:05:10,650
‫Então, eu gostaria que você tentasse uma mudança para quando for desafiado.

74
00:05:10,650 --> 00:05:16,320
‫Portanto, coloque uma malha NAF em sua cena, faça-a cobrir o máximo da cena que você precisar para poder

75
00:05:16,320 --> 00:05:17,820
‫se mover e ter o.

76
00:05:18,000 --> 00:05:23,610
‫Eu sigo você em todos os locais e, em seguida, chamo esse movimento para mover para agir ou mover para o local.

77
00:05:23,610 --> 00:05:29,130
‫Você decide qual no início do jogo para obter o A. EU. nos perseguindo.

78
00:05:29,310 --> 00:05:30,870
‫Então pause o vídeo e vá em frente.

79
00:05:32,270 --> 00:05:32,660
‫OK.

80
00:05:32,690 --> 00:05:33,230
‫Bem vindo de volta.

81
00:05:33,300 --> 00:05:34,280
‫Vamos dar uma chance a isso.

82
00:05:34,610 --> 00:05:35,840
‫Então as primeiras coisas primeiro.

83
00:05:35,840 --> 00:05:44,600
‫Nós vamos ter que usar uma mudança para ator e vamos ter que definir o ator objetivo.

84
00:05:44,600 --> 00:05:50,090
‫Então vamos para o nosso atirador, controlador aéreo, ponto, CP e lá começar a jogar.

85
00:05:50,480 --> 00:05:55,460
‫Podemos mudar para ator e já temos um ator para interpretar um peão que recebemos da última

86
00:05:55,460 --> 00:05:57,520
‫palestra e vamos dar uma olhada.

87
00:05:57,530 --> 00:06:00,320
‫Existem outras propriedades úteis aqui?

88
00:06:00,320 --> 00:06:01,910
‫Temos um raio de aceitação.

89
00:06:01,910 --> 00:06:03,980
‫No momento não tem raio de aceitação.

90
00:06:03,980 --> 00:06:05,870
‫Basicamente, chega o mais próximo possível.

91
00:06:06,230 --> 00:06:08,840
‫Acho que isso pode atrapalhar um pouco.

92
00:06:08,840 --> 00:06:14,240
‫Vou dar a ele um raio de aceitação de dois metros, então ele tentará chegar a dois metros de

93
00:06:14,240 --> 00:06:14,540
‫nós.

94
00:06:15,170 --> 00:06:16,580
‫Então vamos em frente e construir isso.

95
00:06:17,720 --> 00:06:21,690
‫E uma vez que está completo, você vai até o motor e vamos dar uma olhada.

96
00:06:21,710 --> 00:06:28,760
‫Não vou expandir o volume de rejeição aqui apenas para dar uma ideia do motivo pelo qual precisamos do volume de rejeição em

97
00:06:28,760 --> 00:06:29,650
‫primeiro lugar.

98
00:06:29,660 --> 00:06:31,880
‫Então vamos começar com um alt p.

99
00:06:32,810 --> 00:06:33,470
‫E aqui estamos.

100
00:06:33,470 --> 00:06:37,790
‫Estamos na malha de navegação e esse cara se moveu em nossa direção automaticamente.

101
00:06:38,120 --> 00:06:45,320
‫Mas se eu deixar essa malha NAF, ele não pode mais se aproximar de mim porque não consegue encontrar a rota.

102
00:06:45,380 --> 00:06:48,740
‫Ele não consegue encontrar uma maneira de chegar até mim.

103
00:06:49,130 --> 00:06:55,010
‫Então, o que vamos fazer é que, na verdade, não tenho certeza de que era isso que realmente estava acontecendo aqui,

104
00:06:55,010 --> 00:07:00,890
‫porque provavelmente o que está acontecendo é que ele está ficando dentro do meu raio de aceitação e depois não tenta

105
00:07:00,890 --> 00:07:01,340
‫novamente.

106
00:07:01,670 --> 00:07:09,800
‫Então, uma maneira de verificar isso seria apenas remover esse raio de aceitação e recompilar e então podemos verificar e ver

107
00:07:09,800 --> 00:07:12,560
‫se é isso que está acontecendo.

108
00:07:12,590 --> 00:07:16,290
‫Então, sim, ele vem até mim se eu me afastar.

109
00:07:16,310 --> 00:07:18,920
‫Bem, ele basicamente esqueceu esse comando.

110
00:07:19,220 --> 00:07:25,400
‫Então o que queremos fazer é fazer isso no tic, porque basicamente quando ele me alcança, ele desiste da ideia

111
00:07:25,400 --> 00:07:26,510
‫de me perseguir.

112
00:07:26,840 --> 00:07:28,910
‫Então vamos mover isso para tomar.

113
00:07:28,910 --> 00:07:31,550
‫Esta não é a maneira ideal de fazê-lo, mas é isso que vamos fazer.

114
00:07:31,550 --> 00:07:37,880
‫Por enquanto, vou copiar a assinatura do tic da direita do ator, e sei que vai na seção pública,

115
00:07:37,880 --> 00:07:40,550
‫então vou criar uma seção pública no topo.

116
00:07:42,740 --> 00:07:50,090
‫Copie a assinatura, faça uma substituição apenas por segurança e, em seguida, implemente-a no C++ e mova e

117
00:07:50,180 --> 00:07:57,950
‫mova o ator para marcar e o raio de aceitação ainda de dois metros, tente isso agora e, obviamente, está

118
00:07:57,950 --> 00:08:01,310
‫reclamando que não temos um jogador - ali.

119
00:08:01,310 --> 00:08:06,470
‫Então, vamos nos certificar de que estamos repetindo essa linha que prende o primeiro

120
00:08:06,470 --> 00:08:08,960
‫jogador - em um tique também.

121
00:08:09,320 --> 00:08:14,990
‫E agora devemos ser capazes de testá-lo adequadamente para um pico alternativo e o mundo que vem e nos leva

122
00:08:15,260 --> 00:08:16,220
‫a dois metros.

123
00:08:16,220 --> 00:08:18,680
‫Eu me afasto dele e olho para isso.

124
00:08:18,680 --> 00:08:24,170
‫Ele nem está mirando em mim corretamente desta vez, mas ele está tentando seguir em frente.

125
00:08:24,860 --> 00:08:29,480
‫Mas assim que eu saio daquela malha de navegação, ele não sabe mais como me encontrar.

126
00:08:29,690 --> 00:08:31,160
‫Então vamos consertar isso, certo?

127
00:08:31,160 --> 00:08:35,210
‫Vamos para um volume de salto de malha de navegação.

128
00:08:36,130 --> 00:08:37,330
‫Se eu puder selecionar.

129
00:08:37,330 --> 00:08:37,840
‫Aqui vamos nós.

130
00:08:37,990 --> 00:08:44,150
‫E então queremos realmente diminuir o zoom aqui para tentar abranger todo o nosso nível.

131
00:08:44,180 --> 00:08:49,330
‫Parece um pouco estranho do lado de fora deste nível, mas é assim que as coisas geralmente funcionam, é que

132
00:08:49,330 --> 00:08:52,750
‫você constrói um nível para ser visto de dentro, não de fora.

133
00:08:53,110 --> 00:08:55,450
‫Então, vamos tornar isso muito mais amplo.

134
00:08:55,450 --> 00:09:01,390
‫Vamos torná-lo muito mais alto para que englobe todo o nível e apenas arrastá-lo para que todas as

135
00:09:01,390 --> 00:09:03,700
‫extensões do nível aqui sejam cobertas.

136
00:09:04,030 --> 00:09:11,860
‫Basta torná-lo um pouco mais largo, um pouco mais longo também, e apenas certifique-se de que tudo isso esteja totalmente

137
00:09:11,860 --> 00:09:12,520
‫englobado.

138
00:09:13,180 --> 00:09:17,920
‫E você pode ver que o verde apareceu como é calculado, o nav encontrou e

139
00:09:17,920 --> 00:09:25,210
‫vamos apenas ter certeza de que a mensagem de nav está baixando o suficiente para cobrir as extensões mais baixas do nosso mapa parece estar

140
00:09:25,210 --> 00:09:25,930
‫cobrindo agora.

141
00:09:26,260 --> 00:09:33,730
‫Então, se formos em frente e pudermos nos esconder e nav mesh agora que configuramos tudo e podemos fazer um alt p para ir em

142
00:09:33,730 --> 00:09:40,240
‫frente e jogar e ele pode nos encontrar e nos seguir praticamente em qualquer lugar que formos dentro desse nível.

143
00:09:40,780 --> 00:09:47,680
‫Você pode ver que eu confiei que um servo está nos seguindo aonde quer que escolhamos ir.

144
00:09:47,890 --> 00:09:50,890
‫Ele está apenas nos seguindo e nos seguindo, o que é muito irritante.

145
00:09:51,100 --> 00:09:53,560
‫Mas ele é capaz de fazer isso.

146
00:09:54,590 --> 00:09:55,130
‫Coisas incríveis.

147
00:09:55,130 --> 00:10:02,330
‫Então, nesta palestra, vimos como podemos criar e ter malhas e como podemos usá-las para fazer com que

148
00:10:02,330 --> 00:10:05,180
‫nosso aliado nos siga pelo nível.

149
00:10:06,520 --> 00:10:12,880
‫Em seguida, vamos voltar para essa correção do bug e verificar a linha de visão para

150
00:10:12,880 --> 00:10:16,150
‫que não necessariamente sempre persigamos o jogador.

151
00:10:16,360 --> 00:10:16,870
‫Vê isso?

152
00:10:18,360 --> 00:10:22,770
‫E acabei de notar um pequeno erro bobo que cometi aqui, que é que não estou

153
00:10:22,800 --> 00:10:25,440
‫ligando para super cut on code on tech.

154
00:10:25,650 --> 00:10:31,000
‫Então, na verdade, é por isso que, às vezes, você recebe esses bugs estranhos e inexplicáveis.

155
00:10:31,260 --> 00:10:36,210
‫Se você não está ligando para super e as coisas nem sempre funcionam como esperado, é por isso

156
00:10:36,480 --> 00:10:41,970
‫que o foco parou de funcionar, porque essencialmente desabilitamos a tecnologia em um controlador alto, o que não é bom.

157
00:10:42,360 --> 00:10:47,250
‫Se você estiver habilitado, tudo deverá funcionar normalmente com o foco de configuração.

