﻿1
00:00:04,340 --> 00:00:05,160
‫Hallo en welkom.

2
00:00:05,180 --> 00:00:11,600
‫In deze lezing introduceren we twee nieuwe soorten activa, de gedragsboom en het schoolbord, twee activa

3
00:00:11,600 --> 00:00:16,610
‫die ons in staat stellen iets heel interessants met lucht te doen.

4
00:00:16,610 --> 00:00:18,680
‫Sta ons toe om het veel ingewikkelder te maken.

5
00:00:18,860 --> 00:00:23,330
‫Ik laat ons er heel gemakkelijk in duiken en kijken hoe we ze gebruiken en instellen.

6
00:00:25,080 --> 00:00:25,380
‫Oké.

7
00:00:25,380 --> 00:00:28,830
‫Dus we willen een aantal geavanceerde A. L. gedrag.

8
00:00:29,070 --> 00:00:33,930
‫De manier waarop we dit doorgaans doen in Unreal, is het gebruik van een systeem dat gedragsbomen wordt genoemd.

9
00:00:33,960 --> 00:00:34,890
‫Wat zijn dit nu?

10
00:00:35,100 --> 00:00:38,850
‫Nou, de beste manier voor ons om erachter te komen, is door er een te maken.

11
00:00:39,090 --> 00:00:41,910
‫Dus laten we doorgaan en rechts klikken en gaan.

12
00:00:41,940 --> 00:00:44,940
‫We kijken hier onder de kunstmatige intelligentie.

13
00:00:45,270 --> 00:00:48,300
‫En er zijn twee opties hier gedrag, boom en schoolbord.

14
00:00:48,540 --> 00:00:50,730
‫We gaan ze allebei willen.

15
00:00:51,180 --> 00:00:54,360
‫Dus laten we beginnen met de gedragsboom.

16
00:00:54,780 --> 00:00:59,520
‫Het voorvoegsel hiervan is B. T. en we gaan dit de vijand noemen.

17
00:00:59,670 --> 00:01:01,060
‫Dus gedrag boom vijand.

18
00:01:01,530 --> 00:01:03,710
‫Ik sluit daar gewoon mee af.

19
00:01:03,740 --> 00:01:04,170
‫Zij gaan.

20
00:01:04,620 --> 00:01:09,120
‫En we moeten ook het andere ding daarbinnen maken, dat een schoolbord was.

21
00:01:09,150 --> 00:01:11,190
‫Wat is in hemelsnaam een schoolbord?

22
00:01:11,220 --> 00:01:12,270
‫Daar komen we zo op.

23
00:01:12,270 --> 00:01:18,510
‫Maar we noemen het gewoon de bb onderstreping vijand is a, b, b voor schoolbord, b, t voor

24
00:01:18,510 --> 00:01:18,930
‫gedragsboom.

25
00:01:19,230 --> 00:01:22,140
‫En nu we toch bezig zijn, we hebben een paar dingen met betrekking tot A. L..

26
00:01:22,170 --> 00:01:29,040
‫Hé, ik ga een nieuwe map maken met de naam A. L. , en we gaan het bord, de gedragsboom,

27
00:01:29,040 --> 00:01:29,400
‫verplaatsen.

28
00:01:29,820 --> 00:01:33,830
‫En ergens hier hebben we onze schutter, A. L. controleur.

29
00:01:33,840 --> 00:01:39,540
‫Dat gaat allemaal in A. L. ga hierheen en dan kunnen we naar die A gaan. L. mappen, behandel alles wat met AI

30
00:01:39,690 --> 00:01:40,320
‫te maken heeft.

31
00:01:41,070 --> 00:01:45,180
‫Laten we eerst onze gedragsboom openen en deze koppelen aan het hoofdvenster.

32
00:01:45,750 --> 00:01:47,530
‫Dus wat is dit in hemelsnaam?

33
00:01:47,550 --> 00:01:52,830
‫Dit stelt ons dus in staat om gedragsstructuren te creëren waarvan je zou kunnen zeggen dat een deel van het gedrag hier

34
00:01:52,830 --> 00:01:53,820
‫voor het najagen is.

35
00:01:53,820 --> 00:01:55,080
‫Een deel ervan is om te trollen.

36
00:01:55,440 --> 00:01:59,970
‫Een deel ervan is voor iets anders, het openen van deuren, al dit soort dingen.

37
00:02:00,270 --> 00:02:06,330
‫Ze structureren gedrag meestal als heel veel gedragsbomen en subbomen enzovoort.

38
00:02:06,570 --> 00:02:13,980
‫We zullen zien dat dit allemaal in detail gebeurt, maar het volstaat te zeggen dat het een geweldige manier is om natuurlijk gedrag in

39
00:02:13,980 --> 00:02:15,540
‫je games samen te brengen.

40
00:02:16,140 --> 00:02:17,580
‫Nu is het niet alles.

41
00:02:17,580 --> 00:02:19,380
‫Er zijn veel A. L. technieken.

42
00:02:19,380 --> 00:02:23,760
‫Dit is misschien niet degene die je wilt gebruiken voor je spel, maar het is een goed begin

43
00:02:23,760 --> 00:02:25,800
‫en je kunt er behoorlijk veel mee bereiken.

44
00:02:26,580 --> 00:02:31,020
‫Het volgende dat we bovenaan kunnen zien, rechts, deze twee activa zijn gekoppeld aan

45
00:02:31,020 --> 00:02:32,790
‫de gedragsboom en het schoolbord.

46
00:02:33,090 --> 00:02:34,770
‫Wat is in hemelsnaam een schoolbord?

47
00:02:35,190 --> 00:02:41,430
‫Nou, het schoolbord is een beetje als de herinnering aan je A. L. Het is in wezen waar u een aantal

48
00:02:41,430 --> 00:02:42,180
‫variabelen opslaat.

49
00:02:42,180 --> 00:02:46,290
‫Je voert ze in vanuit de gameplay, net zoals we deden met

50
00:02:46,290 --> 00:02:50,970
‫het animatiesysteem, waar je deze verschillende eigenschappen hebt die door de gameplay worden ingesteld.

51
00:02:51,180 --> 00:02:57,180
‫We doen hetzelfde met de A. L. we stellen veel eigenschappen in die het

52
00:02:57,180 --> 00:03:03,120
‫informatie geven over zijn spelwereld, en dan maakt de gedragsboom gebruik van die eigenschappen en gebruikt ze om te beslissen wat het gaat

53
00:03:03,120 --> 00:03:03,510
‫doen.

54
00:03:03,510 --> 00:03:04,890
‫Het kan die eigenschappen instellen.

55
00:03:04,890 --> 00:03:10,350
‫Het kan ze gebruiken als geheugen, het kan lezen van die eigenschappen en al die mooie dingen.

56
00:03:10,770 --> 00:03:16,980
‫Dus met dat in gedachten, hoe kunnen we onze gedragsboom in Blackboard zo opzetten dat ze aan elkaar worden

57
00:03:16,980 --> 00:03:17,550
‫gekoppeld?

58
00:03:18,120 --> 00:03:20,430
‫Welnu, we gaan dat uitbreiden in ons detailvenster.

59
00:03:20,430 --> 00:03:25,980
‫Je kunt hier zien dat er deze blackboard asset is en automatisch lijkt deze voor

60
00:03:25,980 --> 00:03:32,580
‫ons zo ingevuld te hebben dat de blackboard asset is gekoppeld aan deze b b b vijand, I blackboard asset.

61
00:03:33,090 --> 00:03:38,280
‫Nu gaan we allemaal een klein beetje van C++ af om deze middelen te

62
00:03:38,280 --> 00:03:42,360
‫gebruiken, omdat gedragsbomen en schoolborden duidelijk volledig binnen de editor vallen.

63
00:03:42,360 --> 00:03:44,430
‫Het zijn geen blauwdrukken als zodanig.

64
00:03:44,430 --> 00:03:49,920
‫Het zijn hun eigen editortools en we kunnen ermee communiceren in C++, maar dat betekent niet dat we de

65
00:03:49,920 --> 00:03:53,460
‫editor de komende paar colleges net zo goed gaan gebruiken als C++.

66
00:03:53,640 --> 00:03:54,810
‫Niet zo veel blauwdruk daar.

67
00:03:55,050 --> 00:04:00,750
‫Dus het is geweldig dat we deze gedragsboom en dit schoolbord hebben, maar hoe gebruiken we

68
00:04:00,750 --> 00:04:02,150
‫het in vredesnaam?

69
00:04:02,400 --> 00:04:05,500
‫Welnu, daarvoor gaan we terug naar onze luchtverkeersleider.

70
00:04:05,500 --> 00:04:14,370
‫Ik, als je het je herinnert, I-controller is volledig verantwoordelijk voor het uitvoeren van ons gedrag en dat is hier geen uitzondering.

71
00:04:14,850 --> 00:04:18,870
‫De gedragsboom is gewoon een ander ding dat de luchtcontroller kan gebruiken of uitvoeren.

72
00:04:19,410 --> 00:04:24,750
‫Dus de manier waarop we dit gaan doen, is dat we naar onze controlepunt gaan en we moeten een

73
00:04:24,750 --> 00:04:29,790
‫manier hebben om in de blauwdruk te verwijzen naar welke gedragsboom we willen dat deze wordt uitgevoerd.

74
00:04:30,720 --> 00:04:34,860
‫Dus het eerste wat ik ga doen, is dat ik naar onze controle

75
00:04:34,860 --> 00:04:40,920
‫van CP ga en de dingen in TTIC becommentarieer, omdat we deze functionaliteit in plaats daarvan gaan vervangen door

76
00:04:40,920 --> 00:04:41,400
‫gedragsboomfunctionaliteit.

77
00:04:41,880 --> 00:04:46,170
‫En dan betekent dat dat ik deze acceptatieradius hier weg kan halen omdat we die niet meer nodig hebben.

78
00:04:46,500 --> 00:04:50,910
‫En in plaats daarvan gaan we een verwijzing naar het nieuwe gedrag gebruiken.

79
00:04:51,780 --> 00:04:56,100
‫En ik moet deze Amerikaanse manierboom en aanwijzer spellen.

80
00:04:56,550 --> 00:04:58,980
‫Dat is de gedragsboom die je daar wilt hebben.

81
00:04:59,070 --> 00:05:02,310
‫En ik moet dit doorsturen met een klasse ervoor.

82
00:05:02,310 --> 00:05:08,640
‫En dan eigenlijk hier, wat ik wil zeggen is dat dit het gedrag is en.

83
00:05:09,740 --> 00:05:13,160
‫Ik ga de Amerikaanse spelling hier houden alleen voor consistentie.

84
00:05:13,430 --> 00:05:17,570
‫Dus dit is het gedrag dat we hier nu willen om het gedrag daadwerkelijk uit te voeren.

85
00:05:17,570 --> 00:05:18,500
‫Het kan niet eenvoudiger.

86
00:05:18,500 --> 00:05:22,670
‫Nogmaals, de A. L. besturing heeft de H hier een ingebouwde functie voor.

87
00:05:22,670 --> 00:05:26,360
‫We hebben deze run-gedragsboomfunctie die een boolean wordt.

88
00:05:26,360 --> 00:05:30,440
‫Of je het nu met succes kunt uitvoeren of niet, begin met het uitvoeren ervan.

89
00:05:30,770 --> 00:05:35,720
‫En het neemt het bèta-item in, wat een verwijzing is naar de jij-gedragsboom.

90
00:05:36,350 --> 00:05:39,980
‫Dus dat is wat we willen gebruiken en we kunnen dit opnieuw doen in het begin van het spel.

91
00:05:39,980 --> 00:05:44,240
‫Dus wat we gaan doen, is allereerst controleren of we hier inderdaad een gedragsboom

92
00:05:44,270 --> 00:05:44,600
‫hebben.

93
00:05:44,600 --> 00:05:46,970
‫Dus we gaan zeggen dat ik gedrag.

94
00:05:48,210 --> 00:05:50,940
‫Is niet gelijk aan nul punten, hè?

95
00:05:51,030 --> 00:05:53,600
‫Omdat we het niet anders willen gebruiken.

96
00:05:53,610 --> 00:05:58,920
‫En wat we dan kunnen doen, is de gedragsboom uitvoeren die luchtgedrag wordt genoemd.

97
00:05:59,190 --> 00:06:06,150
‫Het is echt zo eenvoudig om elk gedrag aan de gang te krijgen en we kunnen doorgaan en compileren.

98
00:06:07,480 --> 00:06:12,730
‫En nog iets dat we met de zware bomen kunnen doen, is dat we ze een beetje kunnen zien draaien tijdens runtime, maar om

99
00:06:12,730 --> 00:06:14,950
‫dat te doen, moet je hier een soort knooppunt hebben.

100
00:06:15,280 --> 00:06:18,850
‫Dus we gaan gewoon een knooppunt toevoegen zonder volledig te begrijpen wat het doet.

101
00:06:18,880 --> 00:06:23,800
‫Ik ga een sequentieknooppunt toevoegen, en ik ga het aansluiten door vanaf het wortelknooppunt naar beneden te slepen, de

102
00:06:23,800 --> 00:06:28,720
‫onderkant van het wortelknooppunt, de markeringen wanneer ik er met de muis overheen ga naar het bit boven het

103
00:06:28,720 --> 00:06:29,050
‫sequentieknooppunt.

104
00:06:29,560 --> 00:06:30,610
‫En dat ga ik redden.

105
00:06:31,210 --> 00:06:39,580
‫Ik ga erheen en druk op play en ga naar mijn gedragsboom-item en je zou hier een drop-down moeten kunnen zien,

106
00:06:39,640 --> 00:06:43,390
‫maar zou niet omdat het momenteel niet actief is.

107
00:06:43,390 --> 00:06:44,320
‫Dus laten we stoppen met spelen.

108
00:06:45,100 --> 00:06:46,600
‫En waarom loopt het niet?

109
00:06:46,600 --> 00:06:51,370
‫Omdat we het niet hebben aangesloten en als shooter-luchtcontroller dus laten we dat doen, kan het een uitdaging voor je zijn

110
00:06:51,370 --> 00:06:52,540
‫om dat aan te sluiten.

111
00:06:53,050 --> 00:06:54,370
‫Hopelijk moet het niet te moeilijk zijn.

112
00:06:55,000 --> 00:06:55,270
‫Oké.

113
00:06:55,270 --> 00:06:56,080
‫Welkom terug.

114
00:06:56,110 --> 00:07:01,060
‫Dus als we hier gaan kijken, zoeken we naar gedrag.

115
00:07:01,510 --> 00:07:04,240
‫Om de een of andere reden moest ik opnieuw worden gecompileerd om voor mij te verschijnen.

116
00:07:04,240 --> 00:07:04,840
‫Maar hier is het.

117
00:07:05,180 --> 00:07:06,430
‫Gedrag is wat we willen.

118
00:07:06,880 --> 00:07:07,720
‫We klikken op de vervolgkeuzelijst.

119
00:07:07,720 --> 00:07:10,570
‫Er is momenteel maar één optie, dus we hebben maar één gedragsboom.

120
00:07:10,570 --> 00:07:14,140
‫Dus selecteer die en compileer en sla op.

121
00:07:14,140 --> 00:07:17,140
‫En als we nu doorgaan en het spel spelen.

122
00:07:18,040 --> 00:07:21,210
‫En ga eens kijken bij Beattie Enemy II.

123
00:07:21,220 --> 00:07:26,380
‫Je kunt zien dat het de notitie markeert die momenteel wordt uitgevoerd en je

124
00:07:26,380 --> 00:07:32,380
‫hebt deze kleine vervolgkeuzelijst naast de pauze-stopknoppen, die je vertelt welke luchtcontroller je momenteel het gedragsspoor

125
00:07:32,380 --> 00:07:33,070
‫observeert.

126
00:07:33,100 --> 00:07:38,950
‫Dus dit is een geweldige functionaliteit voor jou om erin te kunnen springen en te gaan, oké, waarom staat die lucht

127
00:07:38,950 --> 00:07:39,700
‫gewoon stil?

128
00:07:39,730 --> 00:07:41,140
‫Waarom achtervolgt hij de speler niet?

129
00:07:41,350 --> 00:07:46,180
‫Je kunt zien welke delen van het gedrag hij momenteel uitvoert en gaan, Oh, dat zie je, dat ding is

130
00:07:46,180 --> 00:07:46,870
‫fout gegaan.

131
00:07:47,170 --> 00:07:48,830
‫Het is erg handig om te debuggen.

132
00:07:48,850 --> 00:07:53,620
‫Je kunt gaan kijken wat al je lucht in de wereld van plan is door deze vervolgkeuzelijst te gebruiken.

133
00:07:54,070 --> 00:07:54,490
‫Goed spul.

134
00:07:54,490 --> 00:07:55,510
‫Dat is alles voor deze lezing.

135
00:07:55,510 --> 00:08:01,720
‫In de volgende lezing gaan we kijken hoe we vanuit C++ informatie in het schoolbordgeheugen

136
00:08:01,990 --> 00:08:04,540
‫van onze AI kunnen zetten.

137
00:08:04,570 --> 00:08:05,320
‫Ik zie je daar.

