﻿1
00:00:04,340 --> 00:00:05,160
‫Ciao e Benvenuto.

2
00:00:05,180 --> 00:00:11,600
‫In questa lezione introdurremo due nuovi tipi di risorse, l'albero del comportamento e la lavagna, che sono

3
00:00:11,600 --> 00:00:16,610
‫due risorse che ci consentono di fare una cosa molto interessante con l'aria.

4
00:00:16,610 --> 00:00:18,680
‫Permettici di rendere molto più complicato.

5
00:00:18,860 --> 00:00:23,330
‫Mi tuffiamo molto facilmente e vediamo come li usiamo e li configuriamo.

6
00:00:25,080 --> 00:00:25,380
‫Bene.

7
00:00:25,380 --> 00:00:28,830
‫Quindi vogliamo creare delle sofisticate A. IO. comportamento.

8
00:00:29,070 --> 00:00:33,930
‫Ora, il modo in cui di solito lo facciamo in Unreal è usare un sistema chiamato alberi del comportamento.

9
00:00:33,960 --> 00:00:34,890
‫Ora, cosa sono questi?

10
00:00:35,100 --> 00:00:38,850
‫Bene, il modo migliore per scoprirlo è crearne uno.

11
00:00:39,090 --> 00:00:41,910
‫Quindi andiamo avanti e clicchiamo con il tasto destro e via.

12
00:00:41,940 --> 00:00:44,940
‫Stiamo guardando qui sotto l'intelligenza artificiale.

13
00:00:45,270 --> 00:00:48,300
‫E ci sono due opzioni qui comportamento, albero e lavagna.

14
00:00:48,540 --> 00:00:50,730
‫Vorremo entrambe queste cose.

15
00:00:51,180 --> 00:00:54,360
‫Quindi andiamo e iniziamo con l'albero del comportamento.

16
00:00:54,780 --> 00:00:59,520
‫Il prefisso di questo è B. T. e lo chiameremo nemico.

17
00:00:59,670 --> 00:01:01,060
‫Quindi albero del comportamento nemico.

18
00:01:01,530 --> 00:01:03,710
‫Ho appena finito con quello.

19
00:01:03,740 --> 00:01:04,170
‫Vanno.

20
00:01:04,620 --> 00:01:09,120
‫E dobbiamo anche creare l'altra cosa lì dentro, che era una lavagna.

21
00:01:09,150 --> 00:01:11,190
‫Ora, cosa diavolo è una lavagna?

22
00:01:11,220 --> 00:01:12,270
‫Ci arriveremo in un secondo.

23
00:01:12,270 --> 00:01:18,510
‫Ma lo chiameremo semplicemente b b underscore nemico è a, b, b per lavagna, b, t per albero del

24
00:01:18,510 --> 00:01:18,930
‫comportamento.

25
00:01:19,230 --> 00:01:22,140
‫E già che ci siamo, abbiamo alcune cose relative ad A. IO..

26
00:01:22,170 --> 00:01:29,040
‫Ehi, creerò una nuova cartella chiamata A. IO. , e sposteremo la lavagna, l'albero del

27
00:01:29,040 --> 00:01:29,400
‫comportamento.

28
00:01:29,820 --> 00:01:33,830
‫E da qualche parte qui abbiamo il nostro tiratore, A. IO. controllore.

29
00:01:33,840 --> 00:01:39,540
‫Tutto questo va in A. IO. spostati qui e poi possiamo entrare in quella A. IO. cartelle, gestisci tutto ciò che

30
00:01:39,690 --> 00:01:40,320
‫riguarda l'IA.

31
00:01:41,070 --> 00:01:45,180
‫Apriamo prima di tutto il nostro albero del comportamento e lo colleghiamo alla finestra principale.

32
00:01:45,750 --> 00:01:47,530
‫Allora che diavolo è questo?

33
00:01:47,550 --> 00:01:52,830
‫Quindi questo ci consente di creare alberi di comportamenti in cui potresti dire che abbiamo parte del comportamento

34
00:01:52,830 --> 00:01:53,820
‫qui per inseguire.

35
00:01:53,820 --> 00:01:55,080
‫Parte di esso è per la traina.

36
00:01:55,440 --> 00:01:59,970
‫In parte è per qualcos'altro, aprire porte, tutto questo genere di cose.

37
00:02:00,270 --> 00:02:06,330
‫In genere strutturano i comportamenti come moltissimi alberi di comportamenti e sottoalberi e così via.

38
00:02:06,570 --> 00:02:13,980
‫Vedremo che tutto andrà avanti in dettaglio, ma basti dire che è un ottimo modo per mettere insieme comportamenti

39
00:02:13,980 --> 00:02:15,540
‫naturali nei tuoi giochi.

40
00:02:16,140 --> 00:02:17,580
‫Ora non è l'essere tutto e finire tutto.

41
00:02:17,580 --> 00:02:19,380
‫C'è un sacco di A. IO. tecniche.

42
00:02:19,380 --> 00:02:23,760
‫Questo potrebbe non essere quello con cui vuoi andare per il tuo gioco, ma è un ottimo

43
00:02:23,760 --> 00:02:25,800
‫inizio e puoi ottenere molto con esso.

44
00:02:26,580 --> 00:02:31,020
‫Ora la prossima cosa che possiamo vedere in alto a destra, queste due risorse sono collegate

45
00:02:31,020 --> 00:02:32,790
‫all'albero del comportamento e alla lavagna.

46
00:02:33,090 --> 00:02:34,770
‫Cos'è una lavagna?

47
00:02:35,190 --> 00:02:41,430
‫Beh, la lavagna è un po' come il ricordo del tuo A. IO. È essenzialmente dove memorizzi un sacco

48
00:02:41,430 --> 00:02:42,180
‫di variabili.

49
00:02:42,180 --> 00:02:46,290
‫Li hai inseriti dal gameplay in modo molto simile a quello che stavamo

50
00:02:46,290 --> 00:02:50,970
‫facendo con il sistema di animazione, dove hai queste diverse proprietà che vengono impostate dal gameplay.

51
00:02:51,180 --> 00:02:57,180
‫Facciamo la stessa cosa con l'A. IO. impostiamo molte proprietà che gli forniscono

52
00:02:57,180 --> 00:03:03,120
‫informazioni sul suo mondo di gioco, quindi l'albero del comportamento attinge a quelle proprietà e le usa per decidere cosa

53
00:03:03,120 --> 00:03:03,510
‫farà.

54
00:03:03,510 --> 00:03:04,890
‫Può impostare quelle proprietà.

55
00:03:04,890 --> 00:03:10,350
‫Può usarli come memoria, può leggere da quelle proprietà e tutte quelle cose adorabili.

56
00:03:10,770 --> 00:03:16,980
‫Quindi, con questo in mente, come possiamo impostare il nostro albero del comportamento nella lavagna in modo che siano collegati tra

57
00:03:16,980 --> 00:03:17,550
‫loro?

58
00:03:18,120 --> 00:03:20,430
‫Bene, lo espanderemo nel nostro riquadro dei dettagli.

59
00:03:20,430 --> 00:03:25,980
‫Puoi vedere qui che c'è questa risorsa lavagna e automaticamente sembra averlo compilato per noi

60
00:03:25,980 --> 00:03:32,580
‫in modo tale che la risorsa lavagna sia collegata a questo b b b nemico, io risorsa lavagna.

61
00:03:33,090 --> 00:03:38,280
‫Ora ci allontaneremo tutti dal C++ per usare un po' queste risorse perché ovviamente

62
00:03:38,280 --> 00:03:42,360
‫gli alberi del comportamento e le lavagne sono interamente all'interno dell'editor.

63
00:03:42,360 --> 00:03:44,430
‫Non sono progetti in quanto tali.

64
00:03:44,430 --> 00:03:49,920
‫Sono i loro strumenti editor e possiamo interfacciarci con loro in C++, ma ciò non significa che

65
00:03:49,920 --> 00:03:53,460
‫useremo l'editor per le prossime due lezioni oltre a C++.

66
00:03:53,640 --> 00:03:54,810
‫Non tanto progetto lì.

67
00:03:55,050 --> 00:04:00,750
‫Quindi è fantastico che ci siamo procurati questo albero del comportamento e questa lavagna, ma come diavolo

68
00:04:00,750 --> 00:04:02,150
‫lo usiamo effettivamente?

69
00:04:02,400 --> 00:04:05,500
‫Bene, per questo, torniamo al nostro controllore aereo.

70
00:04:05,500 --> 00:04:14,370
‫Se ricordi, il controllore è interamente responsabile dell'esecuzione dei nostri comportamenti e questo non fa eccezione qui.

71
00:04:14,850 --> 00:04:18,870
‫L'albero del comportamento è solo un'altra cosa che il controller aereo può utilizzare o eseguire.

72
00:04:19,410 --> 00:04:24,750
‫Quindi il modo in cui lo faremo è andare al nostro punto di controllo e dobbiamo avere

73
00:04:24,750 --> 00:04:29,790
‫un modo per fare riferimento nel progetto a quale albero del comportamento vogliamo che esegua.

74
00:04:30,720 --> 00:04:34,860
‫Quindi la prima cosa che farò è effettivamente passare al nostro controllo

75
00:04:34,860 --> 00:04:40,920
‫di CP e commentare le cose in TTIC perché sostituiremo invece questa funzionalità con la funzionalità dell'albero del

76
00:04:40,920 --> 00:04:41,400
‫comportamento.

77
00:04:41,880 --> 00:04:46,170
‫E poi questo significa che posso rimuovere questo raggio di accettazione qui perché non ne abbiamo più bisogno.

78
00:04:46,500 --> 00:04:50,910
‫E invece useremo un puntatore al nuovo comportamento.

79
00:04:51,780 --> 00:04:56,100
‫E devo scrivere questo albero e puntatore della via americana.

80
00:04:56,550 --> 00:04:58,980
‫Questo è l'albero del comportamento che vuoi lì.

81
00:04:59,070 --> 00:05:02,310
‫E ho bisogno di inoltrarlo dichiarandolo con una classe davanti.

82
00:05:02,310 --> 00:05:08,640
‫E poi fondamentalmente qui, quello che voglio dire è che questo è il comportamento e.

83
00:05:09,740 --> 00:05:13,160
‫Manterrò qui l'ortografia americana solo per coerenza.

84
00:05:13,430 --> 00:05:17,570
‫Quindi questo è il comportamento che vogliamo qui ora per eseguire effettivamente il comportamento.

85
00:05:17,570 --> 00:05:18,500
‫Non potrebbe essere più semplice.

86
00:05:18,500 --> 00:05:22,670
‫Ancora una volta, l'A. IO. controlla la H ha una funzione incorporata per questo.

87
00:05:22,670 --> 00:05:26,360
‫Abbiamo questa funzione dell'albero del comportamento di esecuzione che diventa booleana.

88
00:05:26,360 --> 00:05:30,440
‫Indipendentemente dal fatto che tu sia in grado di eseguirlo correttamente o meno, inizia a eseguirlo, cioè.

89
00:05:30,770 --> 00:05:35,720
‫E accoglie l'asset beta, che è un puntatore all'albero del comportamento di te.

90
00:05:36,350 --> 00:05:39,980
‫Quindi è quello che vorremo usare e possiamo farlo da capo all'inizio del gioco.

91
00:05:39,980 --> 00:05:44,240
‫Quindi quello che faremo è, prima di tutto, controllare di avere davvero un albero del comportamento

92
00:05:44,270 --> 00:05:44,600
‫qui.

93
00:05:44,600 --> 00:05:46,970
‫Quindi diremo che io mi comporto.

94
00:05:48,210 --> 00:05:50,940
‫Non è uguale a zero punti, eh?

95
00:05:51,030 --> 00:05:53,600
‫Perché non vogliamo usarlo diversamente.

96
00:05:53,610 --> 00:05:58,920
‫E poi quello che possiamo fare è eseguire l'albero del comportamento chiamato comportamento dell'aria.

97
00:05:59,190 --> 00:06:06,150
‫È davvero così semplice far funzionare qualsiasi comportamento e possiamo andare avanti e compilare.

98
00:06:07,480 --> 00:06:12,730
‫E un'altra cosa che possiamo fare con gli alberi pesanti è che possiamo vederli in esecuzione in fase di esecuzione, ma per

99
00:06:12,730 --> 00:06:14,950
‫farlo, devi avere una sorta di nodo qui.

100
00:06:15,280 --> 00:06:18,850
‫Quindi aggiungeremo semplicemente un nodo senza comprendere appieno cosa fa.

101
00:06:18,880 --> 00:06:23,800
‫Aggiungerò un nodo di sequenza e lo collegherò trascinando verso il basso dal nodo radice, sotto il nodo

102
00:06:23,800 --> 00:06:28,720
‫radice, i punti salienti quando lo passo con il mouse fino al bit sopra il nodo della

103
00:06:28,720 --> 00:06:29,050
‫sequenza.

104
00:06:29,560 --> 00:06:30,610
‫E lo salverò.

105
00:06:31,210 --> 00:06:39,580
‫Vado su e premi play e andrò nella mia risorsa albero del comportamento e dovresti essere in grado di vedere un menu a discesa qui,

106
00:06:39,640 --> 00:06:43,390
‫ma non lo farei perché al momento non è in esecuzione.

107
00:06:43,390 --> 00:06:44,320
‫Quindi smettiamo di giocare.

108
00:06:45,100 --> 00:06:46,600
‫E perché non funziona?

109
00:06:46,600 --> 00:06:51,370
‫Perché non l'abbiamo collegato e come controller dell'aria sparatutto, quindi facciamo che potrebbe essere una sfida

110
00:06:51,370 --> 00:06:52,540
‫per te collegarlo.

111
00:06:53,050 --> 00:06:54,370
‫Speriamo che non dovrebbe essere troppo difficile.

112
00:06:55,000 --> 00:06:55,270
‫Bene.

113
00:06:55,270 --> 00:06:56,080
‫Ben tornato.

114
00:06:56,110 --> 00:07:01,060
‫Quindi, se andiamo a dare un'occhiata qui, stiamo cercando un comportamento.

115
00:07:01,510 --> 00:07:04,240
‫Qualche ragione per cui mi è stata richiesta una ricompilazione per presentarmi.

116
00:07:04,240 --> 00:07:04,840
‫Ma eccolo qui.

117
00:07:05,180 --> 00:07:06,430
‫Il comportamento è ciò che vogliamo.

118
00:07:06,880 --> 00:07:07,720
‫Facciamo clic sul menu a discesa.

119
00:07:07,720 --> 00:07:10,570
‫C'è solo un'opzione al momento, quindi abbiamo solo un albero del comportamento.

120
00:07:10,570 --> 00:07:14,140
‫Quindi seleziona quello e compila e salva.

121
00:07:14,140 --> 00:07:17,140
‫E se ora andiamo avanti e giochiamo.

122
00:07:18,040 --> 00:07:21,210
‫E dai un'occhiata a Beattie Enemy II.

123
00:07:21,220 --> 00:07:26,380
‫Puoi vedere che sta evidenziando la nota attualmente in esecuzione e hai questo piccolo menu a

124
00:07:26,380 --> 00:07:32,380
‫discesa accanto ai pulsanti di arresto della pausa, che ti dice quale controller aereo stai attualmente osservando il percorso

125
00:07:32,380 --> 00:07:33,070
‫del comportamento.

126
00:07:33,100 --> 00:07:38,950
‫Quindi questa è un'ottima funzionalità per poter saltare dentro e andare, ok, perché quell'aria è

127
00:07:38,950 --> 00:07:39,700
‫ferma?

128
00:07:39,730 --> 00:07:41,140
‫Perché non sta inseguendo il giocatore?

129
00:07:41,350 --> 00:07:46,180
‫Puoi vedere quali parti del comportamento sta attualmente eseguendo e dire, Oh, vedi, sai, quella cosa è

130
00:07:46,180 --> 00:07:46,870
‫andata storta.

131
00:07:47,170 --> 00:07:48,830
‫È davvero utile per il debug.

132
00:07:48,850 --> 00:07:53,620
‫Puoi andare a dare un'occhiata a cosa sta combinando tutta la tua aria nel mondo usando questo menu a discesa.

133
00:07:54,070 --> 00:07:54,490
‫Roba fantastica.

134
00:07:54,490 --> 00:07:55,510
‫Questo è tutto per questa lezione.

135
00:07:55,510 --> 00:08:01,720
‫Nella prossima lezione, esamineremo come impostare le informazioni nella memoria della lavagna della

136
00:08:01,990 --> 00:08:04,540
‫nostra IA da C++.

137
00:08:04,570 --> 00:08:05,320
‫Ci vediamo lì.

