Programmeren van een 3D omgeving in Unreal Engine – Simulaties – Flight Simulation

print
Deze handleiding maakt deel uit van het programmeertraject:


Inhoud


Inleiding

De bedoeling van deze handleiding is een inleiding, een aanzet te geven, om een Flight Simulator te ontwerpen.

Deze handleiding zal uitgebreid worden als ik meer nuttige informatie vind (of ontwerp).


Flying Template

Unreal Engine komt met een eenvoudige Flying Template.

  • Open een nieuw project op basis van de Flying Template.
  • In de Content Browser, onder FlyingBPBlueprints vindt u Flying Pawn.
  • Dubbelklik om te openen.

Onderstaande besturing is reeds geprogrammeerd.

Onderstaande code, de besturing (snelheid en rotatie) gaan we wat nader bekijken.

  • De Tick-event wordt iedere frame uitgevoerd maar de framerate is afhankelijk van de hardware en dus niet constant. De Delta Seconds is als “de tijd tussen de frames” en deze is wel constant. Omdat de verplaatsing van ons “vliegtuigje” onafhankelijk moet verlopen van de hardware die de framerate bepaalt (anders zou het vliegtuigje op de ene pc harder vliegen dan op de andere) werken we met Delta Seconds.
  • De huidige snelheid, bepaald door de variabele Current Forward speed wordt vermenigvuldigt met de Delta Seconds.
  • Make Vector levert met de X-as de voorwaartse beweging die via AddActorLocalOffset wordt toegevoegd aan Delta Location en dus ons vliegtuigje voortuit laat vliegen.
  • Get World Delta Seconds, ongeacht de framerate, wordt vermenigvuldigt met de variabelen Current Pitch Speed, Current Yaw Speed en Current Roll speed en vormt een nieuwe rotatie Make Rotator die wordt gebruikt voor de Delta Rotation van AddActorLocalRotation.

Onderstaande video bouwt verder op deze Flying Template.


Physics

Propeller

U hebt 3 componenten nodig:

  • Een basis (Base) die als vast anker/draaipunt fungeert.
  • Een propeller die Physics simuleert. Het is belangrijk dat het draaipunt Propeller Pivot samenvalt met de Center of Mass van de propeller.
  • Een Physics Constraint ankerpunt dat zich ergens tussen de basis en de propeller bevindt (of samenvalt).

  • De Base, een Cube die geschaald is.

  • Voor de propeller heb ik een Cylinder gekozen, u kunt natuurlijk ook een “echte” propeller maken in bv. Blender. Vergeet niet Simulate Physics aan te vinken.

  • Physic Constraint met de Base als Component 1 en de Propeller als Component 2.
  • Vink Disable Collision aan zodat er geen Collison is tussen de Base en de Board.

Voor de Physics Constraint willen we een vrije draaiende beweging.

  • U doet dit door onder Angular Limits de Swing 2 Motion (op en neer) op Free te zetten en de Swing 1 Motion (heen en weer) en de Twist Motion op locked te plaatsen.
  • Voor de Angular Motor kiest u de Angular Drive Mode Twist and Swing, zet de Target Velocity op Swing en geef de gewenste Strength.

Onderstaande programmeercode zet de Center of Mass in het middelpunt van de propeller en toont hoe u een waarde, de Target Velocity kunt wijzigen.


Videotutorial – Jet Plane


Videotutorial – Propeller Plane


Videotutorial – Helicopter


In Game

Onderstaande video bespreekt het Flight Model van Start Citizen.

Onderstaand document is de basis voor het Flight Model van Star Citizen.

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.