‫Dus we willen dat de camera schudt als ons projectiel inslaat, zoiets.
‫En we willen ook dat het schudt als een van onze vijvers sterft.
‫Hé, welkom terug.
‫In deze video gaan we nog een speciaal soort effect aan onze game toevoegen, waarbij de camera
‫wordt geschud.
‫We willen de camera schudden wanneer het projectiel iets raakt, evenals wanneer een van onze vijvers
‫sterft.
‫Dit voegt nog een beetje een finishing touch toe aan het spel waardoor het een beetje professioneler aanvoelt.
‫Dus laten we er nu in duiken.
‫Hier zijn we in de editor en ik wil graag een nieuwe klasse toevoegen voor onze camerabeweging.
‫Unreal Engine heeft een ingebouwde klasse voor het schudden van de camera.
‫Nu ga ik een nieuwe map maken hier in de map blauwdrukken en dit cameratrilling noemen.
‫En in de map met camerabewegingen.
‫Ik ga met de rechtermuisknop klikken en een nieuwe blauwdruk maken.
‫De reden dat we een blauwdruk maken, is omdat dit een van die dingen is
‫die veel gemakkelijker te maken zijn vanaf de kant van de blauwdruk, omdat er veel variabelen zijn om aan te passen met cameratrillingen, en
‫de klasse die we zoeken is matinee camera schudden zodat we kunnen zoeken naar cameratrilling en kiezen.
‫Matinee cameratrilling.
‫Klik op Selecteren en we noemen dit de eerste camerabeweging.
‫BP Hit Camera Shake.
‫Laten we nu dubbelklikken op deze nieuwe blauwdruk en hem openen en we zullen zien dat hij een detailvenster
‫heeft met veel verschillende variabelen om uit te kiezen.
‫En laten we het hebben over enkele van deze parameters die voorkomen in de camerabewegingsklasse.
‫Nu zijn er hier nogal wat, en we gaan er slechts een paar aanstippen die het algehele
‫gevoel van de cameratrilling beïnvloeden.
‫Nu zul je zien dat er een sectie is die oscillatie wordt genoemd.
‫En de reden dat dit gedeelte oscillatie wordt genoemd, is omdat een cameratrilling het oscilleren van de camera met
‫zich meebrengt.
‫Hier is de Wikipedia-pagina voor een sinusgolf.
‫Een sinusgolf is een wiskundige functie en we hoeven de wiskunde achter een sinusgolf niet te begrijpen.
‫Maar het helpt wel om te zien hoe een sinusgolf eruitziet.
‫Als ik van hier naar rechts naar beneden scrol, zie ik deze rode golf hier en hij heet sinus, een sinusgolf
‫oscilleert.
‫Dat betekent dat het op en neer gaat of heen en weer.
‫Dus als onze camera soepel heen en weer wordt bewogen, zeggen we dat hij oscilleert.
‫Nu zien we dat we een oscillatieduur hebben en een uitvloeitijd en een uitvloeitijd.
‫De duur is van invloed op hoe lang de shake zal duren.
‫Dit zijn waarden waarmee je kunt experimenteren, maar ik heb al wat geëxperimenteerd en ik
‫ken een aantal goede marge-waarden voor de hit cameratrilling.
‫Als het projectiel iets raakt, hebben we een relatief korte duur.
‫Dit is in seconden, en ik kies 0. 2 5 seconden voor de duur van deze camerabeweging
‫en voor de in- en uitvloeitijd.
‫Ik ga waarden van 0 gebruiken. 05, dus 0. 05 voor blend in time en 0. 05 voor de uitvloeitijd.
‫Dit is hoe lang het duurt om in en uit de cameratrilling te gaan, die 0 zal aanhouden. 2 5 seconden.
‫Nu hebben we verschillende soorten trillingen.
‫We hebben roterende oscillaties en deze zullen de camera draaien volgens die oscillatiefunctie.
‫We hebben een locatie-oscillatie die de camera in de ruimte zal schokken en een oscillatie van het gezichtsveld, die
‫het gezichtsveld zal beïnvloeden, dat in feite in- en uitzoomen is met de camera.
‫Nu zijn rotatie en oscillaties van het gezichtsveld degenen die meer vatbaar zijn voor het veroorzaken van bewegingsziekte.
‫Dus je kunt ermee experimenteren als je wilt.
‫Maar voor deze cameratrilling gaan we gewoon de locatie-oscillatie veranderen.
‫Nu hebben we drie assen X, Y en Z, en we zagen dat de sinusgolf iets heen en weer zal rukken.
‫Deze trillingen zullen de camera heen en weer bewegen in de X-, Y- en z-richtingen.
‫Ik ga op deze vervolgkeuzelijsten klikken om ze uit te vouwen en we zullen zien dat elke as een
‫amplitude, een frequentie heeft, evenals een initiële offset en een golfvorm.
‫Nu is de initiële offset voor de cameratrilling ingesteld op willekeurig, en we kunnen dat willekeurig laten,
‫zodat we minder voorspelbare cameratrilling hebben.
‫En de sinusgolf is het type golfvorm dat wordt gebruikt bij het schokken van de camera.
‫En we zagen dat het een vloeiende op- en neergaande beweging heeft.
‫Nu is amplitude de maximale hoeveelheid beweging in die as die de camera zal bewegen.
‫Ik ga deze alle drie instellen op amplitudes van tien, een X, Y en z en de frequentie zal
‫zijn hoe snel de camera oscilleert.
‫Ik ga deze ook op tien zetten.
‫Nu zullen we zien hoe dit eruit ziet zodra we de camerabeweging implementeren.
‫Maar voordat we dat doen, ga ik nog een camerabeweging maken en dit is voor als de
‫pion sterft.
‫Dus laten we met de rechtermuisknop klikken, een nieuwe blauwdrukklasse maken en zoeken naar camerabeweging en Matinee camerabeweging
‫selecteren, klik op selecteren.
‫En hiervoor gaan we dit BP Depth Camera Shake noemen.
‫Nu zal het trillen van de doodscamera een beetje gewelddadiger zijn dan het trillen van de camera.
‫De hitcamera schudt de camera wanneer ons projectiel iets raakt.
‫Maar de camerabeweging van de dood zal de camera doen schudden als er iets sterft.
‫Dus voor de oscillatieduur ga ik dit een beetje langer maken.
‫Ik ga voor 4. 3, 5 seconden en vier, meng in tijd en uit tijd.
‫Ik ga deze beide op 0 zetten. 1.
‫Nu, slechts een kanttekening, meng de tijd in en uit.
‫Zijn percentages van de voltijd genormaliseerd tussen nul en één?
‫Dus punt één is 10% van de volledige oscillatieduur.
‫Nu ga ik de amplitudes instellen op 54 X en Y en ik laat de Z-amplitude op nul zodat we de camera
‫alleen in X en Y laten rukken op -- de dood.
‫Op deze manier krijgen we een beetje een ander uitziende camerabeweging.
‫En voor de frequentie stel ik deze beide in op 20.
‫Dus we hebben nu een camerabeweging en het is tijd om deze camerabewegingen daadwerkelijk vanaf de
‫C++-kant af te spelen.
‫Om nu een camerabeweging af te spelen, hebben we enkele variabelen voor camerabewegingen nodig.
‫Als je een oudere versie van Unreal Engine gebruikt, Unreal Engine 4. 25 en lager specifiek, dan ben jij
‫de klasse voor je variabelen.
‫Camera schudden.
‫Maar in nieuwere versies 4. 2, zes en hoger.
‫En dit omvat Unreal Engine vijf.
‫We gaan je matinee gebruiken.
‫Camera schudden.
‫Dat gaan we dus gebruiken in deze video.
‫Nu zijn de functies om een camerabeweging af te spelen ook anders.
‫Als je op 4 staat. 2, vijf en lager, dan is de functie die je gaat gebruiken client-play.
‫Camera schudden.
‫En dit is een functie op de spelercontrollerklasse nu in 4. 26 en hoger, inclusief 5. 0, dat is wat we
‫gebruiken.
‫We gaan cameratrilling bij het starten van de client gebruiken als client-afspelen.
‫Cameratrilling is nu afgeschaft.
‫Dus aangezien we Unreal Engine vijf gebruiken, zullen we clients gebruiken, camerabewegingen starten.
‫En als je er vijf gebruikt, volg je en gebruik je clients om camerabewegingen te starten.
‫Maar voor oudere motorversies, specifiek 4. 2, vijf en lager, gebruik daar de klasse en
‫de functie aan de linkerkant en alle anderen gebruiken de klasse en functie aan de rechterkant.
‫Om je nu te laten zien, hier is je cameratrillingsbasis in de documentatie en hier is de bijlage ervoor.
‫Dus je gaat deze camera slash camera shake base gebruiken voor de opname.
‫Dus eerst wil ik de hitcameratrilling in de projectielklasse aanpakken.
‫Dus hier in projectiel, ga ik een camerabeweging toevoegen.
‫Dit wordt nu naar voren verklaard.
‫Ik ga een U maken.
‫Camera shake basis.
‫Het is een wijzer.
‫En ik ga deze hit nu cameratrilling noemen, want ik wil dit graag instellen op basis van blauwdrukken.
‫Aangezien we een blauwdruk voor cameratrillingen hebben, ga ik dit blootleggen.
‫Het wordt een nieuw pand.
‫Ik laat het overal bewerken en geef het een categorie.
‫En hiervoor zal ik het in de gevechtssectie houden.
‫Nu ben ik klaar om de camerabeweging te spelen.
‫Dus in projectielen CP, plaats ik dit op hit hier in de cheque voor een andere acteur.
‫En het eerste dat ik ga doen, is ervoor zorgen dat ik de cameratrilling van blauwdrukken heb
‫ingesteld, wat betekent dat ik ervoor moet zorgen dat de hitcameratrilling niet nul is.
‫Dus als ik op camerabeweging druk, kan ik de camerabeweging starten.
‫En hier is een spelercontroller-client die camerabewegingen start voor de versies 4. 26 en hoger.
‫Let nu op een paar dingen.
‫Deze hebben betrekking op twee subklassen van variabelen, wat betekent dat we een nieuwe klasse nodig hebben.
‫Nu hebben we blauwdrukken gemaakt voor deze variabelen, wat betekent dat we hier gemakkelijk een subklasse van kunnen maken in
‫plaats van een reguliere variabele.
‫Dus ik kan deze klasse nemen, je camerabewegingsbasis en deze in een PT-subklasse van plaatsen, dus laten we zeggen PT-subklasse van en ik ga de
‫voorwaartse verklaring hier bewaren en ik heb de asterisk niet nodig omdat PT-subklasse van dit gewoon omhult
‫omhoog in de sjabloon en omdat deze hit camera shake eigenlijk een PT-subklasse is van ik ga het hit
‫camera shake-klasse noemen en nu in projectiel die CPP in plaats van hit camera shake laten we
‫deze hit camera shake-klasse noemen en nu kunnen we bellen een cliënt begint camerabewegingen.
‫Nu is deze functie van de spelercontroller en we zijn hier in projectiel CP en we hebben
‫geen variabele voor de spelercontroller, maar we hebben deze functie get first player controller die bestaat
‫op de U-wereldklasse, dus we kunnen get world en bel dan get first player controller.
‫Dat gaan we dus doen.
‫Dus eerst bellen we Git World en vanaf daar gaan we de eerste speler-controller krijgen en vanaf
‫de eerste speler-controller krijgen we een client starten camerabewegingen en we zullen zien dat dit
‫een PT-subklasse kost van we 're gaan passeren in de hit camera shake-klasse en de rest van
‫deze invoerparameters hebben standaardwaarden, zodat we de resterende invoer kunnen weglaten.
‫Dus laten we doorgaan en dit compileren.
‫Dus hier in de editor zijn we klaar om dit uit te testen.
‫Nu hebben we de blauwdruk en de PT-subklasse van gemaakt, maar we moeten die PT-subklasse van instellen.
‫Dus laten we ingaan op acteurs en BP-projectielen.
‫Ik ga de volledige blauwdruk-editor openen en naar de gevechtssectie gaan en hier is mijn
‫hit camera shake-klasse t subklasse van Ik kan dit openen en hit camera shake selecteren en nu zal dit worden ingesteld.
‫Dus ik ga het afspelen van de pers samenstellen en kijken of we die camera laten trillen.
‫En daar gaat het.
‫Geweldig.
‫Dus nu wil ik een camerabeweging afspelen als de pod sterft.
‫Dus ik ga naar de basvijver en voeg hier een camerabewegingsvariabele toe.
‫Dus hier beneden, laten we nog een t-subklasse van variabele maken.
‫Ik ga het doorgeven.
‫Het wordt je camera shake-basis en ik ga deze diepte camera shake-klasse noemen.
‫En net als onze andere, gaan we hier een U-eigendom van maken.
‫Bewerk Anywhere Category-gevechten en nu hebben we een camerabewegingsklasse hier in base pon.
‫Nu ga ik je uitdagen om de doodscamerabeweging te spelen voor de pion wanneer deze sterft.
‫Dus je gaat dit doen wanneer de -- sterft en dat zal natuurlijk de vernietiging zijn.
‫Kies dus de juiste locatie in deze functie om deze cameratrilling af te spelen en compileer vervolgens je code.
‫Stel de subklasse van waarde in zowel de tank- als de torenblauwdrukklassen in en test deze uit.
‫Pauzeer de video en implementeer de doodscamera.
‫Schud nu.
‫Oké.
‫Dus we hebben onze def camera shake-klasse.
‫Laten we naar de basisvijver CP gaan en ik ga omhoog om de vernietiging af te handelen.
‫En het eerste wat ik ga doen, is controleren of de klasse voor camerabewegingen is ingesteld en als dat
‫zo is, kunnen we de camerabeweging daadwerkelijk afspelen.
‫Nu hebben we hier geen verwijzing naar de spelercontroller, dus ik ga Get World
‫vanaf hier bellen, de eerste spelercontroller halen en vanaf daar ga ik bellen.
‫Klant begint camerabewegingen.
‫En hier kunnen we in de diepte camera, shake-klasse doorgeven.
‫En daar hebben we het.
‫Dus laten we dit compileren en we gaan terug naar de editor en ik ga de --'s map, BP --
‫tank openen.
‫En hier hebben we een les over dieptecamerabewegingen.
‫Ik ga dit ter dood brengen.
‫Camera, schudden, compileren en opslaan en sluiten.
‫Ik ga het projectiel ook sluiten.
‫En open BP-vijver, torentje en stel hier ook dieptecamerabewegingsklasse in op dieptecamerabeweging.
‫Nu kunnen we de dood testen.
‫Dus laten we eens kijken hoe dit werkt.
‫Kay, ik ga naar een van de torens en...
‫Böhm.
‫De camerabeweging werkt.
‫Het laatste dat we moeten controleren, is of we de camera trillen als de torens sterven.
‫Dus laten we doorgaan en een van de torens doden.
‫En daar gaan we.
‫We hebben de camera laten schudden.
‫Geweldig.
‫Dus kort samengevat, we schudden nu de camera.
‫We schudden het wanneer het projectiel iets raakt en wanneer een van de vijvers sterft.
‫Dit is gewoon weer zo'n mooi oppoetsend effect waardoor onze game er wat professioneler uitziet.
‫Over oppoetsen gesproken in onze volgende video, we gaan het spel oppoetsen en het in
‫zijn definitieve werkende staat krijgen, zodat we dit gedeelte kunnen afronden en een volledig werkend spel onder onze riem kunnen hebben.
‫Ik zie je snel.