﻿1
00:00:04,320 --> 00:00:05,010
‫Ciao e Benvenuto.

2
00:00:05,010 --> 00:00:11,250
‫In questa lezione, prenderemo l'aria di seguirci e navigare nel mondo, evitando gli ostacoli e solo

3
00:00:11,250 --> 00:00:14,850
‫in generale essendo un po' un fastidioso fastidio.

4
00:00:15,090 --> 00:00:17,280
‫Immergiamoci e vediamo come questo è possibile.

5
00:00:18,390 --> 00:00:24,990
‫Quindi il prossimo pezzo più ovvio e ovvio del puzzle che dobbiamo risolvere qui è convincere il nostro esercito

6
00:00:25,420 --> 00:00:27,400
‫a muoversi verso di noi.

7
00:00:27,420 --> 00:00:28,950
‫Non va bene che stiano lì.

8
00:00:29,190 --> 00:00:31,710
‫Hanno anche bisogno di muoversi e poi dovranno sparare.

9
00:00:31,710 --> 00:00:34,530
‫Prima di tutto, scopriamo come possiamo fare movimento.

10
00:00:35,400 --> 00:00:39,780
‫Ora, quando ti muovi con Ally, ho bisogno di sapere degli ostacoli.

11
00:00:39,780 --> 00:00:41,490
‫Ha bisogno di fare qualcosa chiamato pathfinding.

12
00:00:41,490 --> 00:00:45,030
‫Perché, diciamo, mi sto nascondendo in questo corridoio qui e vuole raggiungermi.

13
00:00:45,330 --> 00:00:48,470
‫Deve sapere che non può semplicemente attraversare il muro.

14
00:00:48,480 --> 00:00:53,670
‫Avrà bisogno di pianificare i suoi percorsi per aggirare gli ostacoli e venire verso di me.

15
00:00:54,270 --> 00:01:01,200
‫Ora, il modo in cui funziona tipicamente nei giochi in generale e in particolare qui in Unreal è che

16
00:01:01,200 --> 00:01:08,610
‫generiamo una mesh che ci dice dove è percorribile all'interno di un livello e quindi utilizziamo vari algoritmi, uno dei quali

17
00:01:08,610 --> 00:01:10,230
‫è chiamato star pathfinding.

18
00:01:10,470 --> 00:01:17,940
‫Puoi navigare su questa mesh e creare un piano di percorso, quindi l'alleato utilizza questo piano di percorso per spostarsi.

19
00:01:18,360 --> 00:01:20,310
‫Quindi questo è il tipo di schema del processo.

20
00:01:20,310 --> 00:01:22,220
‫Fortunatamente, molto di questo è stato fatto per noi.

21
00:01:22,230 --> 00:01:23,790
‫Non dobbiamo codificarlo da zero.

22
00:01:24,180 --> 00:01:29,850
‫Quindi quello che dobbiamo fare è, prima di tutto, essere in grado di vedere la mesh NAF e al momento non possiamo

23
00:01:29,850 --> 00:01:32,520
‫vedere parzialmente una mesh NAF perché non ce n'è una.

24
00:01:32,970 --> 00:01:36,670
‫Quindi quello che dobbiamo fare è guardare nella finestra degli attori posizionati qui.

25
00:01:36,670 --> 00:01:40,020
‫Immagina anche una finestra e cerca gli attori posizionati.

26
00:01:40,650 --> 00:01:47,120
‫Dobbiamo cercare una mesh di navigazione e stiamo cercando i limiti di volume della mesh NAF.

27
00:01:47,130 --> 00:01:53,880
‫Ora questo crea un volume, una specie di casella, e tutto all'interno di quella casella verrà verificato per

28
00:01:54,120 --> 00:01:55,440
‫quanto sia navigabile.

29
00:01:55,440 --> 00:02:00,480
‫Fondamentalmente, che sia pianeggiante, che non sia troppo ripido, in pratica che ci sia un muro, non puoi passare attraverso

30
00:02:00,480 --> 00:02:03,780
‫i muri, non puoi camminare sopra i muri perché sono troppo ripidi.

31
00:02:04,140 --> 00:02:08,940
‫Quindi, se stiamo trascinando un volume di rimbalzo della mesh NAF e lo portiamo qui

32
00:02:08,940 --> 00:02:15,450
‫e lo mettiamo leggermente attraverso il pavimento in modo che questo permetta al pavimento di far parte di quel calcolo di navigazione.

33
00:02:15,900 --> 00:02:20,910
‫Quindi quello che dobbiamo fare è abilitare la visibilità delle mesh NAF.

34
00:02:21,210 --> 00:02:25,830
‫Puoi farlo facendo clic sul pulsante mostra in alto a sinistra nella finestra e quindi facendo

35
00:02:25,830 --> 00:02:28,080
‫clic su navigazione o utilizzando il collegamento.

36
00:02:28,080 --> 00:02:29,820
‫P Quindi userò la scorciatoia.

37
00:02:29,820 --> 00:02:33,840
‫P E selezionando o non devi nemmeno selezionare il volume di rimbalzo.

38
00:02:33,840 --> 00:02:39,180
‫Puoi vedere immediatamente che la mesh dello schermo è apparsa entro i limiti del volume, il che ci dice che

39
00:02:39,180 --> 00:02:40,710
‫si tratta di un'area percorribile.

40
00:02:40,800 --> 00:02:48,220
‫Quindi, se avessimo il nostro nemico all'interno di quest'area e anche il suo obiettivo fosse all'interno dell'area, allora potrebbe trovare

41
00:02:48,220 --> 00:02:50,340
‫il percorso lungo questa rete.

42
00:02:50,880 --> 00:02:55,170
‫Ora diamo un'occhiata a cosa succede se lo spostiamo dove c'è un ostacolo.

43
00:02:55,170 --> 00:02:59,820
‫Puoi vedere che il tipo di maglia si ritaglia attorno a questo ostacolo.

44
00:03:00,210 --> 00:03:07,650
‫Quindi quello che in realtà vogliamo fare è fare in modo che questo volume comprenda l'intero nostro livello e potresti scegliere di non

45
00:03:07,650 --> 00:03:14,070
‫farlo o semplicemente farlo in determinati segmenti, ma il modo più semplice è semplicemente aumentare i limiti di questo volume,

46
00:03:14,070 --> 00:03:15,750
‫cosa che puoi fare.

47
00:03:15,750 --> 00:03:19,140
‫Se vai al riquadro dei dettagli a destra, ci sono le impostazioni del pennello.

48
00:03:19,430 --> 00:03:25,200
‫Puoi cambiare la dimensione del pennello in modo da poter vedere che possiamo ingrandirlo, possiamo

49
00:03:25,470 --> 00:03:28,740
‫allargarlo e diventa rosso quando viene ricalcolato.

50
00:03:28,740 --> 00:03:33,240
‫Puoi vedere che sta costruendo la mesh NAF e più grande sarà, più difficile sarà costruire

51
00:03:33,240 --> 00:03:35,400
‫la mesh NAF, più tempo ci vorrà.

52
00:03:35,760 --> 00:03:37,560
‫Ma puoi vedere che funziona.

53
00:03:37,560 --> 00:03:42,690
‫Sta tagliando i corridoi, sta tagliando gli ostacoli che non possiamo aggirare.

54
00:03:43,140 --> 00:03:51,900
‫La seconda parte di questo puzzle è avere una A. IO. in grado di eseguire i suoi algoritmi di rooting su questa mesh.

55
00:03:52,350 --> 00:03:56,730
‫Ora, andiamo avanti e apriamo lo shooter BP, il controller aereo, perché voglio mostrarvi qualcosa che

56
00:03:56,730 --> 00:03:57,840
‫è qui dentro.

57
00:03:57,930 --> 00:04:02,310
‫Ho intenzione di aprire l'editor completo del progetto qui e dare un'occhiata qui.

58
00:04:02,310 --> 00:04:05,940
‫C'è un componente chiamato il componente che segue il percorso.

59
00:04:06,450 --> 00:04:12,960
‫Quel componente è responsabile della ricerca di una mesh RF e quindi sostanzialmente ci consente di creare

60
00:04:12,960 --> 00:04:16,200
‫percorsi, seguirli e spostarci lungo di essi automaticamente.

61
00:04:16,200 --> 00:04:18,810
‫Quindi non dobbiamo integrare nessuna di queste funzionalità.

62
00:04:19,170 --> 00:04:24,090
‫Tutto ciò che dobbiamo fare è utilizzare una funzione disponibile sul nostro controller dell'aria.

63
00:04:24,390 --> 00:04:33,230
‫Se vai a cercare il punto H del controller dell'aria e cerchi la mossa per funzionare, allora passiamo

64
00:04:33,240 --> 00:04:35,460
‫a con parentesi aperte.

65
00:04:35,460 --> 00:04:37,170
‫Poi ci sono un paio di opzioni qui.

66
00:04:37,170 --> 00:04:40,080
‫Ne abbiamo uno che richiede una mossa.

67
00:04:40,530 --> 00:04:45,450
‫Ci sono anche altre opzioni qui, ma dovrebbero avere un nome diverso.

68
00:04:45,450 --> 00:04:52,080
‫Ora, nelle versioni successive su rotaia, ci spostiamo sull'attore e ci spostiamo sulla location, che hanno

69
00:04:52,080 --> 00:04:55,280
‫la stessa distinzione del nostro focus sull'ambientazione.

70
00:04:55,290 --> 00:05:00,570
‫Puoi mettere a fuoco qualcosa che si muove come un attore, oppure puoi mettere a fuoco una

71
00:05:00,570 --> 00:05:06,210
‫destinazione specifica come un waypoint nel tuo percorso di pattuglia, ad esempio, potrebbe essere uno spostamento in una posizione.

72
00:05:06,510 --> 00:05:10,650
‫Quindi mi piacerebbe che tu provassi a tentare una mossa mentre vieni sfidato.

73
00:05:10,650 --> 00:05:16,320
‫Quindi prendi una mesh NAF nella tua scena, falla coprire tutta la scena di cui hai bisogno per poterti

74
00:05:16,320 --> 00:05:17,820
‫muovere e avere il.

75
00:05:18,000 --> 00:05:23,610
‫Ti seguo in tutte le località e poi chiamo quella mossa per muoverti per agire o spostarmi nella posizione.

76
00:05:23,610 --> 00:05:29,130
‫Decidi tu in quale inizio di gioco prendere la A. IO. inseguendoci.

77
00:05:29,310 --> 00:05:30,870
‫Quindi metti in pausa il video e prova.

78
00:05:32,270 --> 00:05:32,660
‫Bene.

79
00:05:32,690 --> 00:05:33,230
‫Ben tornato.

80
00:05:33,300 --> 00:05:34,280
‫Diamo una possibilità.

81
00:05:34,610 --> 00:05:35,840
‫Quindi prima le cose.

82
00:05:35,840 --> 00:05:44,600
‫Avremo che userò un passaggio all'attore e dovremo stabilire l'obiettivo dell'attore.

83
00:05:44,600 --> 00:05:50,090
‫Quindi andiamo al nostro sparatutto, controller aereo, punto, CP e lì iniziamo a giocare.

84
00:05:50,480 --> 00:05:55,460
‫Possiamo passare all'attore e abbiamo già un attore per interpretare una pedina che abbiamo ottenuto

85
00:05:55,460 --> 00:05:57,520
‫dall'ultima lezione e diamo solo un'occhiata.

86
00:05:57,530 --> 00:06:00,320
‫Ci sono altre proprietà utili qui?

87
00:06:00,320 --> 00:06:01,910
‫Abbiamo un raggio di accettazione.

88
00:06:01,910 --> 00:06:03,980
‫Al momento non ha raggio di accettazione.

89
00:06:03,980 --> 00:06:05,870
‫Fondamentalmente si avvicina il più possibile.

90
00:06:06,230 --> 00:06:08,840
‫Penso che potrebbe essere un po' invadente.

91
00:06:08,840 --> 00:06:14,540
‫Gli darò un raggio di accettazione di due metri, quindi cercherà di arrivare entro due metri da noi.

92
00:06:15,170 --> 00:06:16,580
‫Quindi andiamo avanti e costruiamolo.

93
00:06:17,720 --> 00:06:21,690
‫E una volta completato, vai nel motore e diamo un'occhiata.

94
00:06:21,710 --> 00:06:28,760
‫Non espanderò il volume di rimbalzo qui solo per darti un assaggio del motivo per cui abbiamo bisogno del volume di rimbalzo in

95
00:06:28,760 --> 00:06:29,650
‫primo luogo.

96
00:06:29,660 --> 00:06:31,880
‫Quindi iniziamo con un alt p.

97
00:06:32,810 --> 00:06:33,470
‫Ed eccoci qui.

98
00:06:33,470 --> 00:06:37,790
‫Siamo sulla rete nav e questo ragazzo si è spostato verso di noi automaticamente.

99
00:06:38,120 --> 00:06:45,320
‫Ma se lascio quella maglia NAF, non può più avvicinarsi a me perché non riesce a trovare la via.

100
00:06:45,380 --> 00:06:48,740
‫Non riesce a trovare un modo per raggiungermi.

101
00:06:49,130 --> 00:06:55,010
‫Quindi quello che faremo è in effetti, non sono sicuro che fosse quello che sta succedendo qui, perché probabilmente

102
00:06:55,010 --> 00:07:00,890
‫quello che sta succedendo è che sta entrando nel raggio di accettazione di me e poi non ci

103
00:07:00,890 --> 00:07:01,340
‫riprova.

104
00:07:01,670 --> 00:07:09,800
‫Quindi un modo per verificarlo sarebbe rimuovere questo raggio di accettazione e ricompilare e quindi possiamo andare oltre e vedere

105
00:07:09,800 --> 00:07:12,560
‫se è quello che sta succedendo.

106
00:07:12,590 --> 00:07:16,290
‫Quindi, sì, viene da me se mi allontano.

107
00:07:16,310 --> 00:07:18,920
‫Beh, ha praticamente dimenticato quel comando.

108
00:07:19,220 --> 00:07:25,400
‫Quindi quello che vogliamo fare è farlo in tic, perché in pratica una volta che mi raggiunge, rinuncia

109
00:07:25,400 --> 00:07:26,510
‫all'idea di inseguirmi.

110
00:07:26,840 --> 00:07:28,910
‫Quindi spostiamo questo per prendere.

111
00:07:28,910 --> 00:07:31,550
‫Questo non è il modo ideale per farlo, ma è quello che faremo.

112
00:07:31,550 --> 00:07:37,880
‫Solo per ora, copierò la firma del tic dalla destra dell'attore, e so che va nella sezione pubblica,

113
00:07:37,880 --> 00:07:40,550
‫quindi creerò una sezione pubblica in alto.

114
00:07:42,740 --> 00:07:50,090
‫Copia nella firma, impostalo come override solo per sicurezza e quindi implementalo in C++ e sposta e sposta l'attore in

115
00:07:50,180 --> 00:07:57,950
‫un segno di spunta e il raggio di accettazione è ancora di due metri che lo prova ora e ovviamente si

116
00:07:57,950 --> 00:08:01,310
‫lamenta che non abbiamo un giocatore -- laggiù.

117
00:08:01,310 --> 00:08:06,470
‫Quindi andiamo e assicuriamoci di continuare a ripetere questa linea che si impossessa del primo

118
00:08:06,470 --> 00:08:08,960
‫giocatore, anche in un segno di spunta.

119
00:08:09,320 --> 00:08:14,990
‫E ora dovremmo essere in grado di testarlo correttamente fino a un picco alternativo e il mondo arriva e ci porta

120
00:08:15,260 --> 00:08:16,220
‫entro due metri.

121
00:08:16,220 --> 00:08:18,680
‫Mi allontano da lui e lo guardo.

122
00:08:18,680 --> 00:08:24,170
‫Questa volta non mi sta nemmeno mirando correttamente, ma sta cercando di seguirmi.

123
00:08:24,860 --> 00:08:29,480
‫Ma appena lascio quella maglia di navigazione, non sa più come trovarmi.

124
00:08:29,690 --> 00:08:31,160
‫Quindi sistemiamolo, vero?

125
00:08:31,160 --> 00:08:35,210
‫Andremo a un volume di rimbalzo della mesh di navigazione.

126
00:08:36,130 --> 00:08:37,330
‫Se posso selezionarlo.

127
00:08:37,330 --> 00:08:37,840
‫Eccoci.

128
00:08:37,990 --> 00:08:44,150
‫E poi vogliamo davvero rimpicciolire qui per provare a comprendere l'intero nostro livello.

129
00:08:44,180 --> 00:08:49,330
‫Sembra un po' eccentrico all'esterno di questo livello, ma è solo il modo in cui spesso le cose funzionano,

130
00:08:49,330 --> 00:08:52,750
‫è che costruisci un livello per essere visto dall'interno, non dall'esterno.

131
00:08:53,110 --> 00:08:55,450
‫Quindi rendiamo questo molto più ampio.

132
00:08:55,450 --> 00:09:01,390
‫Rendiamolo molto più alto in modo che comprenda tutto il livello e trascinalo fuori in modo che tutte

133
00:09:01,390 --> 00:09:03,700
‫le estensioni del livello qui siano coperte.

134
00:09:04,030 --> 00:09:11,860
‫Basta renderlo un po' più largo, anche un po' più lungo, e assicurati che tutto questo sia completamente

135
00:09:11,860 --> 00:09:12,520
‫compreso.

136
00:09:13,180 --> 00:09:17,920
‫E puoi vedere che il verde è apparso mentre viene calcolato, la navigazione si è

137
00:09:17,920 --> 00:09:25,210
‫incontrata e assicuriamoci solo che il messaggio di navigazione stia scendendo abbastanza in basso da coprire le estensioni più basse della nostra mappa sembra

138
00:09:25,210 --> 00:09:25,930
‫coprirla ora.

139
00:09:26,260 --> 00:09:33,730
‫Quindi, se andiamo avanti e possiamo nasconderci e navigare in mesh ora che abbiamo impostato tutto e possiamo fare un alt p

140
00:09:33,730 --> 00:09:40,240
‫per andare avanti e giocare e lui può trovarci e seguirci praticamente ovunque andiamo all'interno di questo livello.

141
00:09:40,780 --> 00:09:47,680
‫Puoi vedere che confidavo che un servitore ci stesse seguendo ovunque scegliamo di andare.

142
00:09:47,890 --> 00:09:50,890
‫Ci sta solo pedinando e seguendoci, il che è molto fastidioso.

143
00:09:51,100 --> 00:09:53,560
‫Ma è in grado di farlo.

144
00:09:54,590 --> 00:09:55,130
‫Roba impressionante.

145
00:09:55,130 --> 00:10:02,330
‫Quindi in questa lezione abbiamo visto come possiamo creare e avere mesh e come possiamo usarle per convincere il nostro

146
00:10:02,330 --> 00:10:05,180
‫alleato a seguirci per tutto il livello.

147
00:10:06,520 --> 00:10:12,880
‫Quindi torneremo indietro su questo sistema di correzione del bug e controllo della linea di vista in modo

148
00:10:12,880 --> 00:10:16,150
‫da non inseguire necessariamente sempre il giocatore in giro.

149
00:10:16,360 --> 00:10:16,870
‫Guarda quello?

150
00:10:18,360 --> 00:10:22,770
‫E ho appena notato un piccolo errore sciocco che ho commesso qui, ovvero che non sto

151
00:10:22,800 --> 00:10:25,440
‫chiamando per tagliare il codice in modo super tecnologico.

152
00:10:25,650 --> 00:10:31,000
‫Quindi questo è in realtà il motivo per cui a volte ricevi questi strani bug inspiegabili.

153
00:10:31,260 --> 00:10:36,210
‫Se non stai chiamando il super e le cose non funzionano sempre come previsto, ecco perché il

154
00:10:36,480 --> 00:10:41,970
‫focus ha smesso di funzionare, perché essenzialmente avevamo disabilitato la tecnologia su un controller alto, il che non va bene.

155
00:10:42,360 --> 00:10:47,250
‫Se sei abilitato, tutto dovrebbe funzionare normalmente con lo stato attivo delle impostazioni.

