Programmeren van een 3D omgeving in Unreal Engine – Respawn, Possess en Destroy

print
Deze handleiding maakt deel uit van het programmeertraject:


Inhoud


Wat vooraf ging


Inleiding

Respawn is het terug in de wereld brengen van een karakter.

Possessing, het in bezit nemen van een Pawn of Character.


Hit en Damage events

Event Hit

Event Hit wordt getriggerd iedere keer er een Collision is tussen twee actors waarvan één van beiden Simulation Generates Hit Events op true heeft staan.

In onderstaand voorbeeld wordt bij een Hit een explosie op de locatie van de hit gespawnd.

Event Any Damage

Event Any Damage wordt getriggerd wanneer Damage is aangebracht.

In onderstaand voorbeeld wordt de Health verminderd wanneer de Damage wordt aangebracht door Water (verdrinken).

Event Point Damage

Event Point Damage wordt getriggerd wanneer gerichte Damage is aangebracht door een projectiel of een wapen bv. een kogel.

In onderstaand voorbeeld wordt de Health verminderd met -1 tenzij de Head geraakt is dan wordt de Health volledig verminderd (een schot in het hoofd is een onmiddellijke dood, hier kan ik mee leven) het projectiel dat de Damage veroorzaakt wordt vernietigd.

Event Radial Damage


Event Radial Damage wordt getriggerd wanneer radiala Damage is aangebracht door bv. een explosie.

In onderstaand voorbeeld wordt de Health verminderd met de Damage Received waarde (een Float) en wordt kracht op de capsule gezet via Add Radial Force.

Add Impuls at Location

Onderstaand voorbeeld komt uit de Projectile Blueprint van de FirstPerson Template. Het projectiel is dat gele balletje dat u afvuurt.

Er wordt gecontroleerd (Branch) of het component dat geraakt is (Other Comp) Physics simuleert (Is Simulating Physics). Is dit het geval dan wordt Impuls toegevoegd op de locatie waar het geraakt is (Add Impulse at Location). Deze locatie wordt bepaald door de locatie (Get Actor Location)van het projectiel, de impuls wordt bepaald door de Velocity (Get Velocity) van het projectiel versterkt (vermenigvuldigd) met 100. Uiteindelijk wordt het projectiel vernietigd (Destroy Actor Target = self).


Spawn en Destroy

Eerst gaan we bespreken hoe we een Actor kunnen spawnen en destroyen. Spawnen is een Actor laten verschijnen in een Level.

De instructie die u moet gebruiken om een actor te laten verschijnen (spawnen) is Spawn Actor from Class. Vervolgens moet u de naam van de klasse meegeven van de actor die moet spawnen en de transformatie (locatie en oriëntatie) waar u wilt spawnen.

Wilt u een actor verwijderen uit een level (actors worden automatisch uit het geheugen verwijderd als een level wordt afgesloten), dan gebruikt u DestroyActor. U moet bepalen welke actor moet verwijderd worden.

Om alle actors van een specifieke klasse te selecteren zoekt u naar de functionaliteit Get All Actors Of Class. Het resultaat is een array met alle Actors van de opgegeven klasse.

Voorbeeld – Brandende struik

  • Open eventueel een nieuw project met Starter Content.
  • Zoek de Static Mesh SM_Bush en sleep de Bush in het Level.
  • Ga naar de Level Blueprint.

Bij het drukken op de F-toets willen we de struik in brand zetten. Onderstaande code zal dit uitvoeren

  • Centraal staat de functie Spawn Actor, de gebruikte Class is Blueprint Effect Fire (een meegeleverd effect uit de Starter Content).
  • De Spawn Transformatie (locatie en oriëntatie) wordt bepaald door de transformatie (Get Actor Transform) van de SM_Brush.
  • De gespawnde Actor wordt opgeslagen in een variabele Vuur. Het is dit Vuur dat via DestroyActor vernietigd wordt.
  • Door een Flip Flop wordt alternatief de Actor gespawnd en destroyed.

Possess

Possessing is het controleren van een Pawn of Character. De Pawn of Character die u controleert kan door u bestuurd worden.

  • Ga naar de Level Blueprint en zoek naar Possess, u zal niets vinden.
  • Possessing kan enkel vanuit de Player Controller.

Onderstaande code toont hoe u via een druk op een toets een bepaald Character possesst.


Respawn

Respawning is uw karakter terug in de game brengen. Dit kan gebeuren in de GameMode.

Onderstaande Blueprint respawnt een HeroCharacter (uit het Twin Stick Shooter project) en neemt de controle van dit karakter in handen (Possess). RespawnPlayer is een zelfgemaakte Custom Event en PlayerSpawnTransform een variabele.

De locatie, de Player Spawn Transform wordt bepaalt in de klasse HeroCharacter.

Onderstaande Blueprint toont dit, de GameMode is TwinStickMode (het lopende project).

Het respawnen zelf gebeurt nadat gecontroleerd wordt of uw karakter “dood” is en voor het karakter vernietigd wordt (DestroyActor), in onderstaand voorbeeld samen met zijn wapen. In onderstaand voorbeeld is GameMode de variabele die in bovenstaand voorbeeld is aangemaakt.


Project Twin Stick Shooter – Respawn

Respawning the Hero

Spawning Enemies

Clean up Respawning & Projectiles


Quickshots

Quickshots zijn korte, op zichzelf staande video’s, rond een specifiek onderwerp. Meestal aansluitend bij wat net besproken is.

Pickup

Spawning Physics Actors

Using BP Components for Game Behaviour

Behandelde Basiscompetenties uit de module ICT Programmeren – Specifieke ontwikkelomgeving: complexe functionaliteiten

  • IC BC235 – kan gevorderde principes van programmeren in een specifieke ontwikkelomgeving toepassen
  • IC BC238 – kan een complex programma wijzigen
  • IC BC246 – kan complexe ontwerpen in een specifieke ontwikkelomgeving maken
  • IC BC251 – kan een ontwerp in een specifieke ontwikkelomgeving verfijnen
  • IC BC253 – kan broncode in een specifieke ontwikkelomgeving optimaliseren

Geef een reactie

Deze website gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

  • Abonneer je op deze website d.m.v. e-mail

    Voer je e-mailadres in om je in te schrijven op deze website en e-mailmeldingen te ontvangen van nieuwe berichten.