Importeren van bestanden naar UE.

UE is programma puur gemaakt voor het opzetten van een scene aan de hand van vooraf gemaakte objecten. Veel eigenschappen van een object kunnen dus niet meer worden aangepast zodra je het object in UE hebt ingeladen. Het is dus zeer belangrijk dat je objecten vooraf goed opgebouwd zijn met eigenschappen zoals je UVW maps als helemaal goed uitgewerkt. Waar je ook rekening mee moet houden is het importeren van materialen. UE bouwt materialen op een andere manier dan bijvoorbeeld 3DS Max. De meeste materialen zullen dus niet volledig geimporteerd kunnen worden in UE. In UE kan je deze echter wel weer opnieuw opbouwen.

Het maken van een landschap aan de hand van een heightmap.

UE heeft de mogelijkheid om een landschap te genereren aan de hand van een zogenaamde heightmap. Zo'n Heightmap (A1) bestaat uit een zwart wit hoogte kaart. Het programma kan deze inlezen en de kleuren omzetten naar hoogtes. Op deze manier kan snel een zeer accuraat landschap met hoogtes worden gegenereerd. Er zijn verschillende mogelijkheden om een Heightmap te verkrijgen. Er zijn websites zoals: terrain.party waar je overal op de wereld een heightmap kan genereren. Deze kaarten zijn echter van een zeer grote schaal en bieden vaak niet genoeg precisie. Een andere manier is het gebruiken van Arcmap en de daarin aanwezige AHN kaarten. In GIS kunnen deze kaarten omgezet worden naar zwart-wit. Op deze manier kan een zeer accurate kaart gemaakt worden (A2).

A1

A2

Het bewerken en het juist schalen van een landschap gegenereerd op basis van een heightmap.

Wanneer je een landschap genereerd op basis van een heightmap wordt 100% wit gezien als de maximale hoogte, en 100% zwart als het diepste punt. Dit betekent dat je in UE je landschap dus ook niet meer hoger of lager kan maken. Dit vormde een probleem omdat water standaard wordt gezien als diepste punt. Om dus de bodem van de rivier nog verder omlaag te kunnen trekken heb ik de heightmap eerst moeten aanpassen. Door in photoshop alle kleuren meer naar grijs te laten gaan heb ik de 100% zwart en wit uit de afbeelding gehaald. Dit gaf mij later de speelruimte om mijn landschap waar nodig was te verhogen of te verlagen. Een ander probleem waar ik tegen aan liep bij het in eerste instantie genereren van het landschap is de hoogte schaal. UE kan uit de Heightmap wel de hoogteverhoudingen halen maar niet de werkelijke hoogteverschillen. Om dit goed te krijgen heb ik gewerkt met een referentie cubus. Deze cubus heb ik de hoogte gegeven van een object wat ik goed kon opmeten in de hoogte kaart. Vervolgens heb ik het landschap verschaald tot deze gelijk was aan de cubus. Denk er hierbij wel aan dat UE in cm werkt en de cubus hier dus ook in getekend moet worden.

Het "schilderen" van het landschap.

Zoals eerder uitgelegd kan je in 3DS Max je landschap met behulp van vertex paint meerdere verschillende materialen toekennen. Je kan dit echter niet goed importeren in UE. Ik heb daarom in UE een nieuwe manier moeten zoeken om dit te kunnen doen. In UE zit gelukkig een soortgelijke functie waarmee je je landschap kan schilderen (A3). In je material die je aan je landschap toevoegd moet je al je gewenste materialen in een landscape mix layer toevoegen (A4). vervolgens kan je met de verschillende lagen over je landschap heen schilderen. Wel liep ik hierbij tegen het probleem dat de UE material editor maximaal 18 texture samples of Maps aankan. Hierdoor kon ik mijn materialen niet zo uitgebreid maken als ik normaal gesproken zou doen.

A3

A4

Dag nacht cyclus maken in UE.

In UE kan je gemakkelijk een zon en een zogenaamde sky sphere toevoegen. Deze twee samen zorgen voor een realistisch ogende zon en lucht met bewolking. Het is echter volledig statisch en deze veranderen dus niet terwijl je het project showcased. Om vervolgens een nachtscene te laten zien zul je eerst weer uit de showcase moeten gaan en alle waardes handmatig aanpassen. Ik wou dit automatiseren zodat wanneer je rondloopt in het plangebied de dag langzaam aan overgaat in nacht enz.. Om dit te kunnen maken in UE ben ik gaan werken met UE blueprints (A5). Blueprints is een systeem in UE wat een visuele vorm van programmeren mogelijk maakt. Met behulp van een tutorial heb ik vervolgens een dag nacht cyclus kunnen maken die makkelijk in te stellen valt zodat de lengte van een dag snel aangepast kan worden. Om de belichting tijdens de dag en tijdens de nacht goed te krijgen heb ik ook een skylight goed opgezet samen met de dag nacht cyclus. Een skylight zorgt voor een gelijkmatig verdeelde belichting over de hele scene. Op deze manier kan je de schaduwen iets minder donker krijgen door difuus licht te simuleren. Om de intensiteit van de skylight goed de dag en nacht te laten volgen heb ik deze gekoppeld aan mijn dag nacht cyclus. Om vervolgens een mooi verloop in intensiteit te krijgen heb ik een formule ingevoegd om de intensiteit te laten verlopen in de vorm van een bel curve.

Ik heb later geprobeerd dit systeem beter te stroomlijnen en een aantal fouten er uit te halen. Na een hoop proberen heb ik een nieuwe manier bedacht die het systeem een stuk simpeler maakt en een aantal van de problemen oplost die er voorheen in zaten. Het nieuwe systeem (A8) maakt gebruik van een timeline (A9) waardoor geen uitgebreide formules nodig zijn om om een ongelijke dag en nacht cyclus te krijgen.

A5

A6

A7

A8

A9

Verlichting aan en uit laten gaan op basis van het dag nacht ritme.

Om de straatverlichting en verlichting in huizen automatisch aan en uit te laten gaan als het dag en nacht wordt heb ik deze gekoppeld aan mijn dag nacht ritme. Het dag nacht ritme genereert een waarde die met 360 omhoog gaat elke 24 uur. Om deze waarde te gebruiken heb ik deze gedeeld door 180. op deze manier kreeg ik een waarde verhoging van 1 elke keer als het licht geschakeld moet worden. Vervolgens heb ik hier een een check aan toegevoegd of de waarde even of oneven is. Op deze manier kon ik het licht schakelen elke keer als de waarde met één verhoogde (A10).

Bij het ontwikkelen van het nieuwe systeem voor een dag en nacht ritme hoorde ook een nieuwe manier voor het aan en uit zetten van de lichten. Dit systeem Gebruikt dezelfde timeline als de dag nacht cyclus om de lampen te switchen (A11).

A10

A11

Het speelbaar maken van de Scene.

Het doel van het gebruiken van UE engine was dat je hierin in realtime door het ontwerp heen kon lopen. Om dit echter goed in te stellen waren er eerst een aantal dingen die ik moest uitzoeken. Ik kreeg het in eerste instantie niet goed voor elkaar om als een lopend personage rond te lopen in de scene. Ik heb dit op kunnen lossen door standaard content uit een voorbeeld level te importeren en hieruit het personage en de instellingen te kopieren. Het volgende probleem was dat de meeste objecten niet solide waren en ik kon er doorheen lopen. Om dit op te lossen heb ik er voor gezorgd dat alle objecten collision aan hadden staan. Nu kon ik niet meer door de objecten heen lopen. Veel objecten hadden echter een veel te grote of verkeerd gevormde collision box. In de object editor kon je dit echter makkelijk aanpassen zodat de collision box beter lijkt op het daadwerkelijke object.

Prestaties verbeteren.

Het is mij duidelijk geworden dat het een belangrijk onderdeel van je workflow moet worden om met zoveel mogelijk lichte bestanden te werken. Ik heb gemerkt dat mijn scene al snel ontzettend zwaar werd om te draaien en afgezien van de snelle vaste pc's op school kon ik hem bijna nergens vatsoenlijk draaien. Er zijn een aantal onderdelen waar je goed op moet letten om je tekening niet te zwaar te maken. De eerste is de complexiteit van de objecten die je in je tekening laad. Bomen zijn bijvoorbeeld objecten die vaak een groot aantal polygons hebben. Vervolgens worden ook vaak in grote hoeveelheden toegepast. Wat hierbij kan helpen is het opzetten van de zogenaamde LOD's. LOD's zijn levels of detail. LOD's kunnen op basis van de afstand van het object tot aan de camera automatisch het aantal polygons verminderen om de impact op je systeem te verkleinen. De objecten die de allergrootste impact hebben op prestaties zijn lampen. Lampen/licht kan in UE veel doen om een realistisch beeld te creeeren door zowel statische als dynamische schaduwen te maken. Vooral deze dynamische schaduwen zijn echter erg zwaar voor het systeem. Ook ben ik erachter gekomen dat wanneer je meerdere dynamische schaduwen laat overlappen dit het systeem zeer vertraagd. Een simpele mannier om in de engine je prestaties te verbeteren is door de kwaliteit van van bijvoorbeeld materialen, schaduwen en resolutie te verlagen. Wanneer je je scene echter exporteerd zodat je deze ergens anders kan laten zien kan je niet meer deze aanpassingen zomaar aanpassen. Om in een geexporteerde scene de instellingen aan te kunnen passen zul je in je level blueprint een aantal console commands toe moeten voegen (A12). Deze commands passen de instellingen aan zoals in de Engine. Vervolgens kan je de commands koppelen aan toets zoals de 1 toets zodat je dit ingame kunt wisselen.

A12

Snel grote hoeveelheden objecten plaatsen.

In UE kan het soms wenselijk zijn om grote hoeveelheden objecten te plaatsen waarvan de exacte positie niet erg belangrijk is. Denk hierbij bijvoorbeeld aan gras en andere planten/bomen. UE heeft een ingebouwde tool genaamd Foliage (A13). Met deze Foliage tool kan je snel grote gebieden vullen met verschillende planten soorten. Ook zorgt de tool er direct voor om de verschillende objecten een random verdraaiing en verschaling mee te geven om zo een natuurlijker beeld te krijgen. Hoeveelheid verschaling en eventueel zelfs schuinstand kan handmatig begrenst worden.

A13

Maak jouw eigen website met JouwWeb