‫Hallo en welkom bij deze lezing.
‫We gaan spelen met AIM-offsets waarmee onze mesh zijn armen op en neer kan bewegen.
‫Laten we, terwijl we op en neer mikken, erin duiken en zien waar dat allemaal over gaat.
‫Dus op dit moment, als we op en neer richten, kun je zien dat de armen van onze
‫personages eigenlijk niets doen en dat het pistool er niet echt uitziet alsof het omhoog zou moeten wijzen en schieten en de
‫locatie raken die we daadwerkelijk raken .
‫Dus hoe gaan we dit veranderen?
‫Nou, het is een wijziging in een animatieblauwdruk.
‫Laten we dus doorgaan en de animatieblauwdruk als startpunt openen en deze koppelen aan ons hoofdvenster.
‫En dan wil ik je kennis laten maken met een nieuw type animatie-item dat we nog niet eerder hebben gezien.
‫We hebben overvloeiruimtes gezien, we hebben animaties gezien.
‫Het volgende dat ik je wil laten zien, is iets dat een animatie-offset wordt genoemd en in het bijzonder een
‫richt-offset.
‫Dus als we zoeken naar het trefwoord A0 in animaties, zoeken we naar deze met een kleine blauwe onderstreping die
‫AIM-offsets worden genoemd.
‫En dat zijn er een paar.
‫Ik ben geïnteresseerd in AOE-gevechten, die hier ergens zouden moeten zijn.
‫Het waren grijze, nutteloze gevechten.
‫Je gaat naar binnen, selecteert dat, dan zul je zien dat we iets hebben dat veel lijkt op onze overvloeiruimte.
‫Behalve als je deze keer de kleine groene klomp beweegt, verandert het
‫de richting waarin onze personages wijzen.
‫Dus als we naar links komen, richt hij zijn geweer naar links, wij komen naar rechts, hij
‫richt zijn geweer naar rechts.
‫En op dezelfde manier met op en neer, als je omhoog gaat, dan kijkt hij helemaal naar boven, jij zakt naar beneden,
‫hij kijkt helemaal naar beneden en probeert naar beneden te schieten.
‫Het verschil met deze en andere animaties die we hebben gezien, is dat dit een additieve animatie wordt
‫genoemd.
‫Als je naar het detailvenster gaat, kun je zien dat het additief is omdat er additieve instellingen
‫staan en er is een op animatie gebaseerde pose waarop het dit allemaal baseert.
‫Wat het eigenlijk betekent als het additief is, is dat deze animatie bovenop je andere animaties kan
‫worden toegevoegd.
‫Dus het zegt: ik kan dit richten terwijl jij rent.
‫Ik kan de informatie toevoegen over waar mijn armen zijn verplaatst ten opzichte van je hardloophouding en ze bovenaan toevoegen.
‫Dus hoe ziet dit eruit?
‫Als we naar de animatieblauwdruk gaan, willen we deze informatie toevoegen nadat we al deze informatie over voortbeweging hebben
‫toegevoegd en waarschijnlijk niet voor de dood, omdat de dood het laatste zou moeten zijn.
‫Dus we willen na de motoriek.
‫Dus we hebben al onze lopende animaties die we willen toevoegen.
‫Daarbovenop komt het kleine beetje informatie over waar onze armen moeten worden bewogen zodat we correct kunnen
‫mikken.
‫Dus om dit te doen, kunnen we met de rechtermuisknop klikken en doelverschuiving toevoegen.
‫We kunnen het ook vanuit de activabrowser doen en vervolgens naar A0 zoeken.
‫En zoals ik al zei, we zijn op zoek naar die gevechtsversie, die op een andere plaats in deze browser staat.
‫Gek genoeg, als ik dat naar binnen sleepte, dan krijg je iets met een invoerpin die zegt: Wat
‫is de betaalde basisaankondiging?
‫De basis van Locomotion-plannen had geen invoerpin omdat het je de hele animatie
‫levert, terwijl dit doel gecompenseerd wordt omdat het een additieve animatie is, het vereist iets om bovenop toe te voegen.
‫Dus je moet het een basishouding geven die voortkomt uit onze voortbeweging, en dan gaan we dat invoeren
‫in onze valse houding van het mengsel, of we nu dood zijn of niet, want we zijn slechts dit laten zien als
‫we niet dood zijn.
‫En dan wil ik je laten zien dat als ik de toonhoogte zou veranderen in één of misschien zelfs in 180, en
‫verder ga met compileren, je kunt zien dat hij volledig naar boven kijkt.
‫Nu, een andere truc die ik hier wil doen, is in de gebeurtenisgrafiek.
‫Op dit moment hebben we een nogal vervelende situatie waarin we iets niet kunnen doen
‫in de anim-preview omdat deze wordt overschreven met nullen door onze gebeurtenisgrafiek.
‫Een makkelijke manier om dit op te lossen is door hier te controleren of de pioneigenaar die we hier hebben
‫geldig is.
‫Namelijk, is het nul?
‫Dus als put hier geldig is en degene met het vraagteken ons automatisch deze uitvoeringsknooppunten geeft en als
‫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
‫het spelen bent en er is daar geen pion om ons de informatie te geven, het stelt
‫ons in staat om het in te zetten.
‫De Anim Preview toegevoegd.
‫Dus nu kan ik de snelheid veranderen en je kunt zien dat hij begint te rennen met zijn richtafstand hoog ingesteld.
‫Dus laten we dit zo instellen dat onze toonhoogte hier eigenlijk een variabele is.
‫Dus ik ga met de rechtermuisknop op pitch klikken en promoveren naar variabele en die variabele hierheen brengen,
‫die zichtbaar is, en de naam veranderen in pitch.
‫Of eigenlijk, laten we specifieker zijn, dit is het doelveld zoals.
‫Dus als we nu doorgaan en compileren, stellen we per ongeluk onze standaard richtafstand a in.
‫We willen dat standaard op nul zetten.
‫Ik ga door en compileer dat.
‫En als we nu doorgaan en de snelheid veranderen en dan de richtafstand veranderen.
‫Je kunt zien dat we omhoog en omlaag kunnen richten, en dat is precies wat we willen.
‫Het probleem hier is dat het nog niet in een game wordt gezet.
‫Als we op en neer gaan, komt dat allemaal niet van informatie uit onze controlerotatie en ons richten.
‫Dus we moeten teruggaan naar onze gebeurtenisgrafiek en wat van die informatie hier krijgen.
‫Nu, ik ga de dingen hier een beetje opfleuren, want dit wordt nogal lang.
‫En wat ik wil doen is van deze geldige pin af, ik wil een reeksknooppunt plaatsen
‫waarmee ik de dingen ook een beetje in verticale richting kan spreiden.
‫Dus het sequentieknooppunt gaat allereerst de snelheid en hoek hier instellen.
‫Dan denk ik dat we dit spul kunnen verplaatsen om te casten om een personage neer te schieten.
‫Ik denk dat we dit verder verticaal naar beneden kunnen brengen, door verbinding te maken met die reekspin en de objectpin
‫om te proberen -- op een knoop te komen.
‫Dan kunnen we nog een pin aan de reeks toevoegen.
‫En deze keer wil ik twee stukjes informatie krijgen van onze pioneigenaar.
‫De eerste wordt een controlerotatie.
‫Dus laten we een get-control-rotatie doen.
‫Maar dit zal niet genoeg zijn, want als een controlerotatie, als we de pin splitsen, kun je zien dat we hier
‫een toonhoogte hebben en we kunnen proberen die toonhoogte in te stellen.
‫Laten we dat eens proberen.
‫Dus als ik een vaste toonhoogte doe en het uitvoeringsknooppunt verbind met het uitvoeringsknooppunt uit onze reeks, en daar een beetje een
‫omleiding aan toevoeg, wat gaat er gebeuren als we compileren, opslaan, op afspelen drukken en dan naar boven
‫richten, werkt prima.
‫Richt naar beneden draait niet om.
‫Dan beginnen de dingen er nog vreemder uit te zien.
‫Wat daar nu aan de hand is, is dat deze controlerotatie volledig globaal is en dus geen rekening houdt
‫met de richting waarin onze speler al kijkt.
‫Dus om daar rekening mee te houden, moeten we weer naar de pion gaan en de acteursrotatie krijgen.
‫En dan willen we de rotatie vinden tussen de rotatie van de acteur en de rotatie van de controle.
‫En de manier waarop we dit doen, is dat ik gewoon de AM-pitch loskoppel.
‫Verbreek die link en klik met de rechtermuisknop en combineer de structuurpinnen. Ik wil een delta tussen die
‫twee doen, zodat ik de besturingsrotatie kan verlaten en naar Delta kan zoeken.
‫En Delta is eigenlijk een mooie manier om aftrekking tussen rotators te zeggen.
‫Dus wat we willen doen is onze controlerotatie nemen en de basisrotatie aftrekken, wat
‫onze actorrotatie wordt.
‫Dus dat is B, dus het wordt A minus B als je erover zweeft, dat is wat de deltarotatie doet.
‫En we willen eigenlijk zeggen: Ja, ik wil de controlerotatie, maar neem al die informatie
‫over onze actieve rotatie weg.
‫Dus ik kan gewoon weten of we op en neer mikken in verhouding tot de richting waarin mijn personage kijkt.
‫En als ik dan de retourwaarde opsplitst die daarvoor verborgen is en de toonhoogte van daaruit gebruik, zullen we
‫zien dat alles werkt zoals verwacht.
‫Als ik mijn naam omhoog kijk, als ik naar beneden kijk, mik ik naar beneden en het maakt niet uit welke kant ik op
‫sta in de wereld, dat zal altijd het geval zijn.
‫Dus dat was het bijna voor onze doelrotatie.
‫Het enige probleem is dat Ally op dit moment niet in staat is om op deze manier te mikken.
‫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
‫hem naar ons toe te laten komen.
‫Hier komt hij.
‫Je kunt zien dat hij gewoon tegen de muur schiet.
‫Hij probeert helemaal niet te mikken, wat een beetje triest is.
‫Dus wat is er aan de hand dat als we naar onze bondgenoot en onze gedragsboom gaan, je kunt zien dat we
‫een standaardfocus op een locatie instellen.
‫En standaard, als je een focus op een locatie instelt, zal Unreal je besturingsrotatie niet bijwerken op dezelfde
‫manier als het niet de toonhoogte zal doen.
‫Dus dat is een beetje jammer.
‫Oké, dus wat we moeten doen is naar ons schoolbord gaan en deze spelerlocatie veranderen om alleen een verwijzing naar
‫de speler te zijn, in plaats daarvan moeten we deze vector veranderen in een object.
‫Dus wat we nu hebben is een blanco bordsleutel voor de speler, wat een object is, en we kunnen
‫de basisklasse veranderen in de actor als we dat willen, hoewel het niet bijzonder belangrijk is.
‫En wat dat dan betekent, is voorbij in de gedragsboom, we kunnen dingen veranderen zodat we
‫naar de speler-acteur gaan in plaats van naar de locatie toe te passen.
‫We kunnen de focus instellen op de speler-acteur en de spelerslocatie bijwerken als de scène nu
‫ook naar een speler-acteur moet verwijzen.
‫Dit gaat nu nog niet werken omdat onze update spelerlocatie als scène momenteel probeert een locatie
‫in deze sleutel in te stellen.
‫Dus een kleine mini-uitdaging voor jou, kijk of je het kunt bijwerken.
‫Dus in plaats van de locatie in die gedragsboomservice in te stellen, stellen we de daadwerkelijke acteur pose-video in en gaan we
‫het proberen.
‫Oké.
‫Welkom terug.
‫Dus we gaan naar Visual Studio-code en zoeken in het bijzonder naar ASC-service.
‫Het is de service die de locatie van de speler onderstreept, indien gezien.
‫En we gaan dit veranderen in een set van ingestelde waarden als vector.
‫Het wordt de ingestelde waarde als object, zo simpel is het.
‫We hebben de keuze uit typen op het bord en dat gaan we hier vertellen.
‫Het is duidelijk dat het gaat klagen dat wat we proberen te zeggen een vector is in plaats van een object.
‫Dus we gaan gewoon de get actor-locatie verwijderen en de speler doorgeven, en in plaats daarvan is het wissen van
‫de waarde hetzelfde als voorheen.
‫Dus we kunnen gewoon teruggaan naar de editor, klikken, compileren en kijken of deze nieuwe opzet werkt met Aiming
‫for the High.
‫Kate, laten we erin duiken.
‫Druk op spelen.
‫Ga die lucht op de trap zoeken.
‫Laat ze het proberen en kom op ons neerkijken.
‫Kom op.
‫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
‫dat hij is gegaan, de schoolbordtoets opnieuw instelt op zelfacteur we willen dat die speler is, in feite is de speler ingesteld, laten
‫we gaan en breng die verandering aan, want op het moment dat ik ons niet kwam achtervolgen,
‫zit het ons nu achterna en in feite, als je sprong, kun je bijna zien dat de doelrotatie van deze
‫man verandert.
‫Laten we naar de trap gaan en kijken of hij vanaf de trap op ons kan schieten.
‫Uitmuntend.
‫Hij heeft zijn rotatie veranderd en inderdaad hij schiet recht op ons.
‫Beiden zijn.
‫We zagen hem zijn gezondheid verliezen en spoedig sterven.
‫Oké, dat was het voor deze lezing.
‫We hebben een richtafstand toegevoegd en we hebben onze lucht geüpdatet zodat deze die ook kan gebruiken om te richten.
‫De volgende lezing gaan we iets doen aan dit grappige rennen in de lucht.
‫Ik zal dat zien.