Unreal Engine – Project Villa – Meshing Pass

print
Deze handleiding maakt deel uit van het programmeertraject:



Wat vooraf ging

Deze handleiding bouwt verder op Unreal Engine – Project Villa – Prototyping (whiteboxing).


Inleiding

De Whitebox/Prototyping fase is beëindigd, we gaan nu over tot de Meshing Pass.

In deze Meshing Pass gaan we:

  • Brushes vervangen door Static Meshes.
  • Materialen toevoegen.
  • Ramen en deuren toevoegen (maar nog niet programmeren).
  • Algemene assets/meshes toevoegen. Maar, we voegen nog geen kleine details toe dit is voor de Polishing fase, dus we voegen misschien wel een kast toe maar hangen nog geen kleren in de kast.

Belangrijk, ik ga me in dit alles beperken tot wat op dit ogenblik (mei 2019) gratis en permanent beschikbaar is op de Epic Marketplace. Ik verwacht niet van de cursisten dat ze extra kosten doen, dus ga ik ze ook niet doen en ga ik me ook beperken tot wat de cursisten tot hun beschikking hebben

Dit houdt in dat we slechts een handvol materialen en meshes gaan kunnen gebruiken. Wat ik niet gratis heb, zoals een bv. keuken, zal ik dus ook niet integreren.

Ik maak gebruik van volgende gratis pakketten:

Realistic Rendering (Learning)

Dit project maakt een eigen project aan. Eens dit project aangemaakt kunt u een level (en alle assets die in dit level staan) migreren door:

  • de map met de levels op te zoeken, een level aan te klikken met de rechtermuisknop en vervolgens te kiezen voor Asset ActionsMigrate….

  • U krijgt een lijst met alle assets die gemigreerd gaan worden.

  • Klik op OK en duid vervolgens de Content-map aan van uw eigen project naar waar deze assets zullen gemigreerd worden.

Free Furniture Pack (Marketplace Permanently Free Collection)

Een pakket met gratis meubilair.

  • Via Add To Project kunt u dit rechtstreeks aan uw eigen project toevoegen.

Advanced Glass Material Pack (Marketplace Permanently Free Collection)

Betere glasmaterialen dan het standaardglas.

  • Via Add To Project kunt u dit rechtstreeks aan uw eigen project toevoegen.

Necro’s Utility Material Pack (Marketplace Permanently Free Collection)

Hoewel ik niet echt wild ben van dit pakket bevat het bruikbaar dakmateriaal.

  • Via Add To Project kunt u dit rechtstreeks aan uw eigen project toevoegen.

Industry Props (Marketplace Permanently Free Collection)

Omdat we geen gratis objecten hebben voor in de Wasplaats kunnen we er misschien wat industriële “Props” kwijt.

Situering van deze handleiding binnen Unreal Engine


Brushes vervangen door Static Meshes

In de Whitebox/Prototyping fase hebben we uitsluitend gewerkt met brushes.

In de Meshing Pass gaan we deze brushes vervangen door meshes. Meshes zijn vaak gedetailleerder, beter uitgewerkt, dan brushes.

Bijna alle brushes die we gebruiken dienen om muren (of vloeren) te bouwen. Nu, we hebben bijna geen gratis bruikbare muur-meshes ter beschikking, en de paar die we toch hebben, er zijn er een paar beschikbaar in de StarterContent, zijn niet op maat en moeten geschaald worden of hebben de vensters niet op de gewenste plaats. Dit is het gevolg van onze doelstelling om op maat te werken.

Ik verwacht ook niet van de studenten dat ze meshes op maat aanmaken in een programma als Blender. Zij die dit kunnen mogen dit uiteraard doen.

Wat we zouden kunnen doen is nieuw Static Meshes aanmaken op basis van de gebruikte brushes door deze te selecteren en te kiezen voor Create Static Mesh.

We zouden dit kunnen doen, ja, hier zou niets mis mee zijn maar, aangezien deze nieuwe meshes niet meteen herbruikbaar zouden zijn is de gemaakte winst minimaal en daarom heb ik besloten gewoon met de brushes verder te werken en er dus geen Static Meshes van te maken.

Moest u er toch Static Meshes van willen maken dan leest u hier hoe u dit kunt doen, vergeet niet de Collision toe te voegen aan de mesh (of u loopt door de muren of valt door de vloer)!

Een uitzondering heb ik moeten maken voor het dak. Het dak materiaal bleef er immers niet “kleven” op de brushes. Ik heb maar meteen de dakvensters meegenomen in de mesh.

Omdat we onder/in het dak moeten kunnen rondlopen moet u:

  • De uitsnijding meenemen in de te creëren mesh.
  • Complex Collision gebruiken (zie afbeelding) hierboven.

Omdat ik deze mesh gemaakt had na het, proberen, toekennen van het dakmateriaal zijn deze opgenomen in de mesh, op zich geen probleem (het feit dat u twee dak materialen ziet is een klein foutje, één was voldoende).

Als we nadien het project Builden krijgen we een Warning “Object has wrapping UV’s”. UV worden gebruikt om een 2D textuur te projecteren op een 3D object en/of om de LightMap aan te maken. Blijkbaar is er een probleem met de UV’s.

Unreal Engine maakt automatisch, goede, LightMap UV’s aan, maar een “gewone” UV moet aangemaakt worden in een extern programma als Blender. We gaan deze fout dus niet kunnen verhelpen mits deze buiten de doelstellingen van deze cursus valt. Wie toch wat meer informatie wilt kan o.a. hier terecht.


Materialen

Doordat we reeds gekleurde materialen toegepast hebben in de Whiteboxing/Prototyping fase kunnen we nu gemakkelijker materialen toekennen.

Brushes uitlijnen

Voor we een materiaal toekennen aan brushes kunt u deze het best per materiaal uitlijnen.

Om alles per kleur (materiaal) uit te lijnen zodat de materialen goed aansluiten:

  • Selecteer een materiaal (kleurcode).
  • Kies, in het Detail panel GeometrySelectSelect Matching Material om alle gelijke materalen te selecteren.

  • Onder Alignment kiest u vervolgens de gewenste Alignment, ik koos steeds voor Planar. Het raster in het gekleurde materiaal komt nu van pas om te zien of de uitlijning oké is.

Materialen en Materiaal Instanties

We beschikken slechts over een beperkt aantal materialen. U vindt er onder StarterContentMaterials.

Dak-materiaal vindt u dan weer onder NecroUtilityMatPackMaterialsRoof.

Ook in de map ArchVis, komende van het project Realistic Rendering, vindt u een paar materialen waarvan ik er één ga gebruiken als WallPaint.

Deze WallPaint komt als een Master Material en instanties van deze Master Materials (met de extentie _inst). Een instantie is een voorkomen van het Master Material met gewijzigde instellingen/parameters waardoor een variant van het Master Material bekomen wordt.

  • Om een instantie aan te maken, klik met de rechtermuisknop op een Master Material en kies voor Create Material Instance.

In deze instantie kunt u vervolgens bepaalde parameters, zoals de kleur (PaintColor), wijzigen. Zo maakt u heel snel variaties van hetzelfde materiaal.

Hieronder ziet u een aantal door mij gemaakte Material Instances.

Het dak

Voor het dak koos ik een materiaal uit NecroUtilityMatPackMaterialsRoof.

Hoewel, dit gaf me standaard geen goed resultaat, teveel verplaatsing (Tesselation). Gelukkig is dit een parameterinstelling die we kunnen wijzigen.

  • Dubbelklik het gebruikte materiaal. Merk de parameter TessHeight op die op 10 staat.

  • Wijzig de parameter TessHeight naar bv. 2.

  • Het resultaat is meer natuurlijk.

Met deze kennis kunt u aan de slag om materialen toe te kennen.


Ramen, deuren en trappen

Deuren

Omdat de deuren geanimeerd worden, via Blueprints, heb ik voorlopig enkel nog maar het deurframe, de mesh SM_DoorFrame geplaatst. Vergeet niet Collision uit te zetten voor SM_DoorFrame, anders gaan we er niet kunnen doorlopen.

Ramen

Voor de ramen heb ik de meshes SM_WindowFrame en SM_GlassWindow gegroepeerd zodat ik ze gemakkelijk samen kan aanbrengen.

Door het Advanced Glass Material Pack beschikt u over betere, dubbele beglazing, ik heb dan ook het glasmateriaal van de mesh SM_GlassWindow vervangen door een glas uit dit Advanced Glass Material Pack. Ik heb niet steeds hetzelfde glasmateriaal gekozen, bv. voor de Wasplaats heb ik een vuil glasmateriaal gekozen.

Bredere doorgangen, zoals de voordeur heb ik gemaakt door en een deur en een raam naast mekaar te plaatsen. Merk ook het speciale groen glas op (M_Glass_ColoredGreen) uit het Advanced Glass Material Pack.

Voor de schuifdeuren kunt u  SM_SlidingDoors gebruiken uit het project Realistic Rendering. Vergeet niet Collision aan te zetten zodat we niet door vensters kunnen doorlopen.

Merk op, deze SM_SlidingDoor bestaat uit een één enkele mesh. Om de schuifdeur te openen hebt u minstens 2 meshes nodig die afzonderlijk kunnen verplaatst worden.

Omdat we ons beperken tot gratis bestaande content gaan we de schuifdeur niet kunnen verplaatsen/openen.

Trap

StarterContent komt met een trap maar het ontwerp is niet echt een meerwaarde en dus de moeite en tijd niet waard. Ik heb de trappen gelaten zoals ze zijn en enkel een materiaal toegekend aan de reeds aanwezige trap, aangemaakt met Brushes gedurende de Prototyping/Whitebox fase.


Meubilair en belichting

Meubilair

Met de ramen, deuren en trap afgewerkt heb ik me een uurtje bezig gehouden met meubilair, en hier en daar al wat decoratie, toe te voegen.

Zoals gesteld in het begin van deze handleiding beperkte ik me tot wat gratis en permanent beschikbaar is op de Marketplace van Epic. Dit maakt dat mijn badkamer wel een bad heeft maar geen lavabo en dat u tevergeefs op zoek kunt naar een ijskast in de keuken.

Het meeste meubilair komt uit het Free Furniture Pack.

Let op, kasten komen in verschillende onderdelen, deuren en schuiven afzonderlijk.

Wilt u ze samengesteld, neem dan de Blueprint.

Deze Blueprints maken het ook gemakkelijker om de onderdelen afzonderlijk te animeren, bv. de deuren en schuiven te openen via programmeercode.

Ik heb slechts een snelle, eerste plaatsing van het meubilair en decoratie gedaan om een algemene indruk te krijgen. Bij de afwerking, Polishing face, kan er nog decoratie en meubilair worden toegevoegd.

Tip, om het plaatsen van objecten gemakkelijker te maken, vink Surface Snapping aan. Actors die u in het level plaatst zullen zo gemakkelijk aansluiten (snappen) bij reeds aanwezige objecten (bv. een kader snapt tegen de muur).

Belichting

Voor de belichting heb ik al de nodige spotjes aangebracht, en ze allemaal aangezet, met een paar kleine aanpassingen aan de instellingen om een algemene indruk te krijgen.

Ik heb overal gekozen voor Spotlights met slechts volgende wijzigingen: Attenuation Radius = 260, Inner Cone Angle = 44, Outer Cone Angle = 60. De staande lampen hebben een PointLight met een beperkte Attenuation Radius = 100. De zolder heb ik niet voorzien van licht, u zal een zaklamp nodig hebben om deze te betreden. Deze instellingen zorgen voor een redelijke natuurlijke overgang zonder overlapping die leiden tot foutieve weergaven.

De belichting krijgt de nodige aandacht in de Lighting fase.

Schermafdrukken

Om een paar schermafdrukken om u een idee te geven van het eindresultaat van de Meshing Pass.


Conclusie

De Meshing pass was, mede door het reeds toekennen van kleurcode(materialen) tijden de Prototyping/Whiteboxing fase vrij snel gedaan. Eigenlijk ben ik geen noemenswaardige problemen tegengekomen.

De mezelf opgelegde beperking van gratis en permanent beschikbaar is op de Marketplace van Epic maakt dat het allemaal nog wel veel beter kan, met betere materialen en beter meubilair, al kom je met het gratis gedeelde toch al een mooi eindje (vooral de glasmaterialen zijn een mooie verbetering tegenover het standaard glasmateriaal).

En dan nu… interactie door te programmeren!

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.