﻿1
00:00:04,320 --> 00:00:05,010
‫Hallo en welkom.

2
00:00:05,010 --> 00:00:11,250
‫In deze lezing krijgen we lucht om ons te volgen en over de wereld te navigeren, obstakels te

3
00:00:11,250 --> 00:00:14,850
‫vermijden en over het algemeen een beetje vervelend te zijn.

4
00:00:15,090 --> 00:00:17,280
‫Laten we erin duiken en kijken hoe dit mogelijk is.

5
00:00:18,390 --> 00:00:24,990
‫Dus het volgende meest voor de hand liggende, voor de hand liggende stukje van de puzzel dat we hier moeten oplossen, is ervoor zorgen

6
00:00:25,420 --> 00:00:27,400
‫dat ons leger naar ons toe komt.

7
00:00:27,420 --> 00:00:28,950
‫Het is niet goed dat ze daar blijven staan.

8
00:00:29,190 --> 00:00:31,710
‫Ze moeten ook bewegen en dan moeten ze schieten.

9
00:00:31,710 --> 00:00:34,530
‫Laten we eerst eens kijken hoe we aan beweging kunnen doen.

10
00:00:35,400 --> 00:00:39,780
‫Als je met Ally gaat verhuizen, moet ik iets weten over obstakels.

11
00:00:39,780 --> 00:00:41,490
‫Het moet iets doen dat pathfinding wordt genoemd.

12
00:00:41,490 --> 00:00:45,030
‫Want laten we zeggen, ik verstop me in deze gang hier en het wil bij mij komen.

13
00:00:45,330 --> 00:00:48,470
‫Het moet weten dat het niet zomaar door de muur kan bewegen.

14
00:00:48,480 --> 00:00:53,670
‫Het zal zijn routes moeten plannen om om de obstakels heen te komen en naar mij toe te komen.

15
00:00:54,270 --> 00:01:01,200
‫De manier waarop dit typisch werkt in games in het algemeen en specifiek hier in Unreal, is dat we

16
00:01:01,200 --> 00:01:08,610
‫een mesh genereren die ons vertelt waar beloopbaar is binnen een niveau en vervolgens verschillende algoritmen gebruiken, waarvan er één

17
00:01:08,610 --> 00:01:10,230
‫een sterpadvinding wordt genoemd.

18
00:01:10,470 --> 00:01:17,940
‫Je kunt op deze mesh navigeren en een routeplan maken, en de bondgenoot gebruikt dit routeplan om verder te gaan.

19
00:01:18,360 --> 00:01:20,310
‫Dus dat is het soort schets van het proces.

20
00:01:20,310 --> 00:01:22,220
‫Gelukkig wordt er veel voor ons gedaan.

21
00:01:22,230 --> 00:01:23,790
‫We hoeven dit niet helemaal opnieuw te coderen.

22
00:01:24,180 --> 00:01:29,850
‫Dus wat we moeten doen is in de eerste plaats het NAF-net kunnen zien en op dit moment kunnen we

23
00:01:29,850 --> 00:01:32,520
‫een NAF-net gedeeltelijk niet zien omdat er geen is.

24
00:01:32,970 --> 00:01:36,670
‫Dus wat we moeten doen, is hier in ons geplaatste acteursvenster kijken.

25
00:01:36,670 --> 00:01:40,020
‫Stel ook een raam voor en zoek naar geplaatste plaatsacteurs.

26
00:01:40,650 --> 00:01:47,120
‫We moeten zoeken naar een nav mesh en we zijn op zoek naar de NAF mesh grenzen van het volume.

27
00:01:47,130 --> 00:01:53,880
‫Dit creëert een volume, een soort doos, en alles in die doos wordt gecontroleerd op hoe

28
00:01:54,120 --> 00:01:55,440
‫bevaarbaar het is.

29
00:01:55,440 --> 00:02:00,480
‫Of het nu vlak is, of het niet te steil is, eigenlijk of er een muur is, je kunt niet door

30
00:02:00,480 --> 00:02:03,780
‫muren gaan, je kunt niet over muren lopen omdat ze te steil zijn.

31
00:02:04,140 --> 00:02:08,940
‫Dus als we een NAF mesh bounce-volume slepen en het hier

32
00:02:08,940 --> 00:02:15,450
‫brengen en het lichtjes door de vloer steken, zodat de vloer deel kan uitmaken van die navigatieberekening.

33
00:02:15,900 --> 00:02:20,910
‫Wat we dan moeten doen, is de zichtbaarheid van NAF-mazen mogelijk maken.

34
00:02:21,210 --> 00:02:25,830
‫Dit doe je door op de toon knop linksboven in je viewport te klikken en vervolgens op

35
00:02:25,830 --> 00:02:28,080
‫navigatie te klikken of de snelkoppeling te gebruiken.

36
00:02:28,080 --> 00:02:29,820
‫P Dus ik ga de snelkoppeling gebruiken.

37
00:02:29,820 --> 00:02:33,840
‫P En selecteren of je hoeft niet eens het bounce-volume te selecteren.

38
00:02:33,840 --> 00:02:39,180
‫Je kunt meteen zien dat het schermgaas binnen het limietvolume is verschenen, wat ons vertelt dat dit

39
00:02:39,180 --> 00:02:40,710
‫een beloopbaar gebied is.

40
00:02:40,800 --> 00:02:48,220
‫Dus als we onze vijand in dit gebied hadden en zijn doelwit was ook in het gebied, dan zou hij het

41
00:02:48,220 --> 00:02:50,340
‫pad langs dit gaas kunnen vinden.

42
00:02:50,880 --> 00:02:55,170
‫Laten we nu eens kijken wat er gebeurt als we dit verplaatsen naar een obstakel.

43
00:02:55,170 --> 00:02:59,820
‫Je kunt zien dat het gaas een beetje uitsnijdt rond dit obstakel.

44
00:03:00,210 --> 00:03:07,650
‫Dus wat we eigenlijk willen doen, is dat dit volume ons hele niveau omvat en je kunt ervoor kiezen om het niet te

45
00:03:07,650 --> 00:03:14,070
‫doen of alleen in bepaalde segmenten, maar de gemakkelijkste manier is om gewoon de grenzen van dit volume te verhogen,

46
00:03:14,070 --> 00:03:15,750
‫wat je kunt doen.

47
00:03:15,750 --> 00:03:19,140
‫Als je naar het detailvenster aan de rechterkant gaat, zijn er de penseelinstellingen.

48
00:03:19,430 --> 00:03:25,200
‫Je kunt de grootte van het penseel veranderen, zodat je kunt zien dat we het groter kunnen maken, we kunnen het

49
00:03:25,470 --> 00:03:28,740
‫breder maken en het wordt rood wanneer het opnieuw wordt berekend.

50
00:03:28,740 --> 00:03:33,240
‫Je kunt zien dat het bezig is met het bouwen van NAF-gaas en hoe groter het wordt, hoe moeilijker het zal zijn

51
00:03:33,240 --> 00:03:35,400
‫om het NAF-gaas te bouwen, hoe langer het zal duren.

52
00:03:35,760 --> 00:03:37,560
‫Maar je kunt zien dat dit werkt.

53
00:03:37,560 --> 00:03:42,690
‫Het snijdt de gangen weg, het snijdt de obstakels weg waar we niet omheen kunnen lopen.

54
00:03:43,140 --> 00:03:51,900
‫Het tweede deel van deze puzzel is het hebben van een A. L. in staat zijn root-algoritmen op deze mesh uit te voeren.

55
00:03:52,350 --> 00:03:56,730
‫Laten we nu doorgaan en de BP-shooter, luchtcontroller openen, want ik wil je iets laten zien

56
00:03:56,730 --> 00:03:57,840
‫dat hier in zit.

57
00:03:57,930 --> 00:04:02,310
‫Ik ga hier de volledige blauwdruk-editor openen en hier kijken.

58
00:04:02,310 --> 00:04:05,940
‫Er is een component genaamd de path volgende component.

59
00:04:06,450 --> 00:04:12,960
‫Dat onderdeel is verantwoordelijk voor het vinden van een RF-gaas en stelt ons vervolgens in staat om paden te creëren en

60
00:04:12,960 --> 00:04:16,200
‫deze te volgen en er automatisch langs te bewegen.

61
00:04:16,200 --> 00:04:18,810
‫We hoeven die functionaliteit dus niet in te bouwen.

62
00:04:19,170 --> 00:04:24,090
‫We hoeven alleen maar een functie te gebruiken die beschikbaar is op onze luchtcontroller.

63
00:04:24,390 --> 00:04:33,230
‫Als je gaat zoeken naar de luchtregelaar punt H en zoekt naar de verplaatsing naar functie, laten we dan naar

64
00:04:33,240 --> 00:04:35,460
‫gaan met een open haakjes.

65
00:04:35,460 --> 00:04:37,170
‫Dan zijn er hier een aantal opties.

66
00:04:37,170 --> 00:04:40,080
‫We hebben een actie op aanvraag.

67
00:04:40,530 --> 00:04:45,450
‫Er zijn hier ook enkele andere opties, maar die zouden een andere naam moeten hebben.

68
00:04:45,450 --> 00:04:52,080
‫Nu, in latere versies op het spoor, hebben we een verschuiving naar acteur en een verschuiving naar

69
00:04:52,080 --> 00:04:55,280
‫locatie, die hetzelfde onderscheid hebben als onze instellingsfocus.

70
00:04:55,290 --> 00:05:00,570
‫Je kunt de focus instellen op iets dat beweegt als een acteur, of je kunt de

71
00:05:00,570 --> 00:05:06,210
‫focus instellen op een specifieke bestemming, zoals een waypoint in je patrouilleroute, bijvoorbeeld een verplaatsing naar een locatie.

72
00:05:06,510 --> 00:05:10,650
‫Dus ik zou graag willen dat je een poging doet om te verhuizen naar als je wordt uitgedaagd.

73
00:05:10,650 --> 00:05:16,320
‫Dus zorg voor een NAF-mesh in je scène, zorg ervoor dat het zoveel van de scène beslaat als je nodig hebt om

74
00:05:16,320 --> 00:05:17,820
‫te kunnen bewegen en de.

75
00:05:18,000 --> 00:05:23,610
‫Ik volg je op alle locaties en noem die beweging dan ofwel verhuizen om te handelen of verhuizen naar locatie.

76
00:05:23,610 --> 00:05:29,130
‫U beslist welke in het beginspel de A krijgt. L. ons achtervolgen.

77
00:05:29,310 --> 00:05:30,870
‫Dus pauzeer de video en probeer het.

78
00:05:32,270 --> 00:05:32,660
‫Oké.

79
00:05:32,690 --> 00:05:33,230
‫Welkom terug.

80
00:05:33,300 --> 00:05:34,280
‫Laten we dit eens proberen.

81
00:05:34,610 --> 00:05:35,840
‫Dus eerst dingen eerst.

82
00:05:35,840 --> 00:05:44,600
‫We gaan hebben dat ik een overstap naar acteur ga gebruiken en we zullen het doel acteur moeten stellen.

83
00:05:44,600 --> 00:05:50,090
‫Dus laten we naar onze shooter, air controller, dot, CP gaan en daar beginnen met spelen.

84
00:05:50,480 --> 00:05:55,460
‫We kunnen wel naar acteur gaan en we hebben al een acteur om een pion te spelen die we hebben van

85
00:05:55,460 --> 00:05:57,520
‫de laatste lezing en laten we eens kijken.

86
00:05:57,530 --> 00:06:00,320
‫Zijn hier nog andere nuttige eigenschappen?

87
00:06:00,320 --> 00:06:01,910
‫We hebben een acceptatieradius.

88
00:06:01,910 --> 00:06:03,980
‫Op dit moment heeft het geen acceptatieradius.

89
00:06:03,980 --> 00:06:05,870
‫In principe komt het zo dichtbij als het maar kan.

90
00:06:06,230 --> 00:06:08,840
‫Ik denk dat dat misschien een beetje opdringerig is.

91
00:06:08,840 --> 00:06:14,240
‫Ik geef hem een acceptatiestraal van twee meter, dus hij zal proberen binnen twee meter van ons te

92
00:06:14,240 --> 00:06:14,540
‫komen.

93
00:06:15,170 --> 00:06:16,580
‫Dus laten we doorgaan en dat bouwen.

94
00:06:17,720 --> 00:06:21,690
‫En als dat eenmaal klaar is, ga je naar de motor en laten we eens kijken.

95
00:06:21,710 --> 00:06:28,760
‫Ik ga het bounce-volume hier niet uitbreiden om je een idee te geven waarom we het bounce-volume überhaupt

96
00:06:28,760 --> 00:06:29,650
‫nodig hebben.

97
00:06:29,660 --> 00:06:31,880
‫Dus laten we beginnen met een alt p.

98
00:06:32,810 --> 00:06:33,470
‫En hier zijn we.

99
00:06:33,470 --> 00:06:37,790
‫We bevinden ons op het navigatienetwerk en deze man is automatisch naar ons toe bewogen.

100
00:06:38,120 --> 00:06:45,320
‫Maar als ik dat NAF-net verlaat, kan hij niet meer dichter bij me komen omdat hij de route niet kan vinden.

101
00:06:45,380 --> 00:06:48,740
‫Hij kan geen manier vinden om bij mij te komen.

102
00:06:49,130 --> 00:06:55,010
‫Dus wat we gaan doen is dat we in feite, ik weet niet zeker of dat hier echt aan de

103
00:06:55,010 --> 00:07:00,890
‫hand is, want wat er waarschijnlijk gebeurt, is dat hij binnen de acceptatiestraal van mij komt en dan niet opnieuw

104
00:07:00,890 --> 00:07:01,340
‫probeert.

105
00:07:01,670 --> 00:07:09,800
‫Dus een manier om dat te controleren zou zijn om deze acceptatieradius te verwijderen en opnieuw te compileren en dan kunnen we kijken of

106
00:07:09,800 --> 00:07:12,560
‫dat is wat er aan de hand is.

107
00:07:12,590 --> 00:07:16,290
‫Dus ja, hij komt naar me toe als ik wegga.

108
00:07:16,310 --> 00:07:18,920
‫Nou, hij vergat eigenlijk dat bevel.

109
00:07:19,220 --> 00:07:25,400
‫Dus wat we willen doen is dit in tic doen, want als hij me eenmaal bereikt, geeft hij het idee op om

110
00:07:25,400 --> 00:07:26,510
‫me te achtervolgen.

111
00:07:26,840 --> 00:07:28,910
‫Dus laten we dit overnemen om over te nemen.

112
00:07:28,910 --> 00:07:31,550
‫Dit is niet de ideale manier om het te doen, maar dat is wat we gaan doen.

113
00:07:31,550 --> 00:07:37,880
‫Voor nu ga ik de handtekening van tic kopiëren van rechts van de acteur, en ik weet dat het in het openbare gedeelte

114
00:07:37,880 --> 00:07:40,550
‫komt, dus ik ga een openbaar gedeelte bovenaan maken.

115
00:07:42,740 --> 00:07:50,090
‫Kopieer de handtekening, maak er een override van alleen voor de veiligheid en implementeer het dan in de C ++ en verplaats en

116
00:07:50,180 --> 00:07:57,950
‫verplaats acteur naar binnen om aan te vinken en de acceptatieradius nog steeds van twee meter, probeer dit nu en het is duidelijk dat we

117
00:07:57,950 --> 00:08:01,310
‫klagen dat we dat niet hebben een speler -- daar.

118
00:08:01,310 --> 00:08:06,470
‫Dus laten we gaan en ervoor zorgen dat we deze regel herhalen die de eerste speler te

119
00:08:06,470 --> 00:08:08,960
‫pakken krijgt -- ook in een vinkje.

120
00:08:09,320 --> 00:08:14,990
‫En nu zouden we het goed moeten kunnen testen tot een altpiek en de wereld die het komt en ons binnen

121
00:08:15,260 --> 00:08:16,220
‫twee meter brengt.

122
00:08:16,220 --> 00:08:18,680
‫Ik ga bij hem vandaan en kijk ernaar.

123
00:08:18,680 --> 00:08:24,170
‫Hij mikt deze keer niet eens goed op mij, maar hij probeert mee te doen.

124
00:08:24,860 --> 00:08:29,480
‫Maar zodra ik dat navigatiesysteem verlaat, weet hij me niet meer te vinden.

125
00:08:29,690 --> 00:08:31,160
‫Dus laten we dat oplossen, zullen we?

126
00:08:31,160 --> 00:08:35,210
‫We gaan naar een nav mesh bounce volume.

127
00:08:36,130 --> 00:08:37,330
‫Als ik het kan selecteren.

128
00:08:37,330 --> 00:08:37,840
‫Daar gaan we.

129
00:08:37,990 --> 00:08:44,150
‫En dan willen we hier echt uitzoomen om te proberen ons hele niveau te omvatten.

130
00:08:44,180 --> 00:08:49,330
‫Aan de buitenkant ziet dit niveau er een beetje janky uit, maar dat is gewoon hoe dingen vaak werken, is dat

131
00:08:49,330 --> 00:08:52,750
‫je een niveau bouwt dat van binnenuit kan worden bekeken, niet van buitenaf.

132
00:08:53,110 --> 00:08:55,450
‫Dus laten we dit veel breder maken.

133
00:08:55,450 --> 00:09:01,390
‫Laten we het veel groter maken zodat het het hele niveau omvat en het gewoon naar buiten slepen zodat alle

134
00:09:01,390 --> 00:09:03,700
‫delen van het niveau hier bedekt zijn.

135
00:09:04,030 --> 00:09:11,860
‫Maak het gewoon een beetje breder, een beetje langer ook, en zorg ervoor dat dit alles volledig wordt

136
00:09:11,860 --> 00:09:12,520
‫omvat.

137
00:09:13,180 --> 00:09:17,920
‫En je kunt zien dat het groen is verschenen zoals het is berekend, de navigatie heeft elkaar

138
00:09:17,920 --> 00:09:25,210
‫ontmoet en laten we er gewoon voor zorgen dat het nav-bericht zo laag gaat dat het de laagste delen van onze kaart bedekt, het nu lijkt

139
00:09:25,210 --> 00:09:25,930
‫te dekken.

140
00:09:26,260 --> 00:09:33,730
‫Dus als we doorgaan en we kunnen mesh verbergen en navigeren nu we het allemaal hebben ingesteld en we kunnen een alt p doen om door

141
00:09:33,730 --> 00:09:40,240
‫te gaan en te spelen en hij kan ons vinden en ons vrijwel overal volgen waar we binnen dit niveau gaan.

142
00:09:40,780 --> 00:09:47,680
‫Je kunt zien dat ik erop vertrouwde dat een dienaar ons achtervolgt waar we ook heen gaan.

143
00:09:47,890 --> 00:09:50,890
‫Hij volgt ons gewoon en volgt ons, wat erg vervelend is.

144
00:09:51,100 --> 00:09:53,560
‫Maar hij is daartoe in staat.

145
00:09:54,590 --> 00:09:55,130
‫Geweldig spul.

146
00:09:55,130 --> 00:10:02,330
‫Dus in deze lezing hebben we gezien hoe we meshes kunnen maken en hebben en hoe we ze kunnen gebruiken om onze

147
00:10:02,330 --> 00:10:05,180
‫bondgenoot ons door het level te laten volgen.

148
00:10:06,520 --> 00:10:12,880
‫Vervolgens gaan we terug naar dit probleem, repareer de bug en controleer de zichtlijn,

149
00:10:12,880 --> 00:10:16,150
‫zodat we de speler niet altijd achtervolgen.

150
00:10:16,360 --> 00:10:16,870
‫Zie dat?

151
00:10:18,360 --> 00:10:22,770
‫En ik heb zojuist een dwaze kleine fout opgemerkt die ik hier heb gemaakt, namelijk dat ik

152
00:10:22,800 --> 00:10:25,440
‫niet bel om de code op tech te verminderen.

153
00:10:25,650 --> 00:10:31,000
‫Dus dat is eigenlijk de reden waarom je soms deze rare onverklaarbare bugs krijgt.

154
00:10:31,260 --> 00:10:36,210
‫Als je niet naar super belt en dan werken de dingen niet altijd zoals verwacht, daarom was

155
00:10:36,480 --> 00:10:41,970
‫de focus gestopt met werken, omdat we in wezen tech hadden uitgeschakeld op een hoge controller, wat niet goed is.

156
00:10:42,360 --> 00:10:47,250
‫Als je bent ingeschakeld, zou alles normaal moeten werken met de instellingsfocus.

