﻿1
00:00:04,440 --> 00:00:05,250
‫Hallo en welkom.

2
00:00:05,260 --> 00:00:10,530
‫In deze lezing gaan we leren over het verschil tussen pionnen zoals deze man

3
00:00:10,530 --> 00:00:12,570
‫en karakters zoals deze man.

4
00:00:12,570 --> 00:00:19,260
‫En we gaan door met het opzetten van een karakterblauwdruk en karakter C++ acteur om er zo uit te zien, zodat

5
00:00:19,260 --> 00:00:21,000
‫we onze Wraith mesh hebben.

6
00:00:21,030 --> 00:00:22,620
‫Laten we erin duiken en kijken hoe het gedaan is.

7
00:00:22,860 --> 00:00:29,760
‫Oké, dus het eerste deel van ons grotere projectplan waarmee we willen beginnen, is de

8
00:00:29,820 --> 00:00:31,560
‫spelersbeweging, nummer één.

9
00:00:31,560 --> 00:00:36,990
‫Dat is wat we fundamenteel vinden van de meeste games, niet alleen schietspellen, dan zouden ze gaan over

10
00:00:36,990 --> 00:00:41,850
‫animatie en schieten en gezondheid en dood en al die andere dingen die we willen bereiken.

11
00:00:42,150 --> 00:00:45,390
‫Maar het eerste dat moet worden aangepakt, is de beweging van de speler.

12
00:00:46,110 --> 00:00:49,740
‫Om dit te doen, gaan we een karakterklasse maken.

13
00:00:49,740 --> 00:00:50,970
‫Wat is een karakterklasse?

14
00:00:50,970 --> 00:00:55,800
‫Eerst en vooral is er een onderscheid tussen een pion en een personage.

15
00:00:56,250 --> 00:01:01,070
‫De pion is alles wat je als speler kunt bezitten.

16
00:01:01,080 --> 00:01:05,040
‫We zullen later meer over bezit hebben, maar je hebt er al een beetje over gezien.

17
00:01:05,490 --> 00:01:10,260
‫Maar het idee hier is dat de pion het ding is dat wordt bestuurd door de speler.

18
00:01:10,260 --> 00:01:10,830
‫Een karakter?

19
00:01:10,830 --> 00:01:11,550
‫Wat is een personage?

20
00:01:11,850 --> 00:01:15,060
‫Nou, het eerste wat je moet zeggen is dat het personage een pion is.

21
00:01:15,060 --> 00:01:17,730
‫Het erft rechtstreeks van de pionnenklasse.

22
00:01:17,730 --> 00:01:20,730
‫Hij kan dus alles doen wat de pion kan.

23
00:01:20,850 --> 00:01:25,470
‫En meer nog, een personage is een specialisatie van een pion.

24
00:01:26,190 --> 00:01:28,410
‫Het voegt karakterachtige functies toe.

25
00:01:28,410 --> 00:01:29,490
‫Nou, dat is niet erg informatief.

26
00:01:29,490 --> 00:01:32,820
‫Dus wat voor soort dingen zijn karakter als over een karakter?

27
00:01:33,240 --> 00:01:39,870
‫Nou, bijvoorbeeld beweging die rondloopt zoals een normaal persoon zou doen, op de grond rondlopen,

28
00:01:39,870 --> 00:01:43,560
‫kunnen springen, kunnen rennen, al dat soort dingen.

29
00:01:43,860 --> 00:01:49,470
‫Dat is eerder het domein van een personage dan van een pion, omdat pionnen bijvoorbeeld als ruimteschepen kunnen

30
00:01:49,470 --> 00:01:49,980
‫rondvliegen.

31
00:01:49,980 --> 00:01:53,550
‫Het zijn geen mensen zoals, dus zo is een personage.

32
00:01:53,790 --> 00:01:59,070
‫En het voegt ook dingen toe zoals NAF mesh-bewegingen, die we meer zullen zien als we bij

33
00:01:59,070 --> 00:02:05,160
‫de AI-sectie van deze sectie komen, en dat zal ons helpen het personage te verplaatsen, obstakels te vermijden en dat

34
00:02:05,160 --> 00:02:06,030
‫soort dingen.

35
00:02:06,780 --> 00:02:09,570
‫Dus hoe gaan we verder en creëren we een personage?

36
00:02:09,960 --> 00:02:10,320
‫Heel veel.

37
00:02:10,320 --> 00:02:13,320
‫Hetzelfde als we elke andere C++-klasse zouden maken.

38
00:02:13,320 --> 00:02:16,380
‫We mogen een nieuwe, nieuwe C++-klasse toevoegen.

39
00:02:16,380 --> 00:02:20,970
‫En je kunt hier tussen de opties zien, er is -- en er is karakter.

40
00:02:21,450 --> 00:02:28,140
‫Nu ga ik door en geef je meteen een uitdaging om de Blueprint Children en de

41
00:02:28,140 --> 00:02:29,910
‫C++ te maken.

42
00:02:29,910 --> 00:02:34,050
‫Dus we gaan eerst en vooral mee om de C++ te maken.

43
00:02:34,050 --> 00:02:35,700
‫Dit zal geen deel uitmaken van je uitdaging.

44
00:02:36,000 --> 00:02:38,070
‫We gaan een pion voor onszelf creëren.

45
00:02:38,580 --> 00:02:42,870
‫Dus ik bel gewoon mijn -- want omdat we de --.

46
00:02:42,870 --> 00:02:46,080
‫We willen het verschil zien tussen dat en het personage.

47
00:02:46,260 --> 00:02:52,440
‫Dus we gaan door en creëren die klas en als dat eenmaal doorgaat en eindigt, zul je eindigen met een

48
00:02:52,440 --> 00:02:57,390
‫-- klas, het soort dingen dat je zult hebben gezien voordat het begint, speel een technische

49
00:02:57,390 --> 00:02:58,950
‫set-up, speel invoercomponent, enzovoort..

50
00:02:59,280 --> 00:03:04,140
‫Dus wat we gaan doen, is dat we dezelfde procedure opnieuw gaan doen, een nieuwe C++-klasse toevoegen.

51
00:03:04,140 --> 00:03:06,990
‫Deze keer gaan we een personage maken, ga naar de volgende.

52
00:03:07,410 --> 00:03:12,420
‫En in plaats van het iets fantasieloos te noemen, zoals mijn personage, noem ik

53
00:03:12,750 --> 00:03:17,850
‫het het shooter-personage, wat meer beschrijft wat voor soort personage we hier proberen te creëren.

54
00:03:18,270 --> 00:03:20,370
‫Ik ga door en maak die klas aan.

55
00:03:21,030 --> 00:03:26,670
‫En als dat klaar is met bouwen, kun je zien dat we een vrij gelijkaardig uitziende kop krijgen, een bestand.

56
00:03:26,670 --> 00:03:32,820
‫In feite is vrijwel alles identiek, behalve wat het erft van de tekenklasse in plaats

57
00:03:32,820 --> 00:03:34,320
‫van de --.

58
00:03:34,320 --> 00:03:36,600
‫Het is heel erg vergelijkbaar, behalve dat.

59
00:03:37,050 --> 00:03:41,490
‫Dus om de verschillen te zien, moeten we kijken naar de blauwdrukkinderen van deze dingen om te

60
00:03:41,490 --> 00:03:43,500
‫zien wat voor soort componenten er zijn.

61
00:03:44,190 --> 00:03:50,070
‫Dus dat wordt een uitdaging om mee te werken aan het maken van de C++, zoals ik

62
00:03:50,070 --> 00:03:54,960
‫net deed, een blauwdrukkind toevoegen voor elk van de my spawn- en de shooter-personages.

63
00:03:55,020 --> 00:04:01,140
‫Welke verschillen kun je dan zien als je die twee afzonderlijke blauwdrukken opent, de video pauzeert en

64
00:04:01,140 --> 00:04:01,860
‫het probeert.

65
00:04:02,100 --> 00:04:02,940
‫Hé, welkom terug.

66
00:04:03,300 --> 00:04:04,710
‫Dus laten we dit een kans geven.

67
00:04:04,710 --> 00:04:12,360
‫Als we naar de editor gaan en ik ga gewoon naar de bovenkant van mijn inhoudsmap en dan

68
00:04:12,360 --> 00:04:15,240
‫ga ik wat nieuwe blauwdrukken toevoegen.

69
00:04:15,750 --> 00:04:18,750
‫Dus ik ga met de rechtermuisknop klikken om een blauwdrukklasse te maken.

70
00:04:19,170 --> 00:04:25,290
‫En in plaats van van een van deze te erven, ga ik alle klassen selecteren en zoeken naar de my

71
00:04:25,290 --> 00:04:32,160
‫-- class, die een kind is van de --, zoals we kunnen zien, selecteer die en ga en maak een override van

72
00:04:32,160 --> 00:04:32,600
‫Dat.

73
00:04:32,640 --> 00:04:39,510
‫Ik noem het de BP-onderstreping mijn -- om die conventie te gebruiken, die ons helpt onderscheid te maken

74
00:04:39,510 --> 00:04:41,970
‫tussen de C++ en de blauwdruk.

75
00:04:42,510 --> 00:04:45,300
‫Dus ik ga dan met de rechtermuisknop klikken en een andere blauwdrukklasse maken.

76
00:04:45,300 --> 00:04:48,030
‫Deze keer ga ik op zoek naar het personage van de schutter.

77
00:04:49,210 --> 00:04:50,470
‫En selecteer die.

78
00:04:50,470 --> 00:04:54,520
‫En voorspelbaar noem ik dat BP-underscore-schietpersonage.

79
00:04:54,880 --> 00:04:59,320
‫Het helpt ons een beetje om niet al te fantasierijk te zijn over het benoemen van dingen.

80
00:04:59,320 --> 00:05:02,080
‫Je wilt niet fantasierijk zijn over het benoemen van die blauwdrukkinderen.

81
00:05:02,440 --> 00:05:06,850
‫Je wilt gewoon kunnen zeggen dat het precies dezelfde naam zal zijn, alleen met een BP-onderstrepingsteken op de

82
00:05:06,850 --> 00:05:07,240
‫voorkant.

83
00:05:07,750 --> 00:05:13,330
‫Dus laten we doorgaan en die twee openen en ze in het hoofdvenster plaatsen, zodat we ze mooi en gemakkelijk kunnen

84
00:05:13,330 --> 00:05:13,840
‫vergelijken.

85
00:05:14,110 --> 00:05:19,450
‫Open de shoot een karakterstip in het hoofdvenster en we kunnen meteen enkele verschillen zien.

86
00:05:19,960 --> 00:05:24,340
‫De pion heeft in principe niets aan de hand in de componentweergave.

87
00:05:24,370 --> 00:05:27,790
‫Het heeft een standaard scene root en niets anders.

88
00:05:28,510 --> 00:05:30,090
‫We gaan naar het personage van de schutter.

89
00:05:30,100 --> 00:05:33,160
‫U kunt echter zien dat er om te beginnen nog een paar dingen aan de hand zijn.

90
00:05:33,520 --> 00:05:40,540
‫We hebben hier een capsulecomponent, wat al een beetje impliceert dat het verwacht dat

91
00:05:40,540 --> 00:05:44,080
‫een mensachtige vorm in die capsule past.

92
00:05:44,080 --> 00:05:50,430
‫De capsule is voor het doen van ruwe fysica en manipulatie of botsing met het terrein.

93
00:05:50,440 --> 00:05:54,520
‫En dan is natuurlijk iets dat daar heel mooi in past een mensachtig personage.

94
00:05:54,610 --> 00:05:59,380
‫We hebben een pijlcomponent die ons in feite vertelt welke weg vooruit is voor dit personage.

95
00:05:59,830 --> 00:06:02,290
‫En dan hebben we een mesh, die is geërfd.

96
00:06:02,290 --> 00:06:03,760
‫Het is geërfd van de C++.

97
00:06:03,760 --> 00:06:08,960
‫In feite is het van twee niveaus hoger geërfd, omdat we hier geen mazen hebben gedefinieerd in het blad, een

98
00:06:08,970 --> 00:06:09,490
‫teken.

99
00:06:09,790 --> 00:06:13,900
‫Ze moeten in plaats daarvan zijn gedefinieerd in de A-tekenklasse.

100
00:06:14,290 --> 00:06:21,430
‫Dus die mesh-component sijpelt helemaal naar beneden naar deze blauwdrukklasse, en het heeft nog

101
00:06:21,430 --> 00:06:23,470
‫niets in die mesh.

102
00:06:23,470 --> 00:06:26,800
‫Dus we kunnen doorgaan en daar een gaas plaatsen.

103
00:06:26,830 --> 00:06:27,940
‫Dus laten we doorgaan en dat proberen.

104
00:06:27,940 --> 00:06:30,970
‫Ga naar het detailvenster, naar het skeletmesh.

105
00:06:31,360 --> 00:06:34,680
‫En we willen eigenlijk ons Wraith-personage erin stoppen.

106
00:06:34,690 --> 00:06:37,450
‫Dus ik ga gewoon Wraith hier selecteren en dan gaan we.

107
00:06:37,450 --> 00:06:39,850
‫Het heeft hem een beetje van de grond gebracht.

108
00:06:39,860 --> 00:06:43,360
‫Dus wat ik wil doen is doorgaan en zijn voeten aanpassen.

109
00:06:43,870 --> 00:06:48,040
‫Dus ze ontmoeten de onderkant van de capsule zo goed als ik kan.

110
00:06:48,610 --> 00:06:50,710
‫Het lijkt erop dat ik dat de eerste keer redelijk goed had.

111
00:06:51,010 --> 00:06:57,040
‫En dan willen we hem ook uitlijnen zodat hij naar die voorwaartse pijl wijst, zodat we op die

112
00:06:57,040 --> 00:07:01,900
‫manier een beetje magische rotatie van 90 graden kunnen doen en we zijn gouden.

113
00:07:01,900 --> 00:07:07,000
‫Ik drukte op de all-toets om bij de rotatie te komen, wat trouwens, of

114
00:07:07,000 --> 00:07:13,210
‫je zou deze kleine widgets rechtsboven in je viewport kunnen gebruiken om tussen je vertaling en rotatie te komen.

115
00:07:13,480 --> 00:07:17,590
‫Een ander ding dat het vermelden waard is hier in de componenthiërarchie, afgezien

116
00:07:17,590 --> 00:07:22,990
‫van het feit dat het deze mesh, de pijl en de capsulecomponent heeft, is dat we deze karakterbewegingscomponent hebben.

117
00:07:23,000 --> 00:07:29,020
‫Dit is wat volledig verantwoordelijk is voor het karakter geven zoals beweging, kunnen lopen en

118
00:07:29,020 --> 00:07:29,860
‫rennen, enz..

119
00:07:30,160 --> 00:07:34,810
‫Je kunt hier in het detailvenster zien dat we een aantal bewegingsinstellingen hebben, we hebben de

120
00:07:34,810 --> 00:07:35,260
‫zwaartekrachtschaal.

121
00:07:35,260 --> 00:07:39,960
‫Dus je zou het kunnen laten lijken alsof we op Mars of op de maan of op Jupiter spelen.

122
00:07:39,970 --> 00:07:42,430
‫Wat je ook wilt doen, je kunt de zwaartekrachtschaal veranderen, het kan leuk zijn.

123
00:07:42,910 --> 00:07:49,540
‫We hebben standaard bewegingstypes voor of we ons op het land bevinden, of we ons op

124
00:07:49,540 --> 00:07:53,950
‫het water bevinden, al dit soort dingen, wandelen, springen, informatienetwerkdingen.

125
00:07:53,950 --> 00:07:56,620
‫Dit werkt automatisch goed in multiplayer-games.

126
00:07:56,620 --> 00:07:57,970
‫Het heeft dat allemaal ingebouwd.

127
00:07:58,420 --> 00:08:01,690
‫Dus eigenlijk wordt er hier al veel voor ons gedaan.

128
00:08:02,110 --> 00:08:06,550
‫Dus daarom willen we een karakter gebruiken over een pion waar we al deze bewegingscode helemaal opnieuw zouden

129
00:08:06,550 --> 00:08:08,880
‫moeten schrijven als we het karakter zouden gebruiken.

130
00:08:08,890 --> 00:08:15,250
‫Het is al ingesteld met deze component voor het verplaatsen van personages voor ons, en dat zijn lang niet alle dingen

131
00:08:15,250 --> 00:08:17,110
‫die het personage ons biedt.

132
00:08:17,110 --> 00:08:22,900
‫Het biedt ook veel aardigheden en leuke functies die we in de basisklasse kunnen gebruiken om ons werk nog

133
00:08:22,900 --> 00:08:24,070
‫gemakkelijker te doen.

134
00:08:24,280 --> 00:08:26,410
‫Dat gaan we zien in de komende colleges.

135
00:08:26,710 --> 00:08:32,440
‫Dus het laatste dat we misschien willen doen, is ervoor zorgen dat dit personage de pion is die ze

136
00:08:32,440 --> 00:08:33,670
‫op onze kaart krijgen.

137
00:08:34,150 --> 00:08:37,990
‫Dus de manier waarop ik dit ga doen, gaat weer naar de basis van onze inhoud.

138
00:08:37,990 --> 00:08:39,010
‫En dit is revisie.

139
00:08:39,020 --> 00:08:40,330
‫Zoveel uitdaging voor jou.

140
00:08:40,330 --> 00:08:49,090
‫Als je het wilt, kun je doorgaan en een kloon van deze kaart en een blauwdruk-spelmodus van deze

141
00:08:49,090 --> 00:08:52,870
‫kaart maken die een app-shooter-personage zal voortbrengen.

142
00:08:53,030 --> 00:08:56,800
‫Ik moedig je aan om deze vele uitdagingen aan te gaan, evenals de belangrijkste grote uitdaging.

143
00:08:57,040 --> 00:09:00,160
‫Ik ga verder en geef daar geen uitdaging dia voor.

144
00:09:00,490 --> 00:09:05,680
‫Dus we hebben de modulaire sci-fi seizoen één startbundel-verzamelingskaarten.

145
00:09:06,010 --> 00:09:07,000
‫Ik heb hier kaart één.

146
00:09:07,000 --> 00:09:11,440
‫Ik ga eigenlijk gewoon doorgaan en dat voorlopig kopiëren naar de route van mijn project.

147
00:09:11,440 --> 00:09:15,880
‫En we kunnen de zaken wat later reorganiseren als de route wat meer

148
00:09:15,880 --> 00:09:18,310
‫spullen krijgt en de organisatiestructuur duidelijker wordt.

149
00:09:18,820 --> 00:09:22,870
‫Ik ga die kaart hernoemen naar Sandbox.

150
00:09:23,680 --> 00:09:29,620
‫We gaan het instellen als de standaard van het project door naar de projectinstellingen, kaarten en modi te

151
00:09:29,620 --> 00:09:35,560
‫gaan en het vervolgens te wijzigen van Kaart één in Sandbox voor zowel het spel als de editor.

152
00:09:38,050 --> 00:09:39,640
‫Dan ga ik een spelmodus maken.

153
00:09:39,640 --> 00:09:42,680
‫Dus ik ga met de rechtermuisknop klikken en een blauwdrukklasse maken.

154
00:09:42,700 --> 00:09:45,620
‫Ik ga een basisblauwdruk voor de spelmodus maken.

155
00:09:45,640 --> 00:09:49,990
‫Noem het BP, onderstreping shooter-spelmodus.

156
00:09:50,760 --> 00:09:52,590
‫Ik kan dat openen.

157
00:09:52,600 --> 00:09:58,150
‫Ik heb geen C++ nodig in deze basisklasse, dus ik leid het eigenlijk niet af van C++.

158
00:09:58,150 --> 00:10:05,140
‫Maar als we het eenmaal nodig hebben, kunnen we de blauwdrukken van de ouders altijd rippen naar C++-klassen die we zelf hebben bedacht.

159
00:10:05,710 --> 00:10:08,530
‫Dus wat ik ga doen is overgaan tot de details.

160
00:10:08,530 --> 00:10:14,380
‫Als dat niet is geselecteerd, moet je naar de standaardinstellingen van de klas gaan hier in de bovenste balk

161
00:10:14,380 --> 00:10:20,560
‫en dan kun je naar het klassengedeelte gaan en zien dat het zoiets als de standaard moet zijn - klasse zoals zo.

162
00:10:21,010 --> 00:10:25,840
‫En we gaan op zoek naar het BP-shooter-personage in de blauwdrukversie

163
00:10:25,840 --> 00:10:33,730
‫omdat de mesh is ingesteld en dan gaan we terug naar onze sandbox, openen onze sandbox en veranderen de spelmodus.

164
00:10:34,060 --> 00:10:39,700
‫De reden dat ik een sandbox heb gemaakt, is omdat ik de originele kaart niet wil bewerken, omdat ik altijd

165
00:10:39,700 --> 00:10:43,720
‫naar die map wil teruggaan als referentie als ik mijn sandbox heb verprutst.

166
00:10:44,320 --> 00:10:50,620
‫Laten we dus naar de vervolgkeuzelijst met blauwdrukken in de bovenste balk gaan en de spelmodi selecteren die momenteel zijn ingesteld op basis van

167
00:10:50,620 --> 00:10:51,280
‫de spelmodus.

168
00:10:52,000 --> 00:10:55,600
‫Ik ga in plaats daarvan het BP underscore-schietspel selecteren.

169
00:10:55,810 --> 00:10:56,500
‫Spelmodus.

170
00:10:56,740 --> 00:10:57,850
‫Shooter-spelmodus, eerder.

171
00:10:58,360 --> 00:11:03,190
‫En het laatste stukje van de puzzel zal zijn om een speler erin te stoppen, ergens te beginnen.

172
00:11:03,220 --> 00:11:07,900
‫In feite realiseerde ik me dit niet, maar de kaart bevat al een spelerstart.

173
00:11:08,170 --> 00:11:13,870
‫Dus het toevoegen van de volgende betekent dat je nu per ongeluk op twee verschillende plaatsen kunt spawnen.

174
00:11:14,080 --> 00:11:16,150
‫We zullen dit later in de cursus oplossen.

175
00:11:16,150 --> 00:11:20,080
‫Maar zodat je het weet, als je op een andere locatie spawnt en je in de war raakt, is dat

176
00:11:20,080 --> 00:11:20,680
‫de reden.

177
00:11:20,890 --> 00:11:24,130
‫Dus ga naar je plaats, het tabblad Acteurs naar links.

178
00:11:24,130 --> 00:11:28,990
‫Als je het niet hebt, ga dan naar het venster en selecteer een plaatsacteurs om het te laten verschijnen.

179
00:11:29,470 --> 00:11:30,910
‫En we willen basisacteurs.

180
00:11:30,910 --> 00:11:32,350
‫We willen dat de speler actief begint.

181
00:11:32,350 --> 00:11:33,670
‫Ga je gang en breng dat binnen.

182
00:11:33,670 --> 00:11:39,670
‫Het geeft ons deze kleine capsule met een voorwaartse pijl die ons laat zien waar Spawn gaat spawnen, zodat we door kunnen gaan

183
00:11:39,670 --> 00:11:41,260
‫en op play kunnen drukken.

184
00:11:41,620 --> 00:11:45,310
‫En het is niet meteen duidelijk of dit heeft gewerkt of niet.

185
00:11:45,670 --> 00:11:52,280
‫Dus wat je moet doen is naar F8 gaan om uit je pion te werpen om te ontgrendelen, bezit het.

186
00:11:52,540 --> 00:11:54,130
‫En als je je omdraait, kun je dat zien.

187
00:11:54,130 --> 00:11:56,880
‫En ja hoor, we hebben hier ons karakter.

188
00:11:56,890 --> 00:12:00,670
‫Hij had alleen een camera ergens in zijn kruis, helaas.

189
00:12:00,940 --> 00:12:04,270
‫En dus gaan we dat later oplossen.

190
00:12:04,540 --> 00:12:12,970
‫Maar op dit moment hadden we mesh op zijn plaats en we gaan van daaruit verder om de animaties op te knappen, een personage

191
00:12:12,970 --> 00:12:18,370
‫van een derde persoon enzovoort te krijgen, en vooral om het in beweging te krijgen.

192
00:12:19,630 --> 00:12:23,680
‫Dus we hebben op dit moment het juiste shooter-personage.

193
00:12:23,680 --> 00:12:25,150
‫Het is geen third person camera.

194
00:12:25,150 --> 00:12:26,380
‫Dat gaan we later oplossen.

195
00:12:26,710 --> 00:12:30,130
‫Maar eerst en vooral gaan we onze beweging aan het werk krijgen.

196
00:12:30,140 --> 00:12:32,380
‫Dus laten we duiken naar de volgende lezing.

