Programmeren van een 3D omgeving in Unreal Engine – Packaging

print
Deze handleiding maakt deel uit van het programmeertraject:



Wat vooraf ging


Inleiding

We zijn aan het einde van het eerste jaar Programmeren van een 3D omgeving in Unreal Engine gekomen.

We hebben de afgelopen maanden heel wat technieken besproken en deze geïntegreerd in een Twin Stick Shooter.

Wat ons nog rest is ons project tot een uitvoerbare Executable (EXE-bestand) te bundelen.


Voorbereiding

De eerste voorbereiding start helemaal in het begin. Unreal Engine kan “geshipt” worden op meerdere platformen tegelijkertijd. Ieder van deze platformen heeft zijn eigen kenmerken, zijn eigen specificaties en stelt zijn eigen eisen aan de framerate. Dit is iets waar we pas later dieper op ingaan, maar het kan geen kwaad er van in het begin rekening mee te houden.

Bepaal de gewenste LOD’s per platform

LOD, level of Detail, zorgt dat Unreal Engine, op een grotere afstand, een minder gedetailleerde variant, met een lagere polycount, van dezelfde mesh gebruikt.

U kunt LOD’s automatisch of handmatig instellen. Later gaan we hier dieper op in en bespreken we de handmatige instelling. Nu bekijken we enkel hoe u het automatisch kunt doen.

  • Open de Mesh-editor van de mesh waar u LOD’s wilt aan toekennen (bv. hett standbeeld).
  • In het Details-panel, kies de meest geschikte LOD Group, bv. LargeProp. De groep bepaalt de waarden die worden toegepast, zodat alle LOD’s binnen eenzelfde groep gelijkaardig gegenereerd worden.

  • Wijzig de eigenschap Number of LOD’s naar bv. 4, laat Auto Compute LOD Distance aangevinkt voor het gemak en klik op Apply Changes.

U kunt vervolgens de verschillende LOD levels bekijken. Zo heeft LOD 3 slechts 1.120 triangles.

LOD’s worden bepaald op basis van het percentage van het scherm het object in neemt.

LOD’s maken meerdere versies van dezelfde mesh, dit kost geheugen. Door een minder complexe mesh te gebruiken indien de mesh minder plaats inneemt op het scherm wint u aan performatie.

Bovendien hoeft u niet steeds te starten bij LOD 0, de meest gedetailleerde versie van de mesh. U zou kunnen starten bij LOD 1 of LOD 2 als dichtstbijzijnde LOD (en dus LOD 0 niet gebruiken). Dit kunt u instellen per platform en zo kunt u per platform bepalen hoe gedetailleerd de mesh zal zijn die gebruikt wordt. Onderstaande afbeelding toont hoe u dit kunt doen.

Material Feature Level Switch

De Material Feature Level Switch node laat toe te switchen tussen de materialen naargelang de device waarop het programma uitgevoerd wordt.  Vooral wanneer u wilt shippen naar meerdere devices kan deze node nuttig zijn.


Packaging

Packaging is het bundelen van uw project tot een uitvoerbaar programma dat u nadien kunt verdelen (distribueren). Men noemt dit ook  “Cooking“.

Soms kan dit heel omslachtig zijn, maar met Unreal Engine valt dat best heel goed mee. U moet het volgende controlleren.

Omschrijving

Omschrijf het project.

  • Ga naar EditProject SettingsProject – Description.
  • En, indien u meerdere mappen zou hebben, selecteer de Game Default Map.

Game Default Map

Bepaal de Game Default Map, de standaardmap, waarmee het programma moet opstarten.

  • Ga naar EditProject SettingsProjectMaps & Modes.
  • Indien u meerdere mappen zou hebben selecteert u de Game Default Map.

Packaging

Onderstaande selecteert u of vinkt u aan, een overzicht.

  • Ga naar EditProject SettingsProjectPackaging.

  • Vink Use Pak file aan zodat alles samengepakt wordt in één enkel bestand.

  • U kunt het te maken Package comprimeren, zodat het minder plaats inneemt. Vink Create compressed cooked packages aan.

  • Sluit Editor Content, die u wellicht niet gebruikt, uit. Vink Exclude editor content when cooking aan.

U kunt de te “Cooken” lijsten bepalen (indien u bv. testmappen (testlevels) hebt die niet nodig zijn in de eigenlijke “Cook” maakt u een lijst met alle mappen behalve deze testmappen). U doet dit onder Directories to never cook. Duidt u niets aan in deze lijst dan wordt alles “gecooked”.

  • U doet dit door op het +-knopje te klikken en de folders te selecteren die u niet wenst te “cooken”.

  • Vink Full Rebuild aan om altijd een volledige rebuild te doen. Dit duurt wat langer maar u bent zeker dat alles gebuild is.

  • Vink For Distribution aan.

Platforminstellingen

De platforminstellingen staan standaard in 90% van de projecten correct. Toch is het aan te raden de instellingen te overlopen voor alle platformen waarvoor u wilt Shippen.

Belangrijk, breng enkel wijzigingen aan indien u zeker bent van uw stuk. Voor Android is het belangrijk uw Keys in te geven onder Distribution Signing.

We nemen eens een kijkje naar een paar platformen.

Merk op dat dit een Windows-project is dat (nog) niet is geconfigureerd voor Android.

Voor Android is het belangrijk uw Keys in te geven onder Distribution Signing.

Build Configuration – Shipping

Bepaal de Build Configuratie, maar om te Shippen kiest u steeds Shipping.

  • Ga naar EditProject SettingsProjectPackaging – Project – Build Configuration.
  • Selecteer Shipping.

Package Project

  • Ga naar FilePackage Project en kies welke package u wenst te maken bv. Windows (64 bit).

  • Duid de map aan waar het moet bewaard worden en druk op OK.

Wacht tot de Cooking klaar is en u vindt uw EXE-bestand in de gekozen map dat u nadien kunt verdelen.

Tip


Project Twin Stick Shooter – Packaging

We werken onze Twin Stick Shooter af met het maken van een EXE.

Wie wilt kan ook optioneel de Polishing Pass video bekijken (al zijn sommige technieken (Cascade) ondertussen achterhaald).

Packaging and Conclusion

Optional – Simple Polish Pass


Behandelde Basiscompetenties uit de module ICT Programmeren – Integratie externe functionaliteiten

  • IC BC017 – kan ICT veilig en duurzaam gebruiken
  • IC BC256 – kan diverse elementen tot een nieuw betekenisvol geheel samenstellen
  • IC BC288 – kan ICT-problemen oplossen

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.