﻿1
00:00:04,460 --> 00:00:05,430
‫Hallo en welkom.

2
00:00:05,430 --> 00:00:11,630
‫In deze lezing gaan we kijken hoe we ons bewegende platform kunnen instellen met behulp van een vectorsnelheid in

3
00:00:11,630 --> 00:00:12,650
‫zijn lidvariabelen.

4
00:00:12,980 --> 00:00:18,680
‫En we gaan kijken hoe we de framesnelheid van de beweging onafhankelijk kunnen maken met behulp van iets dat Delta-tijd

5
00:00:18,680 --> 00:00:19,550
‫wordt genoemd.

6
00:00:19,550 --> 00:00:20,660
‫Oké, laten we erin duiken.

7
00:00:21,260 --> 00:00:27,900
‫Dus tot nu toe hebben we slechts één onderdeel van onze vector tegelijk bijgewerkt.

8
00:00:28,310 --> 00:00:31,010
‫Wat als ik je vertel dat we het niet op deze manier hoeven te doen?

9
00:00:31,010 --> 00:00:35,840
‫Wat als we de hele vector in één keer met een bepaald bedrag kunnen bijwerken?

10
00:00:36,230 --> 00:00:36,890
‫Nou, dat kunnen we.

11
00:00:36,920 --> 00:00:41,390
‫Vectoren kunnen aan andere factoren worden toegevoegd als we in de vorige sectie hebben gezien.

12
00:00:41,390 --> 00:00:47,180
‫Dus wat we zouden kunnen doen is naar ons bewegende platform naar H gaan en iets creëren

13
00:00:47,180 --> 00:00:53,300
‫dat ons bewegende platform is, de snelheidsvector die ons zowel de richting als de snelheid vertelt waarmee we willen gaan.

14
00:00:53,690 --> 00:01:01,100
‫Dus de manier waarop we dit doen, is door nu een vrij bekende U van eigendom te creëren en

15
00:01:01,280 --> 00:01:07,520
‫we gaan het overal bewerken zodat het zichtbaar is in de inspecteur en dan wordt het

16
00:01:07,520 --> 00:01:15,710
‫een type F-vector zoals we eerder hebben gedaan, en we noemen het de platformsnelheid en we kunnen er voorlopig iets aan geven.

17
00:01:15,710 --> 00:01:23,060
‫Dus we gaan een F-vectorconstructor maken en dan geven we die honderden in de X-component en nul en nul in de

18
00:01:23,060 --> 00:01:26,720
‫andere en dan een puntkomma om het af te maken.

19
00:01:27,110 --> 00:01:32,900
‫En ik wil je hier nog een truc laten zien, namelijk dat we samen met bewerken, overal waar we nog een door

20
00:01:32,900 --> 00:01:35,210
‫komma's gescheiden argument kunnen plaatsen in deze U.

21
00:01:35,210 --> 00:01:38,390
‫Eigendomsding, dat een beetje op een functie lijkt.

22
00:01:38,390 --> 00:01:46,100
‫Eigenlijk kun je er een die categorie heet met een hoofdletter C zetten en dan het gelijkteken zetten.

23
00:01:46,100 --> 00:01:50,810
‫En ik laat meestal geen spatie tussen deze zijn gelijktekens, categorie is gelijk aan.

24
00:01:50,810 --> 00:01:54,110
‫En dan kun je een categorie opgeven die je wilt laten zien.

25
00:01:54,440 --> 00:01:58,160
‫Hier beneden kunt u zien dat er categorieën zijn voor replicatie van het renderen van transformaties.

26
00:01:58,160 --> 00:02:03,020
‫Dit zijn het soort categorieën dat we bedoelen, ik ga het mijn bewegend platform noemen, zodat we een soort

27
00:02:03,020 --> 00:02:05,840
‫bewegend platform categorie hebben om deze variabelen in te plaatsen.

28
00:02:05,990 --> 00:02:10,370
‫En merk op dat ik dubbele aanhalingstekens rond die categorie gebruik.

29
00:02:10,670 --> 00:02:11,840
‫Dat is de juiste syntaxis.

30
00:02:11,840 --> 00:02:13,010
‫Die moet je er wel bij hebben.

31
00:02:13,790 --> 00:02:22,700
‫En wat we dan kunnen doen, is dat we deze nieuwe lidvariabele kunnen gebruiken in C++.

32
00:02:22,700 --> 00:02:29,480
‫Dus in plaats van de X-component van de huidige locatie in te stellen, laat ik

33
00:02:29,480 --> 00:02:42,080
‫die regel volledig verwijderen en herschrijven omdat de huidige locatie gelijk is aan de huidige locatie plus platformsnelheid, zoals bijvoorbeeld een puntkomma aan het einde van de regel en

34
00:02:42,080 --> 00:02:48,590
‫laten we naar Unreal gaan en klik op compileren en kijk hoe dit gaat.

35
00:02:48,770 --> 00:02:50,480
‫Dus dat is succesvol gecompileerd.

36
00:02:50,480 --> 00:02:56,630
‫En je kunt zien dat ik nu dit bewegende platformgedeelte op mijn bewegend platform heb met een platformsnelheid

37
00:02:56,630 --> 00:02:59,120
‫en de x-component is ingesteld op 100.

38
00:02:59,120 --> 00:03:00,770
‫Wat gebeurt er als ik ga en op play druk?

39
00:03:00,920 --> 00:03:05,810
‫Wel, het platform snelt snel weg in de verte, want ik voeg honderd eenheden toe aan elk afzonderlijk

40
00:03:05,810 --> 00:03:06,260
‫frame.

41
00:03:06,620 --> 00:03:07,940
‫Dat is veel.

42
00:03:08,210 --> 00:03:13,760
‫Maar ik wil wel dat het beweegt met een snelheid van ongeveer 100 centimeter per seconde.

43
00:03:13,760 --> 00:03:14,960
‫Dat is slechts één meter per seconde.

44
00:03:14,960 --> 00:03:16,310
‫Het is niet erg snel.

45
00:03:16,700 --> 00:03:18,860
‫Dus waarom gaat het zo snel?

46
00:03:18,980 --> 00:03:20,390
‫Nou, vanwege mijn framerate.

47
00:03:20,390 --> 00:03:23,810
‫Als ik op een langzamer systeem zat, zou het langzamer gaan.

48
00:03:23,810 --> 00:03:25,880
‫En als ik op een sneller systeem zat, zou het sneller gaan.

49
00:03:25,880 --> 00:03:26,960
‫Dat lijkt niet logisch.

50
00:03:27,320 --> 00:03:29,900
‫Dus laten we het hebben over het gebruik van Delta-tijd.

51
00:03:29,900 --> 00:03:31,190
‫Wat is Delta-tijd?

52
00:03:31,760 --> 00:03:38,900
‫Welnu, het gebruik van Delta-tijd in Unreal kan ons vertellen hoe lang het duurde om elk frame uit te voeren, Delta-tijd was.

53
00:03:38,900 --> 00:03:45,650
‫Welnu, als je naar Visual Studio-code gaat, kun je zien dat Delta-tijd een variabele is die hier bovenaan de take

54
00:03:45,650 --> 00:03:46,610
‫wordt genoemd.

55
00:03:46,610 --> 00:03:49,280
‫Dit is eigenlijk een invoerparameter.

56
00:03:49,280 --> 00:03:51,500
‫Het is de input voor onze functie.

57
00:03:51,770 --> 00:03:52,970
‫Dus we kunnen het hier gebruiken.

58
00:03:53,150 --> 00:03:58,160
‫Net zoals we een lokale variabele gebruiken, kunnen we deze in de hoofdtekst van de tick-functie gebruiken.

59
00:03:58,940 --> 00:04:01,490
‫Het vertelt ons dus hoe lang het duurde om een frame uit te voeren.

60
00:04:01,490 --> 00:04:02,570
‫Maar waarom is dat belangrijk?

61
00:04:02,570 --> 00:04:09,620
‫Want als we iets vermenigvuldigen met delta-tijd, wordt onze game frame rate onafhankelijk, wat in feite betekent dat

62
00:04:09,620 --> 00:04:14,570
‫de game zich hetzelfde gedraagt op een snelle of een langzame computer.

63
00:04:14,690 --> 00:04:20,090
‫Laten we dus een illustratief voorbeeld bekijken als ik elke seconde iets met één eenheid naar links

64
00:04:20,090 --> 00:04:20,930
‫wil verplaatsen.

65
00:04:21,410 --> 00:04:23,390
‫Hier is hoe het eruit zou zien op verschillende machines.

66
00:04:23,390 --> 00:04:24,290
‫Ik heb een trage computer.

67
00:04:24,290 --> 00:04:29,780
‫Ik kan maar tien frames per seconde doen op een snelle computer, die 100 frames per seconde kan doen.

68
00:04:29,810 --> 00:04:32,570
‫Nu is de duur van die frames anders.

69
00:04:32,570 --> 00:04:36,350
‫Dus op de langzame computer is de duur van het frame 0. 1 seconde.

70
00:04:36,350 --> 00:04:42,590
‫Als ik er maar tien in een seconde kan passen en op een snelle computer zou het zijn. 01 van een seconde, zoveel minder omdat

71
00:04:42,590 --> 00:04:45,320
‫het dingen sneller kan uitvoeren.

72
00:04:45,320 --> 00:04:47,360
‫Het duurt niet zo lang om het frame te berekenen.

73
00:04:48,080 --> 00:04:54,290
‫Dus als ik vermenigvuldig met de duur van het frame, vermenigvuldig ik mijn eenheid met de duur van het frame.

74
00:04:54,590 --> 00:04:58,070
‫Dan ga je dat in 1/2 zien.

75
00:04:58,070 --> 00:05:03,500
‫Dus waar tien frames zijn uitgevoerd, krijg ik één bewegingseenheid.

76
00:05:03,860 --> 00:05:05,090
‫En hetzelfde is waar.

77
00:05:05,090 --> 00:05:11,420
‫Als ik 100 frames van executie heb gedaan, krijg ik nog steeds één bewegingseenheid.

78
00:05:11,450 --> 00:05:15,520
‫Dus ik daag je uit om te vermenigvuldigen met Delta-tijd.

79
00:05:15,530 --> 00:05:21,620
‫Dus wat we gaan doen is onthouden dat we vectoren kunnen vermenigvuldigen met een drijvende-kommawaarde om

80
00:05:21,980 --> 00:05:23,720
‫die grootte te schalen.

81
00:05:24,230 --> 00:05:29,110
‫En de manier waarop we dit in C++ kunnen doen, is door de star-operator te gebruiken.

82
00:05:29,120 --> 00:05:30,530
‫Dat is hoe we vermenigvuldigen.

83
00:05:30,530 --> 00:05:32,930
‫Er is geen operator voor vermenigvuldigingstekens.

84
00:05:32,930 --> 00:05:37,820
‫Het zou worden verward met een X, dus gebruiken we de steroperator om vermenigvuldiging aan te duiden.

85
00:05:38,420 --> 00:05:41,900
‫En ik zou graag willen dat je je resultaten compileert en test.

86
00:05:41,900 --> 00:05:45,710
‫Dus vermenigvuldig met deltatijd, vermenigvuldig de snelheid met deltatijd en kijk wat er gebeurt.

87
00:05:46,460 --> 00:05:47,600
‫Pauzeer, video en ga aan de slag.

88
00:05:50,690 --> 00:05:51,290
‫Oké.

89
00:05:51,300 --> 00:05:51,940
‫Welkom terug.

90
00:05:51,950 --> 00:05:54,800
‫Dus het is de platformsnelheid die we hier willen vermenigvuldigen.

91
00:05:55,370 --> 00:06:00,530
‫We zouden dit naar een aparte variabele kunnen trekken, maar feitelijk kunnen we een vermenigvuldiging met delta-tijd

92
00:06:00,770 --> 00:06:06,500
‫aan het einde van die regel zetten, duidelijk voor de puntkomma, omdat het voor het einde van de verklaring

93
00:06:06,500 --> 00:06:07,100
‫staat.

94
00:06:07,790 --> 00:06:13,610
‫Wat hier interessant is, is dat operators hier een beetje voorrang hebben,

95
00:06:13,610 --> 00:06:20,930
‫omdat de vermenigvuldiging tussen de platformsnelheid en de Delta-tijd zal plaatsvinden vóór de toevoeging aan

96
00:06:20,960 --> 00:06:22,940
‫de huidige locatie.

97
00:06:22,970 --> 00:06:27,850
‫Dit volgt nu de normale wiskundige regels voor een volledige lijst van die regels.

98
00:06:27,860 --> 00:06:33,470
‫Ik ga hier niet in detail treden, maar je kunt een kijkje nemen op de pagina over de

99
00:06:33,470 --> 00:06:35,330
‫volgorde van bewerkingen op Wikipedia.

100
00:06:35,570 --> 00:06:40,760
‫Er zijn veel verschillende regels in verschillende talen, of het nu gaat om lichaamsmassa, bedmassa, huisdiermassa,

101
00:06:40,760 --> 00:06:41,420
‫bedmassa.

102
00:06:41,660 --> 00:06:43,010
‫Er zijn heel veel verschillende afkortingen.

103
00:06:43,010 --> 00:06:46,850
‫Dus welke je ook gebruikt, die zou ik je aanraden te gebruiken.

104
00:06:47,060 --> 00:06:50,180
‫Voor mij was het body mass, maar weet je, op andere plaatsen is het anders.

105
00:06:50,540 --> 00:06:55,070
‫Het is dus vermeldenswaard dat we het gewoon zo kunnen schrijven.

106
00:06:55,280 --> 00:07:00,380
‫Maar als we er zeker van willen zijn dat iets in een andere volgorde gebeurt, dan kun je haakjes

107
00:07:00,380 --> 00:07:02,030
‫gebruiken om dit aan te geven.

108
00:07:02,030 --> 00:07:07,460
‫Dus ik zou, om de zaken duidelijker te maken, haakjes rond deze vermenigvuldiging zetten om je te laten zien dat

109
00:07:07,460 --> 00:07:08,930
‫dat is wat er gebeurt.

110
00:07:08,930 --> 00:07:12,920
‫Eerst de vermenigvuldiging en dan de optelling bij de huidige locatie.

111
00:07:13,580 --> 00:07:16,340
‫Dus laten we naar Unreal gaan en dit testen.

112
00:07:16,340 --> 00:07:19,370
‫We gaan hit, compileren, en als dat klaar is, laten we op play drukken.

113
00:07:19,520 --> 00:07:24,350
‫En nu zien we de platforms met een veel normalere snelheid bewegen, omdat het eigenlijk met één

114
00:07:24,350 --> 00:07:27,800
‫meter per seconde beweegt, wat oké is voor een bewegend platform.

115
00:07:28,220 --> 00:07:35,540
‫Je kunt dus zien dat dit ons allebei heeft geholpen de snelheid te verlagen, maar ook nu is dit een framerate, onafhankelijke

116
00:07:35,540 --> 00:07:36,110
‫snelheid.

117
00:07:36,470 --> 00:07:40,610
‫Als mijn computer aan het puffen was omdat er iets anders op de achtergrond aan de hand was, zou

118
00:07:40,610 --> 00:07:43,460
‫dit er nog steeds hetzelfde uitzien en hetzelfde spelen in het spel.

119
00:07:43,490 --> 00:07:44,030
‫Goed spul.

120
00:07:44,030 --> 00:07:46,370
‫Ik zie je in de volgende lezing.

