﻿1
00:00:04,440 --> 00:00:05,700
‫Hallo en welkom bij deze lezing.

2
00:00:05,700 --> 00:00:11,100
‫We gaan spelen met AIM-offsets waarmee onze mesh zijn armen op en neer kan bewegen.

3
00:00:11,370 --> 00:00:15,120
‫Laten we, terwijl we op en neer mikken, erin duiken en zien waar dat allemaal over gaat.

4
00:00:16,200 --> 00:00:20,880
‫Dus op dit moment, als we op en neer richten, kun je zien dat de armen van onze

5
00:00:20,880 --> 00:00:26,310
‫personages eigenlijk niets doen en dat het pistool er niet echt uitziet alsof het omhoog zou moeten wijzen en schieten en de

6
00:00:26,310 --> 00:00:28,230
‫locatie raken die we daadwerkelijk raken .

7
00:00:28,800 --> 00:00:30,810
‫Dus hoe gaan we dit veranderen?

8
00:00:30,870 --> 00:00:33,390
‫Nou, het is een wijziging in een animatieblauwdruk.

9
00:00:33,390 --> 00:00:38,460
‫Laten we dus doorgaan en de animatieblauwdruk als startpunt openen en deze koppelen aan ons hoofdvenster.

10
00:00:39,180 --> 00:00:44,190
‫En dan wil ik je kennis laten maken met een nieuw type animatie-item dat we nog niet eerder hebben gezien.

11
00:00:44,190 --> 00:00:46,440
‫We hebben overvloeiruimtes gezien, we hebben animaties gezien.

12
00:00:46,800 --> 00:00:53,070
‫Het volgende dat ik je wil laten zien, is iets dat een animatie-offset wordt genoemd en in het bijzonder een

13
00:00:53,070 --> 00:00:53,670
‫richt-offset.

14
00:00:53,670 --> 00:01:00,600
‫Dus als we zoeken naar het trefwoord A0 in animaties, zoeken we naar deze met een kleine blauwe onderstreping die

15
00:01:00,600 --> 00:01:01,890
‫AIM-offsets worden genoemd.

16
00:01:02,250 --> 00:01:03,060
‫En dat zijn er een paar.

17
00:01:03,060 --> 00:01:09,090
‫Ik ben geïnteresseerd in AOE-gevechten, die hier ergens zouden moeten zijn.

18
00:01:09,120 --> 00:01:11,460
‫Het waren grijze, nutteloze gevechten.

19
00:01:11,950 --> 00:01:16,620
‫Je gaat naar binnen, selecteert dat, dan zul je zien dat we iets hebben dat veel lijkt op onze overvloeiruimte.

20
00:01:16,800 --> 00:01:22,470
‫Behalve als je deze keer de kleine groene klomp beweegt, verandert het

21
00:01:22,470 --> 00:01:25,620
‫de richting waarin onze personages wijzen.

22
00:01:25,620 --> 00:01:30,660
‫Dus als we naar links komen, richt hij zijn geweer naar links, wij komen naar rechts, hij

23
00:01:30,660 --> 00:01:32,460
‫richt zijn geweer naar rechts.

24
00:01:32,790 --> 00:01:36,810
‫En op dezelfde manier met op en neer, als je omhoog gaat, dan kijkt hij helemaal naar boven, jij zakt naar beneden,

25
00:01:36,810 --> 00:01:39,000
‫hij kijkt helemaal naar beneden en probeert naar beneden te schieten.

26
00:01:39,600 --> 00:01:46,620
‫Het verschil met deze en andere animaties die we hebben gezien, is dat dit een additieve animatie wordt

27
00:01:46,620 --> 00:01:47,280
‫genoemd.

28
00:01:47,280 --> 00:01:51,690
‫Als je naar het detailvenster gaat, kun je zien dat het additief is omdat er additieve instellingen

29
00:01:51,690 --> 00:01:55,680
‫staan en er is een op animatie gebaseerde pose waarop het dit allemaal baseert.

30
00:01:56,370 --> 00:02:01,500
‫Wat het eigenlijk betekent als het additief is, is dat deze animatie bovenop je andere animaties kan

31
00:02:01,500 --> 00:02:02,400
‫worden toegevoegd.

32
00:02:02,400 --> 00:02:06,030
‫Dus het zegt: ik kan dit richten terwijl jij rent.

33
00:02:06,030 --> 00:02:13,020
‫Ik kan de informatie toevoegen over waar mijn armen zijn verplaatst ten opzichte van je hardloophouding en ze bovenaan toevoegen.

34
00:02:13,620 --> 00:02:14,670
‫Dus hoe ziet dit eruit?

35
00:02:14,670 --> 00:02:22,260
‫Als we naar de animatieblauwdruk gaan, willen we deze informatie toevoegen nadat we al deze informatie over voortbeweging hebben

36
00:02:22,260 --> 00:02:28,410
‫toegevoegd en waarschijnlijk niet voor de dood, omdat de dood het laatste zou moeten zijn.

37
00:02:29,160 --> 00:02:31,080
‫Dus we willen na de motoriek.

38
00:02:31,080 --> 00:02:33,690
‫Dus we hebben al onze lopende animaties die we willen toevoegen.

39
00:02:33,690 --> 00:02:40,110
‫Daarbovenop komt het kleine beetje informatie over waar onze armen moeten worden bewogen zodat we correct kunnen

40
00:02:40,110 --> 00:02:40,770
‫mikken.

41
00:02:41,280 --> 00:02:45,000
‫Dus om dit te doen, kunnen we met de rechtermuisknop klikken en doelverschuiving toevoegen.

42
00:02:45,000 --> 00:02:47,850
‫We kunnen het ook vanuit de activabrowser doen en vervolgens naar A0 zoeken.

43
00:02:48,240 --> 00:02:53,550
‫En zoals ik al zei, we zijn op zoek naar die gevechtsversie, die op een andere plaats in deze browser staat.

44
00:02:53,550 --> 00:02:59,880
‫Gek genoeg, als ik dat naar binnen sleepte, dan krijg je iets met een invoerpin die zegt: Wat

45
00:02:59,880 --> 00:03:01,620
‫is de betaalde basisaankondiging?

46
00:03:01,620 --> 00:03:06,810
‫De basis van Locomotion-plannen had geen invoerpin omdat het je de hele animatie

47
00:03:07,260 --> 00:03:14,550
‫levert, terwijl dit doel gecompenseerd wordt omdat het een additieve animatie is, het vereist iets om bovenop toe te voegen.

48
00:03:14,550 --> 00:03:19,950
‫Dus je moet het een basishouding geven die voortkomt uit onze voortbeweging, en dan gaan we dat invoeren

49
00:03:19,950 --> 00:03:26,460
‫in onze valse houding van het mengsel, of we nu dood zijn of niet, want we zijn slechts dit laten zien als

50
00:03:26,460 --> 00:03:27,990
‫we niet dood zijn.

51
00:03:29,030 --> 00:03:36,710
‫En dan wil ik je laten zien dat als ik de toonhoogte zou veranderen in één of misschien zelfs in 180, en

52
00:03:36,710 --> 00:03:41,480
‫verder ga met compileren, je kunt zien dat hij volledig naar boven kijkt.

53
00:03:42,020 --> 00:03:44,540
‫Nu, een andere truc die ik hier wil doen, is in de gebeurtenisgrafiek.

54
00:03:44,540 --> 00:03:50,090
‫Op dit moment hebben we een nogal vervelende situatie waarin we iets niet kunnen doen

55
00:03:50,090 --> 00:03:54,830
‫in de anim-preview omdat deze wordt overschreven met nullen door onze gebeurtenisgrafiek.

56
00:03:54,830 --> 00:04:01,610
‫Een makkelijke manier om dit op te lossen is door hier te controleren of de pioneigenaar die we hier hebben

57
00:04:02,090 --> 00:04:02,910
‫geldig is.

58
00:04:02,930 --> 00:04:04,130
‫Namelijk, is het nul?

59
00:04:04,850 --> 00:04:10,730
‫Dus als put hier geldig is en degene met het vraagteken ons automatisch deze uitvoeringsknooppunten geeft en als

60
00:04:11,090 --> 00:04:18,500
‫we een update-animatie-uitvoeringsknooppunt passeren en alleen dingen instellen als dat geldig is, dan is wat er gaat gebeuren wanneer je niet echt aan

61
00:04:18,500 --> 00:04:23,900
‫het spelen bent en er is daar geen pion om ons de informatie te geven, het stelt

62
00:04:23,900 --> 00:04:26,900
‫ons in staat om het in te zetten.

63
00:04:26,900 --> 00:04:28,040
‫De Anim Preview toegevoegd.

64
00:04:28,610 --> 00:04:36,380
‫Dus nu kan ik de snelheid veranderen en je kunt zien dat hij begint te rennen met zijn richtafstand hoog ingesteld.

65
00:04:36,980 --> 00:04:41,030
‫Dus laten we dit zo instellen dat onze toonhoogte hier eigenlijk een variabele is.

66
00:04:41,030 --> 00:04:47,060
‫Dus ik ga met de rechtermuisknop op pitch klikken en promoveren naar variabele en die variabele hierheen brengen,

67
00:04:47,060 --> 00:04:50,150
‫die zichtbaar is, en de naam veranderen in pitch.

68
00:04:51,080 --> 00:04:54,470
‫Of eigenlijk, laten we specifieker zijn, dit is het doelveld zoals.

69
00:04:54,470 --> 00:05:00,230
‫Dus als we nu doorgaan en compileren, stellen we per ongeluk onze standaard richtafstand a in.

70
00:05:00,230 --> 00:05:03,110
‫We willen dat standaard op nul zetten.

71
00:05:03,530 --> 00:05:04,820
‫Ik ga door en compileer dat.

72
00:05:05,270 --> 00:05:10,970
‫En als we nu doorgaan en de snelheid veranderen en dan de richtafstand veranderen.

73
00:05:12,140 --> 00:05:16,850
‫Je kunt zien dat we omhoog en omlaag kunnen richten, en dat is precies wat we willen.

74
00:05:17,150 --> 00:05:20,120
‫Het probleem hier is dat het nog niet in een game wordt gezet.

75
00:05:20,150 --> 00:05:26,660
‫Als we op en neer gaan, komt dat allemaal niet van informatie uit onze controlerotatie en ons richten.

76
00:05:27,170 --> 00:05:31,010
‫Dus we moeten teruggaan naar onze gebeurtenisgrafiek en wat van die informatie hier krijgen.

77
00:05:31,040 --> 00:05:35,810
‫Nu, ik ga de dingen hier een beetje opfleuren, want dit wordt nogal lang.

78
00:05:36,170 --> 00:05:42,590
‫En wat ik wil doen is van deze geldige pin af, ik wil een reeksknooppunt plaatsen

79
00:05:42,680 --> 00:05:47,670
‫waarmee ik de dingen ook een beetje in verticale richting kan spreiden.

80
00:05:47,690 --> 00:05:52,980
‫Dus het sequentieknooppunt gaat allereerst de snelheid en hoek hier instellen.

81
00:05:53,000 --> 00:05:57,050
‫Dan denk ik dat we dit spul kunnen verplaatsen om te casten om een personage neer te schieten.

82
00:05:57,410 --> 00:06:04,130
‫Ik denk dat we dit verder verticaal naar beneden kunnen brengen, door verbinding te maken met die reekspin en de objectpin

83
00:06:04,130 --> 00:06:07,310
‫om te proberen -- op een knoop te komen.

84
00:06:07,340 --> 00:06:09,800
‫Dan kunnen we nog een pin aan de reeks toevoegen.

85
00:06:09,810 --> 00:06:13,580
‫En deze keer wil ik twee stukjes informatie krijgen van onze pioneigenaar.

86
00:06:14,060 --> 00:06:17,280
‫De eerste wordt een controlerotatie.

87
00:06:17,300 --> 00:06:19,820
‫Dus laten we een get-control-rotatie doen.

88
00:06:20,450 --> 00:06:26,180
‫Maar dit zal niet genoeg zijn, want als een controlerotatie, als we de pin splitsen, kun je zien dat we hier

89
00:06:26,180 --> 00:06:29,520
‫een toonhoogte hebben en we kunnen proberen die toonhoogte in te stellen.

90
00:06:29,560 --> 00:06:30,650
‫Laten we dat eens proberen.

91
00:06:31,100 --> 00:06:38,540
‫Dus als ik een vaste toonhoogte doe en het uitvoeringsknooppunt verbind met het uitvoeringsknooppunt uit onze reeks, en daar een beetje een

92
00:06:38,540 --> 00:06:44,870
‫omleiding aan toevoeg, wat gaat er gebeuren als we compileren, opslaan, op afspelen drukken en dan naar boven

93
00:06:44,870 --> 00:06:46,100
‫richten, werkt prima.

94
00:06:46,310 --> 00:06:48,530
‫Richt naar beneden draait niet om.

95
00:06:48,890 --> 00:06:52,070
‫Dan beginnen de dingen er nog vreemder uit te zien.

96
00:06:52,520 --> 00:06:59,270
‫Wat daar nu aan de hand is, is dat deze controlerotatie volledig globaal is en dus geen rekening houdt

97
00:06:59,270 --> 00:07:02,600
‫met de richting waarin onze speler al kijkt.

98
00:07:03,080 --> 00:07:10,880
‫Dus om daar rekening mee te houden, moeten we weer naar de pion gaan en de acteursrotatie krijgen.

99
00:07:10,880 --> 00:07:18,290
‫En dan willen we de rotatie vinden tussen de rotatie van de acteur en de rotatie van de controle.

100
00:07:18,680 --> 00:07:22,340
‫En de manier waarop we dit doen, is dat ik gewoon de AM-pitch loskoppel.

101
00:07:22,880 --> 00:07:28,700
‫Verbreek die link en klik met de rechtermuisknop en combineer de structuurpinnen. Ik wil een delta tussen die

102
00:07:28,700 --> 00:07:33,230
‫twee doen, zodat ik de besturingsrotatie kan verlaten en naar Delta kan zoeken.

103
00:07:34,270 --> 00:07:41,050
‫En Delta is eigenlijk een mooie manier om aftrekking tussen rotators te zeggen.

104
00:07:41,440 --> 00:07:48,760
‫Dus wat we willen doen is onze controlerotatie nemen en de basisrotatie aftrekken, wat

105
00:07:48,790 --> 00:07:50,780
‫onze actorrotatie wordt.

106
00:07:50,800 --> 00:07:55,690
‫Dus dat is B, dus het wordt A minus B als je erover zweeft, dat is wat de deltarotatie doet.

107
00:07:56,170 --> 00:08:01,600
‫En we willen eigenlijk zeggen: Ja, ik wil de controlerotatie, maar neem al die informatie

108
00:08:01,600 --> 00:08:03,580
‫over onze actieve rotatie weg.

109
00:08:03,580 --> 00:08:10,720
‫Dus ik kan gewoon weten of we op en neer mikken in verhouding tot de richting waarin mijn personage kijkt.

110
00:08:11,230 --> 00:08:17,650
‫En als ik dan de retourwaarde opsplitst die daarvoor verborgen is en de toonhoogte van daaruit gebruik, zullen we

111
00:08:17,650 --> 00:08:20,140
‫zien dat alles werkt zoals verwacht.

112
00:08:20,140 --> 00:08:26,440
‫Als ik mijn naam omhoog kijk, als ik naar beneden kijk, mik ik naar beneden en het maakt niet uit welke kant ik op

113
00:08:26,440 --> 00:08:29,380
‫sta in de wereld, dat zal altijd het geval zijn.

114
00:08:29,440 --> 00:08:33,160
‫Dus dat was het bijna voor onze doelrotatie.

115
00:08:33,190 --> 00:08:38,320
‫Het enige probleem is dat Ally op dit moment niet in staat is om op deze manier te mikken.

116
00:08:38,320 --> 00:08:46,600
‫Dus als ik een schutter-personage hier op de trap zet en dan gaan we naar hem toe om te proberen hem neer te slaan, proberen

117
00:08:46,600 --> 00:08:49,180
‫hem naar ons toe te laten komen.

118
00:08:49,480 --> 00:08:50,230
‫Hier komt hij.

119
00:08:50,590 --> 00:08:53,260
‫Je kunt zien dat hij gewoon tegen de muur schiet.

120
00:08:53,320 --> 00:08:55,960
‫Hij probeert helemaal niet te mikken, wat een beetje triest is.

121
00:08:56,350 --> 00:09:02,260
‫Dus wat is er aan de hand dat als we naar onze bondgenoot en onze gedragsboom gaan, je kunt zien dat we

122
00:09:02,260 --> 00:09:04,060
‫een standaardfocus op een locatie instellen.

123
00:09:04,060 --> 00:09:10,150
‫En standaard, als je een focus op een locatie instelt, zal Unreal je besturingsrotatie niet bijwerken op dezelfde

124
00:09:10,150 --> 00:09:13,270
‫manier als het niet de toonhoogte zal doen.

125
00:09:13,840 --> 00:09:14,860
‫Dus dat is een beetje jammer.

126
00:09:15,010 --> 00:09:21,940
‫Oké, dus wat we moeten doen is naar ons schoolbord gaan en deze spelerlocatie veranderen om alleen een verwijzing naar

127
00:09:21,940 --> 00:09:27,730
‫de speler te zijn, in plaats daarvan moeten we deze vector veranderen in een object.

128
00:09:27,790 --> 00:09:33,370
‫Dus wat we nu hebben is een blanco bordsleutel voor de speler, wat een object is, en we kunnen

129
00:09:33,370 --> 00:09:38,530
‫de basisklasse veranderen in de actor als we dat willen, hoewel het niet bijzonder belangrijk is.

130
00:09:38,980 --> 00:09:44,560
‫En wat dat dan betekent, is voorbij in de gedragsboom, we kunnen dingen veranderen zodat we

131
00:09:44,560 --> 00:09:49,270
‫naar de speler-acteur gaan in plaats van naar de locatie toe te passen.

132
00:09:49,690 --> 00:09:57,340
‫We kunnen de focus instellen op de speler-acteur en de spelerslocatie bijwerken als de scène nu

133
00:09:57,340 --> 00:10:00,370
‫ook naar een speler-acteur moet verwijzen.

134
00:10:00,370 --> 00:10:05,800
‫Dit gaat nu nog niet werken omdat onze update spelerlocatie als scène momenteel probeert een locatie

135
00:10:05,800 --> 00:10:08,110
‫in deze sleutel in te stellen.

136
00:10:08,350 --> 00:10:10,990
‫Dus een kleine mini-uitdaging voor jou, kijk of je het kunt bijwerken.

137
00:10:10,990 --> 00:10:18,760
‫Dus in plaats van de locatie in die gedragsboomservice in te stellen, stellen we de daadwerkelijke acteur pose-video in en gaan we

138
00:10:18,760 --> 00:10:19,540
‫het proberen.

139
00:10:19,660 --> 00:10:19,960
‫Oké.

140
00:10:19,960 --> 00:10:20,650
‫Welkom terug.

141
00:10:20,650 --> 00:10:25,750
‫Dus we gaan naar Visual Studio-code en zoeken in het bijzonder naar ASC-service.

142
00:10:25,750 --> 00:10:29,410
‫Het is de service die de locatie van de speler onderstreept, indien gezien.

143
00:10:29,890 --> 00:10:32,860
‫En we gaan dit veranderen in een set van ingestelde waarden als vector.

144
00:10:32,860 --> 00:10:37,030
‫Het wordt de ingestelde waarde als object, zo simpel is het.

145
00:10:37,030 --> 00:10:41,950
‫We hebben de keuze uit typen op het bord en dat gaan we hier vertellen.

146
00:10:42,370 --> 00:10:46,120
‫Het is duidelijk dat het gaat klagen dat wat we proberen te zeggen een vector is in plaats van een object.

147
00:10:46,510 --> 00:10:52,690
‫Dus we gaan gewoon de get actor-locatie verwijderen en de speler doorgeven, en in plaats daarvan is het wissen van

148
00:10:52,690 --> 00:10:54,610
‫de waarde hetzelfde als voorheen.

149
00:10:54,610 --> 00:11:00,580
‫Dus we kunnen gewoon teruggaan naar de editor, klikken, compileren en kijken of deze nieuwe opzet werkt met Aiming

150
00:11:00,580 --> 00:11:01,580
‫for the High.

151
00:11:01,630 --> 00:11:02,710
‫Kate, laten we erin duiken.

152
00:11:02,710 --> 00:11:03,310
‫Druk op spelen.

153
00:11:03,310 --> 00:11:05,560
‫Ga die lucht op de trap zoeken.

154
00:11:06,530 --> 00:11:08,680
‫Laat ze het proberen en kom op ons neerkijken.

155
00:11:08,690 --> 00:11:09,170
‫Kom op.

156
00:11:09,330 --> 00:11:16,730
‫Ik heb nog een ding dat ik ben vergeten uit de gedragsboom om bij te werken, is dat de speler kan zien op het moment

157
00:11:16,730 --> 00:11:23,600
‫dat hij is gegaan, de schoolbordtoets opnieuw instelt op zelfacteur we willen dat die speler is, in feite is de speler ingesteld, laten

158
00:11:23,600 --> 00:11:28,820
‫we gaan en breng die verandering aan, want op het moment dat ik ons niet kwam achtervolgen,

159
00:11:29,120 --> 00:11:35,030
‫zit het ons nu achterna en in feite, als je sprong, kun je bijna zien dat de doelrotatie van deze

160
00:11:35,030 --> 00:11:35,990
‫man verandert.

161
00:11:35,990 --> 00:11:40,310
‫Laten we naar de trap gaan en kijken of hij vanaf de trap op ons kan schieten.

162
00:11:40,970 --> 00:11:41,630
‫Uitmuntend.

163
00:11:41,630 --> 00:11:45,920
‫Hij heeft zijn rotatie veranderd en inderdaad hij schiet recht op ons.

164
00:11:46,190 --> 00:11:46,850
‫Beiden zijn.

165
00:11:47,030 --> 00:11:49,040
‫We zagen hem zijn gezondheid verliezen en spoedig sterven.

166
00:11:50,540 --> 00:11:51,710
‫Oké, dat was het voor deze lezing.

167
00:11:51,710 --> 00:11:59,060
‫We hebben een richtafstand toegevoegd en we hebben onze lucht geüpdatet zodat deze die ook kan gebruiken om te richten.

168
00:11:59,120 --> 00:12:03,170
‫De volgende lezing gaan we iets doen aan dit grappige rennen in de lucht.

169
00:12:03,440 --> 00:12:04,190
‫Ik zal dat zien.

