‫Hallo en welkom.
‫In deze lezing gaan we beweging van de controller toevoegen, zodat we ons kunnen
‫verplaatsen met een controller, wat je hier ziet gebeuren, dit doen we met een andere set assen.
‫Kijk naar rechts en kijk naar rechts.
‫Rechts.
‫En we zullen zien waarom dat nodig is.
‫Laten we erin duiken en ontdekken waarom.
‫Dus we willen ons door onze scène kunnen verplaatsen met behulp van de controller.
‫Ik kan dit al doen als ik niet in de afspeelmodus ben.
‫We willen dus dezelfde soort beweging als deze kunnen doen met pannen met de rechter
‫joystick en met links en rechts bewegen met onze linker joystick.
‫En we kunnen ook op en neer gaan.
‫Maar dat is niet iets wat de app gaat doen, want het is geen vliegende --.
‫Dus wat we willen doen, is dat het in de eerste plaats eenvoudig is om de beweging in kaart te brengen.
‫Wat we moeten doen is naar onze projectinstellingen gaan, naar beneden gaan naar waar input is, motorinputs, en we
‫hebben onze voorwaartse as en we hebben ook onze bewegings-rechteras.
‫En dat is vrij eenvoudig om nog een andere mapping toe te voegen, evenals W en S, we kunnen onze
‫gamepad toevoegen.
‫Als we op de gamepad kijken, kun je de linker thumbstick zien, we willen de y-as om vooruit te gaan,
‫voor het bewegen naar rechts.
‫We gaan weer de gamepads toevoegen en het is de gamepad, nog steeds de linker joystick.
‫Maar deze keer doen we de x- en y-as en we kunnen zien of dat de juiste soort beweging is.
‫Dus ga je gang en druk op play.
‫Ik gebruik ULP als mijn snelkoppeling daarvoor.
‫Dan werkt links en rechts vooruit en achteruit zoals we zouden verwachten.
‫Maar draaien werkt natuurlijk niet want dat hebben we nog niet in kaart gebracht.
‫Dus laten we dat eens proberen.
‫Als we naar instellingen gaan, projectinstellingen en opnieuw invoeren.
‫Laten we eens kijken.
‫Opzoeken.
‫We gebruiken momenteel de muis y.
‫Wat zou er mis zijn om hier gewoon aan toe te voegen?
‫Bijvoorbeeld de gamepad, de rechter joystick en deze keer de y-as?
‫Nou, bij de eerste poging kunnen we wat gaan spelen.
‫Dit lijkt misschien in orde te zijn.
‫Dus we gaan naar binnen en je kunt zien dat we kunnen bewegen.
‫Ja tuurlijk.
‫Het is een beetje snel, maar het is goed, nietwaar?
‫Is dat niet oké?
‫Nou niet echt.
‫En de reden komt uiteindelijk neer op framesnelheden en hoe deze assen werken.
‫Dus wat gebeurt er met een muis als we een game spelen met 30 frames per seconde?
‫Als we onze muis met een soort gelijke snelheid van links naar rechts over het scherm bewegen, kunnen
‫we zien dat de assen ongeveer tien, dan tien, dan tien zijn.
‫En dit vertelt ons dat elke keer dat de muis tien eenheden naar rechts is verplaatst en hij dit
‫elk frame hetzelfde doet.
‫Wat gebeurt er als we onze framerate verdubbelen?
‫Welnu, plotseling beweegt de muis nog steeds met dezelfde snelheid omdat de speler zijn hand nog steeds
‫met dezelfde snelheid beweegt.
‫Maar omdat we vaker frames laten zien, we hebben vaker tikken, en wat er gaat gebeuren, is
‫dat de invoer van de assen daadwerkelijk wordt gehalveerd.
‫Elke keer krijgen we vijf, vier, vijf, vier, vijf, vijf, vijf.
‫Zo geweldig, dat is prima, want dat betekent dat we nog steeds met dezelfde snelheid over
‫ons scherm zullen pannen, of we nu een snelle of een langzame computer hebben.
‫Als we onze muis met een bepaalde hoeveelheid bewegen, zul je dezelfde hoeveelheid beweging opmerken, en dat is wat
‫we willen.
‫Nu veranderen de dingen een beetje als we naar de controller kijken, laten we zeggen dat we vol gas naar
‫rechts gaan met onze analoge controller en het is 30 frames per seconde.
‫We krijgen er één, dan één, dan één.
‫Logisch, toch?
‫Hoe zit het als het 60 frames per seconde is?
‫We krijgen er nog steeds één, dan één, dan één, dan één.
‫Maar we krijgen er meer omdat we meer frames krijgen.
‫Als je dat direct gebruikt om de beweging van je -- te beïnvloeden, zul je zien dat het beweegt met twee
‫keer de snelheid, met twee keer de framesnelheid, niet wat we willen.
‫Dus wat we willen doen, is hier wat framerate-onafhankelijkheid introduceren.
‫Dus om dit te doen, moeten we kunnen vermenigvuldigen met de Delta-tijd.
‫We willen de invoeras gebruiken om ons te helpen de rotatiesnelheid te moduleren.
‫Dus dat is een beetje om in te nemen.
‫Maar wat ik bedoel is dat we iets als een rotatiesnelheidsvariabele moeten hebben.
‫We gaan daar een nieuwe eigenschap voor maken, die overal kan worden bewerkt en
‫we zullen het een float laten zijn en het wordt de rotatiesnelheid.
‫Nu ga ik dezelfde rotatiesnelheid gebruiken voor zowel omhoog als links en rechts.
‫U kunt doorgaan en voor beide een afzonderlijke variabele hebben.
‫En ik weet niet echt wat een goede rotatiesnelheid hier zal zijn.
‫Ik ga hier maar een vluchtige gok doen, want ik weet niet zeker wat de betrokken eenheden hier zijn, dus ik
‫ga gewoon door en zeg tien, maar we zullen zien.
‫Misschien is dat veel te snel.
‫Misschien is dat veel te traag.
‫We kunnen dat in onze blauwdruk aanpassen, zodat we dat kunnen opslaan.
‫Ik ga trouwens ook naar de C++ om over te schakelen naar de C++.
‫En we willen een nieuw type toegang hebben, zodat we onderscheid kunnen maken tussen de verhuizing.
‫Rechts, dat is de directe beweging van de muis versus de beweging.
‫Rechts?
‫Of eigenlijk sorry, de blik.
‫Juist, dat is het tarief.
‫Dus we gaan dat doen door naar onze projectinstellingen te gaan en in plaats van deze gamepad de linker thumbstick
‫toe te wijzen aan de verhuizing.
‫Juist, sorry, niet de linker iets maar de rechter in kaart gebracht om omhoog te kijken.
‫Ik blijf die fout maken, verwijder die van de as en voeg een nieuwe as toe die de look gaat worden.
‫Omhoog.
‫Rechts.
‫En dit gaat een gamepad in beslag nemen, toch?
‫Gamepad dus.
‫Rechts.
‫Y-as.
‫Omdat het een look-up is en we zeggen dat positieve degene zou moeten zijn die we gebruiken.
‫Dus wat we dan kunnen doen, is dat we dit in kaart moeten brengen en we willen het niet rechtstreeks aan de ADD-controller toewijzen.
‫U bent omdat we een beetje wiskunde moeten doen om de tarieven te berekenen en die tarieven framerate-onafhankelijk
‫te maken.
‫Dus wat we gaan doen is naar Ultimo gaan en een look-up maken, wat handig is dat we hier
‫al hebben.
‫En ik ga het creëren als kijk omhoog, rechts en ga je gang en creëer deze controleverschuiving.
‫P En ik kijk, gebruik mijn juiste implementatie plug-in.
‫Laten we doorgaan en de implementatie van het tarief opzoeken.
‫Komt er een aswaarde binnen?
‫Dat is geweldig.
‫We willen er dan zeker van zijn dat dit is wat we noemen bij het instellen van de spelerinvoercomponent.
‫Dus laten we hier een nieuwe regel maken, de look dupliceren.
‫Goed, ik noem het opzoeken.
‫Juist, like zo en kopieer en plak dan de .
‫Volledig gekwalificeerde verwijzing naar de functie die moet worden aangeroepen.
‫Ik kijk dan gelijk omhoog.
‫Wat we aan het eind van de dag willen noemen, is het toevoegen van controller-invoer, pitch-controller
‫pitch-invoer.
‫Maar we willen dit vermenigvuldigen met een paar dingen.
‫Dus toegangswaarde komt binnen als een waarde tussen nul en één.
‫Als we dat vermenigvuldigen, wordt de aswaarde vermenigvuldigd met de rotatiesnelheid.
‫Dan krijgen we een snelheid.
‫Maar wat we willen is eigenlijk een afstand.
‫Net als toen we onze muis bewogen, bewogen we op een bepaalde afstand, elk frame.
‫Dat is wat er binnenkwam.
‫Deze snelheid willen we omrekenen naar afstand.
‫En als je je ooit herinnert, een vage wiskundeles, om van snelheid naar afstand te komen, moeten we
‫vermenigvuldigen met de hoeveelheid tijd.
‫Dus dat doen we door onze Deltaseconden van de wereld te halen.
‫Wat zijn Delta-seconden?
‫Dat is de hoeveelheid tijd die nodig was voor het laatste frame.
‫Dus het is een beetje het tegenovergestelde van de framesnelheid.
‫Het vertelt ons hoe lang een frame duurt, wat geweldig is, want dat is de hoeveelheid tijd die we nodig hebben om
‫deze beweging toe te passen.
‫Dus als je erover nadenkt, we hebben snelheid, we hebben een hoeveelheid tijd die we nodig hebben om die snelheid
‫toe te passen.
‫Het geeft ons een hoeveelheid beweging die we in wezen willen toepassen op onze pitch-invoer van de controller.
‫Dus dat is wat we willen.
‫Pak de wereld, in de eerste plaats, omdat we het niveau willen krijgen van, je weet wel, de wereld om ons heen krijgen.
‫En dan gebruiken we de pijlfunctie om Delta-seconden te krijgen, wat ons vertelt dat we de hoeveelheid tijd willen krijgen die is verstreken
‫in het laatste frame, wat ons opnieuw deze benadering geeft van onze framesnelheid bij
‫de huidige moment in de tijd.
‫Nu vraag je je misschien af waarom we niet hetzelfde doen met de bewegingsinvoer.
‫En de reden is dat de bewegingsinvoer, wanneer je daar een advertentie-invoer doet, al
‫veronderstelt dat dat een snelheid is, niet een daadwerkelijke hoeveelheid beweging.
‫Dus het doet deze berekening al voor ons, in wezen onder de motorkap, slaat de bestanden op, gaat
‫over naar onwerkelijk en compileert en kijkt of dit het waard is.
‫Dus laten we beginnen met spelen en ik ga proberen mijn controller-invoer te gebruiken.
‫Daar gaan we.
‫We gaan nogal langzaam op en neer.
‫Maar hopelijk is dit volledig framerate-onafhankelijk omdat we die delta-tijd hebben gebruikt.
‫Dus wat ik wil dat je doet, is doorgaan en de juiste look implementeren.
‫Herhaal dus dezelfde methode die is ingesteld om er goed uit te zien, zoals hij deed om omhoog te kijken en de snelheid aan te passen,
‫zodat het niet erg langzaam gaat en je het daadwerkelijk kunt gebruiken om door het niveau te bewegen.
‫Pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus de eerste stap was dat we een nieuwe astoewijzing gingen maken in onze projectinstellingen.
‫Dat gaan we nog een keer doen, dit keer voor de look.
‫Rechts?
‫Rechts.
‫Zo wat een mondvol.
‫Dan gaan we de gamepad halen.
‫De rechten deze keer en de X-as.
‫Daar gaan we op in kaart brengen.
‫En dan gaan we al die tijd naar haar toe om haar hoofd eraf te schieten.
‫Ik ga de look-up nu dupliceren.
‫Laat me je de bestanden laten zien, zodat je aan de linkerkant kunt zien waar ik ben.
‫Dus nogmaals, ik heb in plaats van omhoog te kijken.
‫Rechts.
‫Het zal de uitstraling zijn.
‫Rechts.
‫Controle shift p geweldige implementatie.
‫En we zullen vrijwel exact dezelfde code hebben met dezelfde vermenigvuldiging die
‫ons van, nogmaals, een snelheid naar een afgelegde afstand brengt.
‫Dat is de uitstraling.
‫Juist, juist.
‫Dus in plaats van de 'add controller pitch' te doen, moeten we deze keer jouw input doen en de
‫look right rate moet worden aangeroepen vanuit onze set player input-component of het moet worden aangeroepen
‫wanneer de as daadwerkelijk wordt gemanipuleerd.
‫Dus we gaan nog een as-verbeterde set van opzoeksnelheid toevoegen.
‫Het wordt de juiste koers.
‫En dan willen we die verwijzing naar de functie kopiëren en de ampersand voor en dan de volledig
‫gekwalificeerde problemen brengen.
‫Karakter.
‫Dubbelpunt, dubbelpunt.
‫Kijken.
‫Juist, juist.
‫Laten we doorgaan en zowel dat als het hoofd van het bestand opslaan.
‫Ga terug naar het project en sluit het spel af dat ik hier en dan heb laten compileren.
‫We moeten erin kunnen duiken en spelen.
‫Dus.
‫Op en neer werkt langzaam, links en rechts.
‫Niet helemaal zoals ik zou verwachten.
‫Laten we onze projectinstellingen eens bekijken.
‫Onze uitstraling dus.
‫Rechts.
‫Lijkt oké.
‫Duimstok.
‫Rechts.
‫Toegang via duimstok.
‫Laten we dat controleren.
‫Dat gaat allemaal correct door in de C ++ door een as-look.
‫Rechts.
‫Roept kijk.
‫Rechts.
‫Functie of naden om uw input te noemen zoals het hoort.
‫Dana, wat is daar gebeurd?
‫Ik druk gewoon opnieuw op hercompileren en vervolgens op afspelen.
‫Soms moet je dit doen.
‫Maar nu werkt het kijken naar links en rechts op en neer, zij het in een heel, heel langzaam
‫tempo.
‫Dus we gaan wat aanpassen met onze karakterblauwdruk.
‫Laten we het schietpersonage gaan zoeken.
‫Open zijn blauwdrukken.
‫En laten we dan naar beneden scrollen en de rotatiesnelheid vinden.
‫Dus ik ga gewoon vermenigvuldigen met tien.
‫Probeer tien keer sneller te worden dan ik een waarde zal vinden die ergens tussenin ligt.
‫Dit is altijd een manier waarop u kunt proberen waarden te vinden door eerst de orde van grootte te
‫veranderen.
‫Nou, dat is veel dichterbij in de juiste marge.
‫Het is misschien een beetje te gevoelig, dus misschien sla ik dat met de helft naar beneden.
‫Probeer ongeveer 50 deze keer.
‫Geen 500, maar 50.
‫Laten we dat eens proberen.
‫Druk op play en beweeg mijn stick rond.
‫Oké.
‫Dat voelt veel natuurlijker.
‫Misschien wil je ergens tussen die twee in gaan zitten.
‫Ga er dus tussenin.
‫Nogmaals, ik zeg deze keer ongeveer 70, in plaats van helemaal naar 170 te gaan, zou het juiste tarief kunnen zijn.
‫Eens kijken of we goud hebben bereikt.
‫Ja, ik denk van wel.
‫Ik denk dat 70 voor mij het juiste tarief zal zijn om te verhuizen.
‫Het is duidelijk dat dit het soort dingen is dat je vaak in games kunt aanpassen, waardoor de speler
‫de instellingen kan aanpassen.
‫Daar gaan we niet naar kijken.
‫Het valt buiten het bestek van deze sectie, maar het is iets dat je mogelijk aan gebruikers in je
‫eigen games wilt laten zien.
‫Stoer.
‫Dus in die lezing hebben we het verschil gezien tussen controller input en muis input en hoe
‫we moeten omgaan met snelheden in plaats van absolute bewegingen.
‫Dus in de volgende lezing gaan we kijken naar die derde persoonscamera waar ik steeds naar hintte.
‫Zie dat?