‫Hallo en welkom.
‫In deze lezing gaan we kijken naar het aansluiten van onze karakterbeweging, zodat we onze
‫strijd kunnen voortzetten en onze wereld kunnen rondkijken.
‫De klassiekers van bewegen in een first person of third person shooter.
‫Laten we erin duiken en kijken hoe het gedaan is.
‫Dus doorgaand in de trant van het proberen om onze karakterbeweging werkend te krijgen, zullen we allereerst
‫wat input willen binden, maar we zullen ook willen weten waaraan we die input moeten
‫binden.
‫Gelukkig, als het op karakters aankomt, zijn er veel dingen die ons vereenvoudigen.
‫Unreal is tenslotte echt een engine die is geoptimaliseerd voor het maken van dingen als schietspellen,
‫karakterspellen.
‫En laten we eens kijken naar enkele van de bewegingsfuncties die al voor ons worden geleverd door de
‫karakteracteurklasse, niet alleen de karakterbewegingscomponent, maar ook de karakteracteurklasse biedt deze en geeft vaak
‫veel hiervan door aan de karakterbewegingscomponent , maar niet noodzakelijk zo.
‫Laten we eens kijken met welke bewegingsfuncties we te maken krijgen.
‫Allereerst zal er bewegingsinvoer worden toegevoegd.
‫Bewegingsinvoer toevoegen neemt in feite een vector en vertelt je in welke richting je gaat bewegen.
‫Dus als het een voorwaartse vector is, ga je vooruit.
‫Als het een achterwaartse vector is, ga je achteruit.
‫Als het de juiste vector was, ga je naar rechts enzovoort.
‫En de grootte van de vector gaat bepalen hoe snel je in die richting beweegt.
‫Het volgende is dat we de pitch-invoer van de controller hebben toegevoegd.
‫Dat is dus op en neer kijken, wat natuurlijk erg handig is.
‫Als je een muis hebt, wil je op en neer kunnen kijken door je muis op en neer te bewegen.
‫Dan als controller toevoegen, uw invoer, die naar links en rechts gaat.
‫En tot slot is er een springfunctie, namelijk dat je misschien op de spatiebalk drukt en springt.
‫Dus met deze dingen in gedachten, willen we doorgaan en doen we enkele bindingen in
‫een karakteracteurklasse die enige invoer binden.
‫Dus wat input op je toetsenbord, je muis, je controller voor deze functies, dus we kunnen er een paar doen en dan gaan we een
‫uitdaging doen om de rest te doen.
‫Dus laten we naar de Visual Studio-code gaan en ik ben in mijn shoot een karakter dot h en
‫we merken dat we hier al een speler-invoercomponentfunctie hebben ingesteld.
‫Dit is waar we onze invoer moeten binden en op F12 moeten drukken om naar C++ te gaan.
‫Ik ga op Alt oh drukken om naar de C++ te gaan en uit te zoeken waar we dat hebben ingesteld.
‫Dus het eerste is dat het ons deze inputcomponent van de plant geeft waarmee we ons willen binden.
‫Als je het je herinnert, is dit de manier waarop we het doen.
‫We hebben een spelerinvoercomponent, we gebruiken de pijl-operator en we doen dan hier een bindfunctie.
‫Het is dus ofwel een bind-toegang of het wordt een bind-actie, afhankelijk van of het een discrete actie is, zoals
‫springen, of dat het een actie is met een waarde zoals omhoog en omlaag kijken of bewegen.
‫Nu, zelfs als we beweging doen met een sleutel, hebben we nog steeds de neiging om het te binden met behulp van een as.
‫Dus ik ga eigenlijk een typefout maken voor het eerste deel van deze video.
‫Ik zal het later corrigeren, maar ga je gang en gebruik hier de bind-as in plaats van de bind-actie.
‫Dus om echt een stap verder terug te gaan, moeten we doorgaan en deze acties en assen instellen in
‫onze projectinstellingen.
‫Dus laten we teruggaan naar Unreal.
‫Ga naar instellingen, projectinstellingen, en dan ga ik dit vastzetten zodat we het heel duidelijk
‫kunnen zien en we gaan naar het invoergedeelte.
‫Dus motorinvoer en een aantal assentoewijzingen en enkele actietoewijzingen instellen.
‫Dus degene die ik meteen ga behandelen, zijn de assentoewijzingen, want we zullen in de eerste
‫plaats een stap voorwaarts maken.
‫En we gaan ook een kijkje nemen.
‫Onthoud dat we geen beweging vooruit en achteruit hebben, omdat we dat gewoon kunnen doen met
‫een negatieve schaal.
‫Dus ik wil bijvoorbeeld mijn W Quay opzetten als mijn stap vooruit.
‫Dat is dus schaal één.
‫Maar als ik wil dat mijn esky mijn beweging terug is, kan ik nog steeds vooruit gebruiken, maar geef het de schaal van min
‫één.
‫Even een herinnering voor jou.
‫Hetzelfde met omhoog kijken.
‫Ik ga de muis gebruiken, dit zal de invoer van de controller dekken.
‫In de volgende lezing gaan we de muis y gebruiken.
‫Nu, onthoud, waarom is degene die op en neer gaat in plaats van links en rechts?
‫Omdat het een beetje groter is, niet?
‫Waarom is een iets grotere letter dan een X?
‫Zo herinner ik het me in ieder geval.
‫Dus muis Y gaat op en neer.
‫En dan moeten we de schaal aanpassen, kijken of het de goede kant opgaat.
‫Maar eigenlijk geeft dit ons negatieve waarden als we dalen en positieve waarden als we stijgen.
‫Het kan dus zijn dat we moeten tweaken met opzoeken om te zien of dit in de goede richting gaat.
‫Maar je krijgt het idee dat we de schaal kunnen omkeren of niet, afhankelijk van het type invoer dat hier
‫binnenkomt.
‫Dus zodra we de toegangsnaam hebben, kunnen we teruggaan naar de C++.
‫We gaan het binden met behulp van de tekstmacro en de tekst van de toegangsnaam.
‫Dan moeten we zeggen op wie we de functie gaan aanroepen en welke functie we gaan aanroepen.
‫We hebben momenteel geen functie die we willen aanroepen.
‫Dus ik ga een nieuwe privéfunctie maken in mijn C++-headerbestand.
‫En het wordt een ongeldige functie die vooruit zal worden genoemd.
‫En het zal de vlotter nemen, wat de aswaarde zal zijn.
‫Eindig met een puntkomma en ik heb een trucje, een kleine uitbreiding hier die me helpt deze dingen een beetje
‫sneller te implementeren door control shift p en uit te voeren.
‫Als ik maak implementatie typ, gaat het door en maakt die implementatie voor mij in het C++-bestand.
‫Echt leuk en makkelijk.
‫De naam van die extensie.
‫Als ik eroverheen ga, vergeet ik altijd de namen van mijn extensies, dus ik ga kijken wat het zou kunnen
‫zijn.
‫Ik denk dat het hier een beetje doozy is, de C++-helper.
‫Als je doorgaat en deze installeert voor je spraakcode, kun je dat soort dingen gewoon doen, wat erg
‫leuk, erg handig is.
‫Dit is dus de functie die we willen instellen om aan te roepen.
‫Dus allereerst zeggen we dit.
‫Dit is het doel.
‫Het huidige object is het doel voor deze functie.
‫Dan gaan we verder en plaatsen de kwestie in de volledig gekwalificeerde functiekwestie, op karakter, dubbele punt, dubbele
‫punt, vooruit, en dat zou aan deze functie moeten binden.
‫En tot slot, wat we willen doen, is die aswaarde doorgeven aan de functie die we eigenlijk
‫willen aanroepen, wat een bovenliggende functie is.
‫We hoeven dus niets te doen.
‫We kunnen gewoon advertentiebewegingen doen.
‫Voer zo in.
‫Dus omdat dit de voorwaartse methode is, willen we de voorwaartse vector van de actor hebben.
‫Dus de manier waarop we dat doen, is dat we een actor-voorwaartse vector kunnen doen, zoals zo, en dan willen we dat het voorwaarts is in
‫de hoeveelheid die onze toegangswaarde ons geeft, zodat we kunnen vermenigvuldigen met de aswaarde.
‫En dat gaat ons het juiste resultaat geven.
‫Dus we gaan de voorwaartse vector vermenigvuldigen met de aswaarde.
‫Als het één is, gaan we vooruit, als het min één is, wordt een voorwaartse vector een achterwaartse vector en
‫gaan we achteruit met alleen deze ene functie.
‫Dus dat heeft ons klaargemaakt om vooruit te gaan.
‫Super goed.
‫Het volgende ding is om te binden voor onze look-up.
‫Dus laten we gaan en kopiëren.
‫Ik vind het altijd leuk om deze tekenreeksverwijzingen te kopiëren, zodat ik geen fouten maak.
‫Kijk omhoog en in plaats van te binden om verder te gaan, laten we
‫teruggaan naar de kop van het bestand en iets nieuws creëren dat steeds opnieuw zal worden opgezocht, een float-toegangswaarde.
‫Zoals zo.
‫En als ik shift P beheer en het doe, gaat de implementatie door en bespaart me wat tijd.
‫En deze keer willen we, in plaats van bewegingsinvoer toe te voegen, een van die andere functies gebruiken die we
‫tot onze beschikking hadden.
‫Namelijk de pitch-invoer van de advertentiecontroller omdat ik in principe wil pitchen.
‫Dus deze keer kunnen we ad controller doen.
‫Pitch-invoer en pas en direct de aswaarde.
‫Nutsvoorzieningen.
‫Nu een wat meer ervaren C++ programmeur onder jullie zou kunnen zeggen Hey, deze functie doet eigenlijk
‫niets.
‫Het roept gewoon een andere functie aan met dezelfde parameter.
‫Dus het doet niet echt veel.
‫En je zou gelijk hebben.
‫Dus wat we zouden kunnen doen, is een shoot doen, een personage opzoeken.
‫Dus we zouden de functie die voor deze klasse was gedefinieerd het shooter-personage kunnen noemen.
‫Of we zouden kunnen zeggen, nou ja, er zijn controletoonhoogte-ingangen die we dat gewoon direct zouden kunnen noemen, nietwaar?
‫Dus als we F12 gebruiken om uit te zoeken waar dat is gedefinieerd en je gaat ernaartoe en navigeert, kun je zien dat
‫het in feite wordt gedefinieerd -- punt h.
‫Dus als je naar boven scrolt, kun je helemaal naar boven zien waar we een klasseloze gaan vinden.
‫Het kan zelfs gewoon zoeken naar klasse, ruimte, iets dergelijks.
‫En hier hebben we een is de klas.
‫Dus laten we teruggaan naar de opname van karakter en wat we kunnen proberen en dit een
‫beetje korter maken door in plaats daarvan te zeggen, laten we een -- dubbele punt, dubbele punt toevoegen controller toonhoogte invoer zodat het automatisch
‫die ouderfunctie rechtstreeks aanroept in plaats van via onze eigen functie moeten gaan.
‫Dit is ook een geldige manier om het te doen, maar het is gewoon niet nodig.
‫Dus ik ga er commentaar op geven, zodat je ernaar kunt verwijzen en het kunt zien als je het op die manier wilt doen.
‫Maar ik zou aanraden om de iets kortere route zo te doen.
‫Ik zal het proberen te compileren.
‫Ik merkte dat ik in plaats van achter Access te bellen, zoals ik had willen doen, blinde
‫actie uitvoerde.
‫Dus je hebt waarschijnlijk de hele tijd tegen je scherm geschreeuwd.
‫Laten we doorgaan en dat opnieuw bouwen.
‫Trouwens, ik doe dat met een control shift B en selecteer de build-optie.
‫Dat is de eenvoudige shooter-editor win 64 development build, wat voor mij maar een kortere weg is dan eroverheen te gaan
‫en op de compileerknop te drukken.
‫Ik zal kijken en ik krijg mijn syntaxis vandaag niet goed.
‫Natuurlijk moeten we de ampersand voor deze functie gebruiken om in feite te zeggen dat we de
‫aanwijzer willen krijgen.
‫We willen het ampersand voor deze functies gebruiken om hier daadwerkelijk de juiste syntaxis te hebben.
‫Oké.
‫Dus nadat ik die twee veelvoorkomende fouten had gecorrigeerd, de ene is dat ik de verkeerde functieaanroep heb en de
‫andere is dat ik geen ampersand heb voor de functies die ik probeer te gebruiken.
‫Laten we naar Unreal gaan en kijken of dit echt werkt.
‫Als ik doorga en op play druk en de W-toets en de toets gebruik, kun je zien dat ik vooruit en achteruit kan gaan.
‫Het is geweldig.
‫En met de muis kan ik op en neer kijken.
‫Maar het voelt op dit moment omgekeerd aan mijn beweging.
‫Dus ik ga gewoon naar de instellingen en druk op min één daar en ga je gang en druk op play.
‫En als ik nu op en neer ga, voelt het correct.
‫Merk op dat ik eigenlijk op twee verschillende locaties spawn.
‫Dat komt omdat ik een start moet spelen.
‫Toen ik de tweede erin stopte, realiseerde ik me niet dat er al een in het level
‫was, daarom sport ik soms hier, soms op een andere locatie.
‫Misschien vind je hetzelfde.
‫Het is dus uitdagingstijd.
‫Laten we ervoor zorgen dat jullie je bewegingen en je kijkrechten binden, zodat we volledige controle hebben over onze
‫bewegingen.
‫Dus herhaalt het proces dat ik zojuist heb gedaan in de lezing voor deze twee, en je hebt
‫het waarschijnlijk gevolgd.
‫Zo niet, dan kunt u gaan kijken om te herzien.
‫En ik zou ook willen dat je ook de springfunctie probeert als je je moedig voelt, pauzeer, video maakt en het
‫probeert.
‫Oké.
‫Welkom terug.
‫Dus laten we dit een kans geven.
‫Allereerst herhalen we de bovenstaande stappen om vooruit te gaan en omhoog te kijken.
‫Dus we gaan verhuizen, toch?
‫En we zullen hebben in plaats van omhoog te kijken, we zullen naar rechts kijken.
‫En we kunnen doorgaan en deze kopiëren om onze assen in de projectinstellingen in te stellen.
‫Dus voeg nog een paar assentoewijzingen toe.
‫De eerste is verplaatsen, rechts, wat ik naar de sleutel ga toewijzen, een vier naar links.
‫Dus dat wordt de min één wordt min één omdat we eigenlijk het tegenovergestelde rechts hebben
‫gelaten.
‫En D wordt nu vier.
‫Uiteraard kunt u hier ook de pijltjestoetsen toevoegen.
‫Ik doe dat gewoon niet om tijd te besparen.
‫Maar je kunt doorgaan en hetzelfde doen.
‫U kunt hier gewoon meer sleutels toevoegen.
‫Zoveel gevallen als u wilt toewijzen aan die enkele as-look.
‫Goed, we gaan de muis x gebruiken.
‫En ik denk dat één voldoende zou moeten zijn in plaats van min één.
‫Ik denk niet dat we deze moeten omkeren.
‫En wat we dan gaan doen, is dat we dit iets anders gaan binden.
‫Dus ik ga alt oh om te gaan en hier een bewegings-rechts-functie te creëren.
‫Nu vraag je je misschien af, waarom doen we dit anders?
‫Waarom is bewegen goed?
‫Waarom bellen we niet gewoon rechtstreeks om bewegingsinput toe te voegen?
‫Het verschil is dat we hier een beetje aan het rekenen zijn.
‫We voegen deze vermenigvuldiging toe met een vector, die een beetje informatie toevoegt en het bestaan
‫van deze functie rechtvaardigt.
‫Dus deze keer, in plaats van de act naar voren te halen, willen we de acteur naar de juiste vector krijgen en deze
‫vermenigvuldigen met de aswaarde en dan willen we bellen in plaats van vooruit te gaan.
‫Wil je nu verhuizen voor kijken.
‫Rechts.
‫In plaats van de pitch-invoer van de controller toe te voegen, willen we uw invoer doen.
‫Onthoud roll pitch en je komt uit vliegtuigen.
‫Je kunt het opzoeken op Wikipedia als je niet zeker weet welke welke is.
‫Ga je gang en bouw die.
‫Hopelijk heb ik deze keer de syntaxis niet verkeerd.
‫Laten we naar de editor duiken en op play drukken en ze gaan, ik kan helemaal om me heen kijken.
‫Dat ziet er goed uit.
‫Ik kan links en rechts schieten.
‫Ik kan vooruit en achteruit.
‫Dus het ding dat voor ons overblijft is springen, wat een actie-mapping wordt in plaats van een as, omdat het een
‫discrete actie is, noem het, spring en kopieer het.
‫Ga naar Visual Studio-code.
‫En heb zojuist mijn compileervenster gesloten.
‫En hier ga ik in plaats van een as te vinden, je hebt het.
‫Ik ga een actie binden actie.
‫Simpel als dat.
‫Het begint nog steeds met de tekst hier.
‫Van springen.
‫Maar dat is anders met bijlen, zoals u zich waarschijnlijk herinnert.
‫En dus moeten we een syntaxis gebruiken I inputs events, wat een opsomming is, wat betekent dat het in
‫principe een aantal van deze verschillende opties kan gebruiken, dubbelklikken, persbericht, enz..
‫We willen zo op de pers springen.
‫Dus.
‫Dus dat is IEEE Underscore Press.
‫En als we dat eenmaal weten, kunnen we doorgaan en hetzelfde doen en dan willen we bellen om
‫te springen.
‫Waar is springen nu te vinden?
‫Is het in het zwembad?
‫Laten we eens kijken.
‫Nee, maar het kan in het karakter zitten.
‫Dus ik ga een controle P doen en een personage zoeken.
‫H.
‫Open dat en kijk hier eens door, kijk of ze hier een springfunctie hebben gedefinieerd.
‫Springen en dan haakjes openen is vaak een goede manier om te zoeken naar functies in de header-bestanden.
‫En ja hoor, we hebben die functie.
‫U kunt de documentatie bekijken.
‫Ik gebruik de broncode vaak liever rechtstreeks dan documentatiebestanden op te zoeken.
‫Ik vind het soms gewoon een stuk sneller om toegang te krijgen, vooral als je toegang hebt tot p en
‫Visual Studio Code.
‫Dus wat we moeten doen is in plaats van een slechte dubbele punt, dubbele punt, we moeten een karakter dubbele punt maken.
‫Kalonzo Het wordt een ampersand, een kolom met een dubbele punt.
‫Dit komt omdat dat de klassen zijn die zijn gedefinieerd op, we kunnen de hiërarchie niet opzoeken
‫als we deze dubbele punt, dubbele punt-operator doen en dan wordt het gewoon springen.
‫Dus karakter, dubbele punt, dubbele punt springen.
‫En vergeet niet dat ik een puntkomma nodig heb.
‫De onderstreepte ga je gang en bouw en kijk of je nu kunt springen.
‫Nou, de riem is goed gelukt.
‫Laten we naar het sandbox-niveau gaan.
‫Druk op play en probeer te springen.
‫Ik heb geen sleutel gebonden, dus dat kan me hinderen.
‫Voeg de spatiebalk toe als de sleutel die ik wil springen en ga je gang en druk op play.
‫Ja.
‫Ik kan op en neer springen en door de lucht bewegen en rondlopen.
‫Fantastisch.
‫Dus we hebben geleerd hoe we assen en acties kunnen binden waar we het niet hebben geleerd.
‫We hebben het herzien, maar we hebben gezien waar we ons aan willen binden in een personage
‫om dat klassieke personage te laten springen, beschieten, bewegen en kijken met je camera die we allemaal kennen en waarderen van
‫onze shooters.
‫In de volgende lezing zullen we kijken naar de nuances die nodig zijn om zowel met een controller als met een toetsenbord te bewegen.
‫Een muis.