Starten met programmeren van een 3d omgeving in Unreal Engine – Datastructuren – Structuren, objecten en enumeraties

print

Deze handleiding maakt deel uit van het programmeertraject:


Inhoud


Wat vooraf ging


Inleiding

Deze handleiding herneemt de basishandleiding maar voegt er een aantal gevorderde elementen aan toe.

  • Start een nieuw Third Person Desktop/Console project van Maximum Quality With Starters Content en geef het een passende naam.


Structuren

Een Structure is een verzameling van samenhorende variabelen van eenzelfde, of verschillend datatype.

Unreal Engine komt met een hele reeks van basisstructuren. Bijvoorbeeld, we wensen ons karakter een kleur (color) te geven.

Een kleur is eigenlijk een Structure van 4 waarden (van het type Byte (een geheel getal tussen 0 en 255)).

  • Maak een nieuwe variabele aan en geef het een gepaste naam (bv. Mijnkleur).
  • In het Details-panel zoekt u onder Variable Type naar Color.
  • Merk op dat u dit vindt onder Structure.

  • Vraag nu de variabele MijnKleur op en voeg het toe aan de Blueprint (via een GET en/of een SET).
  • Om nu de onderliggende variabelen te zien, klik met de rechtermuisknop ingedrukt op de pin Mijn Kleur en kies voor Split Struct Pin.

Hieronder ziet u deze opsplitsingen voor de GET en de SET.

  • U kut de splitsing weer ongedaan door met de rechtermuisknop ingedrukt te klikken op een pin en te kiezen voor Recombine Struct Pin.

Break en Make

Break

  • Als u een verbindingslijn trekt vanuit de GET dan hebt u de keuze Break (Color).

U ziet dan weer de afzonderlijke variabelen.

Make

  • Als u een verbindingslijn trekt vanuit de SET dan hebt u de keuze Make (Color).

U ziet dan weer de afzonderlijke variabelen.

Een eigen Structure aanmaken

Het is, uiteraard, ook mogelijk om een eigen Structure aan te maken.

Als voorbeeld neem ik een adres, een adres bestaat uit een straat, huisnummer (met eventueel busnummer), postcode en gemeente. Deze 4 eigenschappen (variabelen) zijn allen van het type string.

Een eigen Structure is eigenlijk eveneens een Blueprint.

  • Ga in de Content Browser naar een map waar u uw eigen Blueprints verzameld (of ga bv. naar ContentThirdPersonBPBlueprints).
  • Kies in de Content Browser voor Add New of klik met de rechtermuisknop ingedrukt in de map en kies voor BlueprintsStructure.

  • Geef vervolgens deze nieuwe Blueprint een passende naam (bv. Adres) en dubbelklik om te openen.
  • Geef de nodige variabele in (u voegt nieuwe variabelen toe via de knop New Variable), Geef een naam aan de variabele, bepaal hun Datatype en geef ze eventueel een Default Value. De pijltjes achteraan kunt u gebruiken om eventueel de volgorde te wijzigen en met het kruisje kan je een variabele opnieuw verwijderen. Eventueel geeft u nog een Tooltip mee voor de Structure.
  • Klik op Save om te bewaren.

  • Keer terug naar u ThirdPersonCharacter Blueprint.
  • Maak een nieuwe variabele aan (bv. MijnAdres).
  • Zoek naar Adres. U vindt de Structure Adres.

  • Voeg de variabele MijnAdres toe aan de Blueprint en Make en Break de variabele MijnAdres om de onderliggende variabelen te zien (en waarden te kunnen toekennen of opvragen).


Object

Een variabele kan ook een object zijn.

Hoewel het niet meteen echt zinvol is, laat ons een variabele Light-object toevoegen.

  • Maak een nieuwe variabele aan en geef het een gepaste naam (bv. MijnLicht).
  • In het Details-panel zoekt u onder Variable Type naar Light.
  • Merk op dat u dit vindt onder Object Types.

Onderstaande Blueprint toont hoe u een kleur van het licht kunt instellen.

Merk op de Light Color een Structure is de “gemaakt” wordt via Make LineairColor.


Enumeraties

Een enumeratie is een vooraf gedefinieerde lijst met waarden. Er bestaan tientallen enumeraties in Unreal Engine waar u kunt gebruik van maken. Bv. voor Naviagtion en Movement. Laten we twee variabelen aanmaken die respectievelijk de Navigation en Movement enumeratie gebruiken.

  • Maak een nieuwe variabele aan en geef het een gepaste naam (bv. MijnNavigatie).
  • In het Details-panel zoekt u onder Variable Type naar Navigation.
  • Merk op dat u dit o.a. vindt onder Enum.

  • Herhaal dit voor een Movement-Enumeratie.
  • Klik op Compile.

Als u de variabele wilt een waarde toekennen via een SET ziet u dat u een keuzelijst krijgt met de vooraf bepaalde waarden.

Onderstaande Blueprint gebruikt beide variabelen om de Movement van het Character in te stellen (SET).

Een eigen Enumeratie aanmaken

Het is, uiteraard, ook mogelijk om een eigen Numeratie aan te maken.

Als voorbeeld neem ik de namen van mijn 3 kindjes.

Een eigen Enumeratie is eveneens een Blueprint.

  • Ga in de Content Browser naar een map waar u uw eigen Blueprints verzameld (of ga bv. naar ContentThirdPersonBPBlueprints).
  • Kies in de Content Browser voor Add New of klik met de rechtermuisknop ingedrukt in de map en kies voor BlueprintsEnumeration.

  • Geef vervolgens deze nieuwe Blueprint een passende naam (bv. Kindjes) en dubbelklik om te openen.
  • Geef eerst een omschrijving in (niet verplicht maar toch handig).

  • Klik op de knop New om nieuwe waarden in te geven.Geef de gewenste waard/naam in achter Display Name en voeg eventueel een Description toe. De pijltjes achteraan kunt u gebruiken om eventueel de volgorde te wijzigen en met het kruisje kan je een variabele opnieuw verwijderen.
  • Klik op Save om te bewaren.

  • Keer terug naar u ThirdPersonCharacter Blueprint.
  • Maak een nieuwe variabele aan (bv. MijnKindjes).
  • Zoek naar Kindjes. U vindt de enum Kindjes.

  • Voeg de variabele MijnKindjes toe aan de Blueprint. Merk bij de SET de keuzelijst op.


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

  • IC BC017 – kan ICT veilig en duurzaam gebruiken
  • IC BC234 – kan de basisprincipes van programmeren in een specifieke ontwikkelomgeving toepassen
  • IC BC236 – kan eenvoudige wijzigingen aan een programma aanbrengen
  • IC BC241 – kan een programma in een specifieke ontwikkelomgeving maken
  • IC BC250 – kan bij het programmeren in functie van een specifieke ontwikkelomgeving, een juiste logica volgen

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.