‫Hallo en welkom.
‫In deze lezing gaan we aan de slag, wat verplaatsen door een selectievakje aan te vinken.
‫We zullen het in staat stellen te bewegen en te bewegen met een constante snelheid.
‫En we gaan dit deze keer doen met behulp van enkele bibliotheekfuncties van binnenuit.
‫Onwerkelijk.
‫Dus we zullen al onze kennis van het hoofd van bestanden en omvat op de proef stellen.
‫Laten we erin duiken en kijken hoe het werkt.
‫Dus de manier waarop ik wil dat deze beweging werkt, is dat ik wil dat deze soepel beweegt van waar het begon
‫naar een doeloffset over een periode van een bepaald aantal seconden.
‫Dus de manier waarop we dit moeten configureren, is door enkele nieuwe eigenschappen toe te voegen aan het headerbestand.
‫Dus laten we beginnen met het toevoegen van een privé-sectie aan de
‫kop van het bestand en dan gaan we een nieuwe eigenschap toevoegen die overal zal worden toegevoegd, die de offset, de verplaatsingsoffset, gaat definiëren.
‫Dus hoe ver deze verhuizer moet bewegen als hij wordt geactiveerd.
‫Dus de manier waarop we dat gaan doen, het gaat een F-vector gebruiken en ik ga het
‫de verplaatsingsoffset noemen, dus ik zal het geen standaardwaarde geven.
‫Dat doen we in de editor.
‫Dan ga ik nog een U-eigenschap maken die opnieuw overal zal worden toegevoegd, wat de hoeveelheid
‫tijd zal zijn die nodig is om naar het doel te gaan.
‫Dus we zullen dat een vlotter laten zijn, wat bewegingstijd is.
‫Ik ga dat instellen op een standaardwaarde van, laten we zeggen, 4 seconden.
‫Nu, er is nog iets dat ik hier wil plaatsen, dat is een Boolean voor nu,
‫die ons in staat zal stellen de beweging te activeren, zodat deze naar beneden gaat wanneer we deze Boolean activeren.
‫Dus laten we weer een nieuwe eigenschap maken, waar dan ook bewerken, zodat we deze kunnen toevoegen, zelfs terwijl we aan het
‫spelen zijn.
‫Dit wordt een boolean die zegt dat het moet bewegen en standaard wordt het ingesteld op false.
‫Dus als we dit in de editor afvinken, als we spelen, gaat het naar
‫zijn doelverplaatsingsoffset.
‫Vroeger, toen we een bewegend onderdeel hadden, deden we alle stappen handmatig.
‫Maar ik wil je laten zien dat er eigenlijk wat functionaliteit is ingebouwd om te doen.
‫Veel van de berekeningen die we nodig hebben, zijn ingebouwd in Unreal en er is ook een functie genaamd
‫V interpret constant.
‫En wat er interessant aan is, laten we eens kijken naar de opmerkingen.
‫Dus interpoleer een vector van een huidige vector naar een doelvector met behulp van een constante stap.
‫Dat betekent dat we na verloop van tijd met een bepaalde snelheid van stroom naar doel gaan, en dat zal hij
‫constant doen, wat precies klinkt als wat we willen.
‫We willen met een constante snelheid van onze huidige locatie naar een doeloffsetlocatie gaan.
‫Nu kun je zien dat je de syntaxis voor deze functie hebt bekeken.
‫Je kunt zien dat het een retourtype vector heeft.
‫Dus dat is de nieuwe locatie die het interpoleert.
‫Dan heeft hij twee ingangen.
‫We hebben een huidige F-vector en maken ons voorlopig geen zorgen over de andere symbolen rond dit effect, het belangrijkste
‫is dat het een huidige factor is en dan het doel dat we willen dat het
‫uiteindelijk bereikt, dan heeft het de Delta tijd, dus het gebruikt dit om de framesnelheid van de beweging en de interpolatiesnelheid onafhankelijk te
‫maken.
‫Dus hoe snel moeten we van onze huidige locatie naar het doel gaan?
‫Nu zul je merken dat het hier in de documentatie eigenlijk een sectie heeft met de tekst include en dit vertelt
‫je de include-regel die je nodig hebt in je C++-bestand om deze functie te kunnen
‫gebruiken.
‫En zoals we in de vorige video hebben gezien, stelt de include-regel ons in staat om de definities uit dit specifieke
‫bestand te kopiëren.
‫En een van de definities is de definitie voor deze functie.
‫Dus stelt ons in staat om deze V-onderscheppingsconstante te gebruiken om nu de V voor deze functie in feite betekent dat
‫het interpolatie op vectoren uitvoert.
‫Daarom wordt het v interpret genoemd, in tegenstelling tot andere interpolatiefuncties die ook beschikbaar zijn
‫in dit bibliotheekbestand.
‫Dus laten we eens kijken hoe we het zouden gebruiken.
‫Allereerst gaan we de include-regel uit de documentatie kopiëren en gaan we naar onze move ACP
‫waar we dit in de body van de tick-component willen implementeren.
‫Maar ze omvatten die we niet opnemen in het lichaam van de teekcomponent.
‫We moeten de include all bovenaan het bestand doen.
‫Dus daar ga ik de mijne neerzetten.
‫Ik ga de mijne na het opnemen van zet een punt h plaatsen.
‫Dus we gaan een voorwaartse schuine streep voor wiskunde invoeren en opnemen, onwerkelijk wiskundehulpprogramma punt h.
‫Wat we nu kunnen doen, is dat we de functie daadwerkelijk kunnen gebruiken in onze tick-component.
‫Laten we gewoon de code die we al hebben verwijderen en compileren aanvinken.
‫Omdat we dat gebruikten om te begrijpen hoe we functies op andere actoren moesten aanroepen.
‫En wat we moeten doen is als je naar boven scrolt, je kunt zien dat de manier om dit te noemen is f math colon colon
‫V in tap constant to.
‫Dus we doen een soort dubbele punt-operator die in de F-wiskundeklasse kijkt, die
‫al deze wiskundehulpprogramma's samenbrengt.
‫Dus we gaan F wiskunde doen.
‫Dikke darm.
‫En hier kun je een heleboel automatisch aanvullen zien verschijnen voor verschillende wiskundige functies die zijn opgenomen in dat
‫headerbestand dat we zojuist in dit bestand hebben opgenomen.
‫Dus je kunt er doorheen kijken, zien of er interessante dingen in staan.
‫Ik zie een heleboel interpolatie en circulaire interpolaties enz. maar we wilden de v-constante interpreteren.
‫We kunnen op tab drukken om dat te voltooien en dan enkele haakjes openen en we kunnen de argumenten
‫zien die we moeten doorgeven in de stroom, de doel-deltatijd en de onderscheppingssnelheid.
‫Dus laten we beginnen met het maken van enkele variabelen om enkele van deze vast te houden.
‫Dus allereerst hebben we een F-vector nodig, die onze huidige locatie wordt, en we gaan dat nog
‫niet vastleggen.
‫Dan hebben we een F-vector voor de doellocatie, en dan krijgen we een float voor de
‫snelheid.
‫En we zullen elk van deze afzonderlijk moeten berekenen om erachter te komen hoe we deze beweging kunnen laten
‫plaatsvinden.
‫Dus de huidige locatie zal relatief eenvoudig zijn.
‫We hebben de huidige locatie van de eigenaar van de acteur nodig.
‫Dus hoe doen we dat?
‫Laten we deze puntkomma vervangen door een gelijkteken.
‫Dan gaan we een paar haakjes halen die we gaan doen Arrow.
‫Dus we gaan een functie aanroepen voor de eigenaar van de acteur, en we krijgen de locatie van de acteur en dan een paar haakjes
‫en een puntkomma om het te beëindigen.
‫Dus dat geeft ons de huidige locatie van de eigenaar van de acteur.
‫Hoe zit het nu met onze doellocatie?
‫We weten dat we een eigenschap hebben die de Move Offset heet.
‫Dus dat zal hier aan de orde zijn.
‫Maar we moeten wel de oorspronkelijke locatie toevoegen aan deze verplaatsingsoffset.
‫Dus daarvoor moeten we de originele locatie vastleggen in het begin van het spel.
‫We hebben dus een variabele winkel nodig in.
‫Dus laten we naar ons leger gaan.
‫H En het wordt nergens een bewerking.
‫Dus ik ga het onder waarde-eigenschappen plaatsen, het wordt een F-vector genaamd originele locatie.
‫We gaan het hier niet instellen op iets dat we in onze films gaan opnemen.
‫CP Into Begin Play, verwijder deze commentaarregel en plaats onze eigen code, die zal zijn dat
‫de originele locatie gelijk is om de haakjes van de eigenaar te krijgen pijl om de locatie van de acteur zo te krijgen.
‫Dus nu we onze oorspronkelijke locatie hebben vastgelegd en beginnen met spelen, kunnen we deze in de techniek gebruiken.
‫Dus ga naar het vinkje en we stellen onze doellocatie gelijk aan de oorspronkelijke locatie plus de verplaatsingsoffset.
‫Dus dat is onze doellocatie.
‫En ten slotte, met snelheid, nou, dit is in wezen de afstand die we moeten afleggen gedeeld door
‫de tijd die we nodig hebben om te bewegen.
‫Dus als we een doellocatie hebben en we hebben een originele locatie, moeten we
‫de afstand tussen deze twee vinden, wat we kunnen doen met een f vectorkolom, dubbele puntafstand.
‫Dan gaan we naar de haakjes, de oorspronkelijke locatie en de doellocatie.
‫Dus dat geeft ons de afstand tussen deze twee vectoren.
‫En dan gaan we dat delen door wat we hadden en verhuizen, de verhuistijd genoemd.
‫Dus dat geeft ons de snelheid waarmee we zouden moeten bewegen.
‫En nu kunnen we deze gebruiken als argumenten om onze V-constante te onderscheppen.
‫Dus we moeten eerst de huidige locatie geven en dan de doellocatie.
‫Dan gaan we vertellen dat het de Delta-tijd is, die gewoon al een parameter is in de tick-component.
‫Daar moeten we dus gewoon doorheen.
‫En dan hebben we nog de onderscheppingssnelheid.
‫Dus we gaan gewoon de snelheid doorgeven, zoals een puntkomma aan het einde van die regel.
‫En dit is in wezen de nieuwe locatie.
‫Dus laten we dat opslaan in een nieuwe variabele vector genaamd nieuwe locatie gelijk hieraan.
‫Stoer.
‫Nu moeten we iets doen met die nieuwe locatie, want het heeft geen zin om het
‫gewoon te hebben berekend, we moeten de acteur eigenlijk naar de nieuwe locatie verplaatsen.
‫Dus dat gaan we doen.
‫We gaan het op 'krijg eigenaar' roepen, zodat we 'eigen' kunnen doen.
‫Haakjes Pijl.
‫En dan gaan we een vaste acteurslocatie doen en we gaan de nieuwe locatie zo passeren en hebben een puntkomma aan het
‫einde van de regel.
‫Dus laten we doorgaan en dit compileren en kijken of het werkt.
‫Dus als we naar de kerker gaan, selecteer dan de muur die we willen verplaatsen.
‫Je kunt nu zien dat de verhuizer-component een verplaatsings-offset heeft, die ik in de Z-richting
‫wil doen, en ik denk dat ik -600 ga doen.
‫En dan zou de verplaatsingstijd, 4 seconden, prima moeten zijn.
‫Dus laten we dat opslaan en dan op play drukken en kijken of het beweegt.
‫Het beweegt dus niet.
‫En er is een fout in het uitvoerlogboek waarin staat dat de mobiliteit van de actor op statisch is ingesteld, en daarom kan
‫hij niet bewegen.
‫Dus als we de actor opnieuw selecteren en we kijken naar zijn mobiliteitsinstellingen, kun je zien dat de mobiliteitsinstellingen van de statische mesh-component,
‫dus selecteer de statische mesh-component en kijk dan naar de mobiliteit.
‫U kunt zien dat het is ingesteld op statische exemplaren.
‫Het is niet toegestaan om te verhuizen.
‫Laten we dat overschakelen naar verplaatsbaar, want we willen dat het beweegt.
‫En laten we dan doorgaan en op play drukken.
‫Nu kun je in de duisternis zien dat de oorlog ten einde liep, wat perfect is.
‫Ik denk dat we ergens anders een beweging hebben, zoals te zien is op deze pilaar hier, die ook probeert te bewegen.
‫Laten we dat dus niet doen.
‫Laten we de verhuizing verwijderen, een onderdeel dat we daar hebben toegevoegd om te testen.
‫En het zou ons geen fouten in het uitvoerlogboek moeten geven.
‫Als we nu doorgaan met de hit, zouden we die muur gewoon naar zijn doellocatie moeten laten zakken.
‫Dus laten we je uitdagen om het te laten bewegen met de boolean die we hebben gemaakt die je bezit.
‫Dus je gaat de code in een geschikt if-statement en de juiste code inpakken, zodat het
‫platform alleen wordt verplaatst als die Boolean waar is.
‫En dan ga je de code opnieuw compileren en een eject spelen met F acht en dan de boolean veranderen
‫en de plat observeren en kijken of deze beweegt als je die boolean controleert.
‫Dus pauzeer de video en probeer het.
‫Oké.
‫Welkom terug.
‫Dus laten we deze technische componenten in een if-statement stoppen, niet super, maar al het andere dat we gaan
‫doen.
‫If zou enkele haakjes moeten verplaatsen en openen en al deze code moeten verplaatsen door te onthouden dat het één niveau moet inspringen omdat we tussen haakjes
‫staan en we willen laten zien dat dit alleen binnen de if-instructie zou worden
‫uitgevoerd.
‫Maak het ons gemakkelijk om de besturing van alle Taft-elf-compilaties te lezen en dan zouden we in staat moeten zijn om op play
‫te drukken en op F8 te drukken om uit te werpen als we onze muis hebben gevangen.
‫En dan gaan we naar binnen om onze omtrek te bekijken en we gaan proberen de muur te vinden.
‫Of we kunnen gewoon in de scène klikken en dan gaan we een component verplaatsen selecteren en controleren of ze moeten
‫bewegen en ze gaan, de muur begint te bewegen wanneer dat gebeurt.
‫Goed spul.
‫Ik zie je in de volgende lezing.