Elysium von KITBASH3D in Cliffs Pack von Brushify
Serath, ein kostenloser Epic Games Charakter aus einem Spiel von Paragon, erkundet hier die Cliffs Demo-Map von Brushify. Die Assets sind aus Elysium von KITBASH3D. Das Wetter und die Wolken, auch der Mond und die Nordlichter (Aurora) werden von Hammer Tool Ultra Dynamic Sky erzeugt.
PROBLEM-LÖSUNGEN
Lasse 3 KI auf meiner Map laufen. Laufen zu einem zufälligen Punkt und warten 3 Sekunden und laufen dann wieder zu einem Punkt… uns so weiter. Das klappt auch soweit, auch wenn man sich in den Weg stellt. Nur, wenn innerhalb der 3 Sekunden was im Weg steht, bleiben die KI stehen. Haben sich auch schon 2 selbst blockiert
Die Lösung: Bei “Al MoveTo” den Ausgang “On Fail” auch mit “Delay” verbinden.
Leider stolpert Serath ziemlich häufig, kommt manchmal nicht mal die Treppe hoch Hier der Tipp, wie man das ändert. In der Blueprint Class des Characters im “Character Movement” unter “Walking” den Wert “Max Step Height” und “Walkable Floor Angle” erhöhen.
NavMashBoundVolume lässt auf der Treppe den Character nicht laufen! Im Asset der Treppe ist die Collision auf “Use Complex Collision As Simple” eingestellt. Sollte doch dann eigentlich klappen
Die Lösung: Es gibt in den Einstellungen unter Project Settings -> Navigation Mesh. Hier die Einstellung bei “Agent Max Step Height” erhöhen
MORE FROM THE GAMPE’S COLLECTION
Part 02 – Atompunk Projekt
Modular und Random Charakter | Wechsel von Kleidung und Materialen
In diesem Video geht Hauptsächlich um den Austausch des Charakters. Zum Einsatz kommt das kostenlose “Stylized Character Kit: Casual 01“, es hat etliche Assets und Materialen dabei, es bietet sich deshalb an, einen modularen Charakter aufzubauen. Wir werden dazu ein Custom Event und drei Funktionen anlegen, mit deren Hilfe bei jedem Neustart zufällig Kleidungstücke ausgewählt werden. Dazu zählt auch, das zufällig die Materialen gesetzt werden.
Im Spiel kann dann per Tastendruck die Kleidung erneut geändert werden. Außerdem können die Materialen per Taste der Reihe nach durchgeschaltet werden.
Zudem wird die Steuerung des Charakters geändert und das Tutorial Widget vom Superhero Flight wird ausgeblendet.
Steuerung anpassen
Los geht es mit der Anpassung der Steuerung, WASD ist doch etwas unpraktisch. Die Datei (IMC_SuperheroFlight) dazu findest Du im Input-Ordner von SuperheroFlight. Die Steuerung erfolgt dann mit den Pfeiltasten und der linken Maustaste.
Der Editor-Text aus dem Video:
Download des neuen Charakters
Stylized Character Kit: Casual 01
https://www.unrealengine.com/marketplace/en-US/product/stylized-male-character-kit-casual
Der Charakter ist für die UE4 angelegt und lässt sich nicht ohne weiteres in der UE5 nutzen. Man kann ihn zwar schon direkt in ein UE5 Projekt laden, dann werden aber Schatten beim bewegen in die Landschaft “gemalt”. Um das zu umgehen, muss zuerst ein Projekt in der UE 4.27 angelegt werden, dieses kann dann im Ordner auf 5.0 “geswitcht” werden.
Beim starten des Projekts werden alle Umstellungen von der Engine vorgenommen. Der Ordner “SCK_Casual01” kann dann in den “Atompunk” Ordner kopiert werden.
Der Editor-Text aus dem Video:
Charakter einrichten
Lege eine Kopie des UE4 SuperheroFlight Charakters an: “BP_Player_UE4_SCK“. UE5 können wir nicht verwenden, da der SCK-Charakter nicht auf UE5 geriggt ist. Das wäre etwas aufwendiger, mache ich vielleicht in einem extra Video. Die Fuss-KI ist dann halt nicht perfekt, wie bei Manny. Ich denke aber, damit kann man leben.
Tausche nun das Haupt-Mesh (CharacterMesh0) mit “MESH_H_A1” aus und lade die Meshes der Kleidung und des Körpers darunter. Wichtig, sie müssen unterhalb des Haupt-Meshes sein. Benenne sie um, damit man besser weiß, was dahinter steckt. Die Meshes sind zuerst falsch ausgerichtet, das ändert sich sobald Du die Location und die Rotation auf ‘0,0‘ setzt.
Gehe nun in des “Construction Script” und lade mit der Node “Set Leader Pose Component(Mesh)” alle Meshes. Compilen / Speichern und der neue Charakter sollte einsetzbar sein. Ziehe ihn in den Viewport und stelle den Pawn auf Player 0.
Der Editor-Text aus dem Video:
Zufälliges Outfit
Wir wechseln zum EventGraph und legen dort das Custom Event “RandomizeOutfit” an. Die Blueprint dazu legen wir in die Funktion “RandomPart“. Damit was ausgewählt werden kann, muss zuvor aber noch die Outfits in Arrays gespeichert werden.
Folgende Array bzw. Variablen mit Variable Type “Skeletal Mesh” werden benötigt:
UpperBodyParts:
| HairParts:
|
GlassesParts:
| BeardParts:
|
Damit die Funktion aufgerufen wird, verbinde sie mit dem Custom Event “RandomizeOutfit“. Das ganze 4mal mit den entsprechenden Outfits. Im “Construction Script” muss nun noch das Custom Event eingefügt werden, damit es aufgerufen wird. Im Moment werden die Meshes noch von den Components vorgegeben und müssen gelöscht werden.
Nun sollte bei jedem “Play” des Spieles bzw. bei Klicken auf “Compile” das Outfit zufällig ausgewählt werden. Es wird aber nicht berücksichtigt, das die Outfits Harre, Bart und Brille auch nicht gesetzt werden können. Dazu fügen wir noch in der Funktion den Input “AllowNoting” ein und setzen den hacken bei Aufruf der Funktion.
Der Editor-Text aus dem Video:
Im Spiel neues Outfit auswählen
Soweit so gut, aber was ist, wenn das Outfit nicht gefällt. Es im Spiel zu ändern, wäre nicht schlecht. Wir fügen dazu im “Event Graph” einen Aufruf des Events “Randomize Outfit” mit der Taste M ein. Kann natürlich auch jede andere Taste sein.
Zuvor laden wir aber noch einen Sound für den Wechsel herunter. Auf der Seite https://sonniss.com/gameaudiogdc wird jedes Jahr jede Menge kostenlose Sounds zur Verfügung gestellt. Hier kann man immer mal schauen, ob was dabei ist. Ich fand Sound “Organic_Whoosh_14” ganz passend. Ziehe ihn in den Sound-Ordner und starte ihn bei jeden Wechsel mit dem Note “Play Sound at Location“.
Der Editor-Text aus dem Video:
Material zufällig tauschen
Das mit den zufälligen Outfits klappt soweit ganz gut, was noch fehlt, sind die Materialen. Hier erstellen wir die Funktion “RandomMaterial” mit den Inputs “PartMesh” (Skinned Mesh) und “MaterialOptionen” (Material Interface). Bitte beachten, es muss “Material Interface” gewählt werden, sonst klappt es nicht mit der Zuordnung. Es wird zuerst die Länge des Array ermittelt und “1” abgezogen, da Arrays immer mit “0” anfangen zu zählen. Aus der Anzahl wird zufällig ein Material-Index gezogen und das Material gesetzt.
Nun müssen die Materialien in Arrays gespeichert werden, das kennst Du ja bereits von den Outfits. Mit dem Unterschied das als Variable Type “Material Interface” genommen wird. Folgende Arrays werden angelegt:
TrousersMaterials:
| JacketMaterials:
|
GlassesMaterials:
| TShirtMaterials:
|
BeardMaterials:
ACHTUNG: Im Video werden die falschen Materialen zugeordnet! | HairLureMaterials:
|
HairGridMaterials:
|
Damit die Funktion aufgerufen wird, muss sie im EventGraph eingefügt werden. Gehe zum letzten “Random Part” und setze “Random Material” ein, verknüpfe Sie noch mit den Mesh und der Material-Array.
Das machen wir bei der Hose, der Brille und dem Bart [1]. Beim Oberköper ist es nicht ganz so einfach, hier gibt es 3 Möglichkeiten: T-Shirt, Jacke und Body. Ebenso bei der Frisur, hier haben wir 2 Möglichkeiten. Deshalb teilen wir den Pfad erst einmal mit “Sequence” (Then 0, Then 1).
Dann splitten wir anhand des Namens des Meshes, das der Oberkörper erhalten hat, auf. Den Namen erhalten wir über die Notes “Get Display Name” und “Get Skinned Asset“. Mit einem “Switch on String” verzweigen wir entsprechend. Wobei der Body als Default gesetzt ist und auch nur ein Material hat [2].
Das gleiche machen wir so bei den Harren, hier gibt es nur 2 Möglichkeiten [3]. Sollte ein Mesh nicht gesetzt sein, erfolgt kein Material-Wechsel da der Switsch auch nicht reagiert.
Der Editor-Text aus dem Video:
Material durchschalten
So könnte man es eigentlich lassen, aber mir reicht es noch nicht. Schön wäre, wenn die Materialen der Reihe nach geändert würden. Dazu lege die Funktion “NextMaterial” an, mit dem Input “PartMesh” (Skinned Mesh). Wir benötigen zum zwischen speichern, zwei lokale Variablen:
- MaterialArray – Variable Typ: Material Interface -> Array
- MaterialIndex – Variable Typ: Integer -> Single
ACHTUNG: Im Video wird der Integer “MaterialIndex” als “Array” angelegt, muss aber als “Single” angelegt werden!
Zunächst wird ermittelt, welches Mesh geändert werden soll und die dazu gehörige Material-Array wird gesetzt (Set Material Array). Dann wird der derzeitige Material-Index abgefragt und Lokal gespeichert (Get Index). Jetzt wird der Material-Index um “1” hochgezählt und überprüft ob die Länge der Material-Array überschritten ist, sollte das der Fall sein, wird der Index auf “0” gesetzt. Das Ergebnis wird Lokal gespeichert (Next Material).
Da wird nun alle nötigen Daten ermittelt haben, können wir diese mit “GET” abfragen und das Material mit “Set Material” setzen. Zu guter Letzt spielen wir mit “Spawn Sound at Location” noch den Wechsel-Sound ab.
Die Funktion steht, sie muss nur noch im EventGraph aufgerufen werden. Als Event nehmen wir eine Key-Eingabe, ich verwende hier die Nummernblock Tasten 1-5. Du kannst hier natürlich andere Tasten nehmen. Mit der Funktion “NextMaterial” verbinden und das jeweilige Mesh verknüpfen. Fertig.
Der Editor-Text aus dem Video:
Tutorial Widget ausblenden
Bevor wir zum Ende des (doch etwas längeren) Videos kommen, blenden wir noch das Tutorial Widget aus und entfernen den bisherigen Charakter (Sorry Quinn).
Wie man den Charakter entfernt muss ich sicher nicht umschreiben. Um das Widget auszublenden, sucht ihr im EventGraph nach dem Event “BeginnPlay” und kappt mit Rechtsklick und “Break This Link” die Verbindung. Dann verschiebt ihr das Event “BeginnPlay” eine Box nach rechts in die Comment-Box “Add Input Mapping“. Dort dann noch mit “Cast to PlayerController” verlinken. Compile und Save. Das wars…
Der Editor-Text aus dem Video:
Das Video zum Tutorial auf YouTube:
Part 01 Atompunk Projekt
Kitbash3D Modele mit Cargo laden | Landschaft gestalten
Hier nun Part 01 im Projekt ‘Atompunk’. Es geht vor allem um das Einrichten der Landschaft und laden der ersten Kitbash3D Modele. Wenn möglich werden kostenlose Assets und Sounds vom Marktplatz verwendet. Kostenpflichtig sind das ‘Kit Atompunk‘ von Kitbash3D und das Asset ‘Superhero Flight‘. Sind aber ihr Geld auf jeden fall wert.
In diesem Tutorial umgesetzt:
- Ein Projekt für UE 5.2 angelegt, als Vorlage ‘Superhero Flight‘ genommen
- Level Openwold erstellt
- Als Material für das Landscape und Pflanzen das kostenlose Asset ‘Easy Building System‘ importiert
- Kitbash3D Cargo installiert und mit Projekt verknüpft
- 6 Kitbash3D Atompunk Modele importiert
- Sound aus ‘Landscape Mountains‘ importiert
- Aus ‘Virtual Studio‘ die Monitore importiert
- 2 Hochkant Monitore im Level aufgestellt und Bilder importiert
- Den Charakter von Manny zu Quinn gewechselt
- Pawn ausblenden
- Das Gras unter den Gebäuden entfernt
Projekt anlegen und Landscape einrichten
Lege ein neues Projekt an, hier solltest Du mindestens die Version 5.2 nutzen, da wir später auf die neuen Funktionen zugreifen. Erstelle ein neues Level mit dem Namen “Atompunk“, als Template verwende “Openworld“. Wenn Du dem Kurs folgen willst, verwende das kostenpflichtige Asset “Superhero Flight Animations“. Ist aber kein muss, Du kannst auch ein Projekt mit “Third Person” Vorlage erstellen.
Superhero Flight Animations
https://www.unrealengine.com/marketplace/en-US/product/superhero-flight-animations
Für die Landschaft verwenden wir das kostenlose Asset “Easy Building System“:
https://www.unrealengine.com/marketplace/en-US/product/easy-building-system
Lade das Asset runter und erstelle ein Projekt, importiere den Ordner “Easy Building System” in das Projekt “Atompunk” (Rechtsklick -> Migrate). Bei der Auswahl kannst Du “Ok” klicken. Gebe dann den Projekt Ordner von “Atompunk” an, achte darauf, dass der Ordner “Content” ausgewählt ist.
Um das Landschaft-Material zu aktivieren, klicke das Material “MI_Stylized_Landscape” im Ordner “Content/EasyBuildingSystem/Materials/Instances/Stylized” an. Dann klappe den Menüpunkt “Landscape” im Outliner auf und wähle alle “LandscapeStreamingProxy” aus und weiße dann das Material zu. Diese wird erst einmal schwarz, das ist aber normal.
Alles nächstes gehe den Modus “Landscape” und “Paint” und weiße die “Weight-Blended Layer” zu. Klicke dazu auf das Plus-Symbol. Nach dem ersten Anlegen, sollte Deine Landschaft nun “Farbe” bekommen.
Nachdem Du alle vier Layer angelegt hast, kannst Du wieder in den normalen Modus zurück gehen. Gehe nun in den Ordner “SuperheroFlight -> Blueprints -> Characters” und ziehe den Character “BP_Player_UE5” in das Level. Aktiviere ihn noch rechts im Outliner. Noch alles speichern und einem ersten Rundflug steht nichts im Wege.
Der Editor-Text aus dem Video:
Sound vom Free Asset Landscape Mountains importieren
Das Asset ist schon etwas älter und lässt sich nur mit Version 4.24 laden. Der Import in 5.2 ist aber ohne Probleme über “Migrate -> Content Folder UE Projekt ‘Atompunk’” möglich. Neben netten Umgebungs-Sounds, gibt es einen Sound, der später für den Flug-Sound des Superheros noch zum Einsatz kommt.
Asset Landscape Mountains
https://www.unrealengine.com/marketplace/en-US/product/landscape-mountains
Lege folgende 3 Ordner an:
- AAA-Media
- Sound
- Landscape-Mountains
Nachdem die den Ordner “Sounds” verschoben hast, kannst den importierten Ordner “Assets” wieder löschen. Achte drauf, vorher den Ordner zu fixen (Fix Up Redirectors in Folder), damit hier keine Verknüpfung mehr besteht und keine Fehlermeldungen beim nächsten laden angezeigt werden. Ziehe dann die CUE “A_Landscape_Music_Cue ” in das Level, dieser wird dann bei jedem Play abgespielt.
Der Editor-Text aus dem Video:
Pawn ausblenden und Start Map setzen
Dir ist sicher schon beim Start des Levels die Kugel mit dem “WorldGridMaterial” aufgefallen, das ist der sogenannte Pawn und ist nichts anders als Deine Kamera im Editor. Das kannst Du einfach ausblenden, wenn den “Default Game Mode” in den Projekt Settings auf “GameMode” umstellst.
Wenn Du schonmal hier bist, stelle auch gleich dieses Level “Atompunk” in “Default Maps” als Start Map ein.
Der Editor-Text aus dem Video:
Kitbash3D Cargo installieren und mit Projekt verknüpfen
Lade zuerst die kostenlose App Cargo herunter und entpacke sie. Starte die Exe-Datei und logge Dich mit Deinem Account ein:
https://kitbash3d.com/pages/cargo
Gehe dann in die “Account Settings” und wähle als 3D Software “Unreal” in der Version “5.2” und als Texture Size “2k PNG“. Nach Klick auf “Add New Software” kommen 4 weitere Schritte, komischerweise musst Du hier nochmal die 3D Software angeben:
- Select Your 3D Software (Unreal/ 5.2). Unreal Engine muss beendet werden.
- Select Project (Hier den Pfad zur Startdatei “Atompunk.uproject” angeben)
- Open Unreal and Actviate the Plugin (Starte das Projekt und gehe im Menü auf “Window” und klicke ganz unten auf das Cargo-Symbol)
- Connection Test (jetzt wird als Test-Asset eine Burg importiert, diese kannst Du wieder löschen, dafür haben wir in unserem Projekt keine Verwendung)
Der Editor-Text aus dem Video:
Kitbash3D Models download
Jetzt laden wir die Modele mit der Cargo-App in unser Projekt. Dazu gehe zum Menüpunkt “Modele” und selektiere das Kit “Atompunk“, das ist vor allem dann praktisch, wenn man mehrere Kits hat. Als erstes laden wir die Bar (BP_KB3D_ATP_BldgSmBar_A_grp) in das Projekt. Dazu muss sie erstmal in die App über “Download” geladen werden. Dann über “Import” in das Projekt.
Cargo legt automatisch 4 Ordner im Ordner “Cargo” an:
- Actors
- Geometry
- Materials
- Textures
Das Problem dabei, Cargo importiert hier alle Modele hinein, man findet dann einzelne Meshes nur schwer. Vor allem im Ordner “Geometry” wird es schnell unübersichtlich, hier sind die einzelnen Bauteile der Gebäude gespeichert. Deshalb benenne ich nach jedem Import die Ordner “Actors” und “Geometry” um, in diesem Fall “Actors-Bar” und “Geometry-Bar“. Cargo platziert das Model automatisch im Level, du musst es nur noch ausrichten. Lade nun die weiteren Modele in das Projekt (Newspaper, ScienceCenter, University und Train) und platziere sie frei im Level, Du solltest nur in der Mitte noch etwas Platz lassen. Die Schwebebahn habe ich nur so grob an den Bahnhof angefügt, das ist aber vorläufig, später werden wir die Gleise vom Zug und Bahnhof trennen. Die Gleise werden dann von einem Spline erzeugt und die Schwebebahn fährt in den Bahnhof.
Wenn du alle Modele importiert und die Ordner umbenannt hast, muss unbedingt noch der Ordner “Cargo” gefixen werden (Right Click -> Fix Up Redirectors in Folder), sonst gibt es Probleme mit der Gebäude-Blueprint, da wir die Ordner unbenannt haben.
Der Übersicht halber legen wir im Outliner noch den Ordner “Buildings” an und schieben alle Gebäude hinein.
Der Editor-Text aus dem Video:
Import der Monitore aus dem Free Asset ‘Virtual Studio’
Jetzt stellen wir 2 LED-Monitore im Level auf und holen uns diese im Asset ‘Virtual Studio‘. Diese findet man in folgenden Ordner: /Content/Virtual_Studio_Kit/Meshes/Monitors. Es gibt einen Horizontalen und einen Vertikalen, beide markieren und mit Rechtsklick Migrieren.
Virtual Studio
https://www.unrealengine.com/marketplace/en-US/product/virtual-studio
Lege den Ordner “Images” im Ordner “AAA-Media” an und kopiere die Material-Instance “MI_Mon_Vert” aus dem Ordner “Content -> Virtual_Studio_Kit -> Materials -> LEDWalls” dort hin. Mache noch eine Kopie und benennte sie um (MI_Mon_Vert_01, MI_Mon_Vert_02).
Importiere nun zwei PNG-Images mit den Maßen 1080 x 1920 Pixel. Dazu kannst Du eigene Images verwenden oder Du verwendest die aus dem Tutorial. Diese habe ich mit der Bilder-KI AUTOMATIC1111 erstellt und stelle sie gerne zur freien Verfügung.
Öffne die Material-Instancen (MI_Mon_Vert_01, MI_Mon_Vert_02) und weiße die Images-Texture zu. Hier solltest Du auch noch den Glow-Parameter niedriger einstellen, die LED-Wand leuchtet sonst zu stark.
Gehe nun in den Ordner “Content -> Virtual_Studio_Kit -> Meshes -> Monitors” und ziehe zwei Vertikal-Monitore in das Level. Weiße noch die Material-Instancen zu und richte die Monitore aus. Hierzu kannst Du auch in die “Viewport -> Perspective -> Top” gehen. Mit der Taste F wird der Monitor in der Ansicht zentriert.
Als nächstes ziehe noch das StaticMesh “SM_KB3D_ATP_BldgMdNewspaperHQ_A_Base ” unter die Monitore und zentriere alles in der Top-Perspective. Um das leuchten der Monitore zu sehen, kannst Du mit “Strg L” und der Maus die Tages/Nacht Zeit ändern.
Der Editor-Text aus dem Video:
Gras unter Gebäuden entfernen
Es kommt noch überall das Gras aus dem Boden der Gebäude, das ändern wir jetzt. Gehe dazu in den Landscape-Mode und in Paint. Stelle die Pinsel-Stärke auf “522” und den Falloff auf “0“. Als Layer verwenden wir “Dirt“. Falls Du mal zu viel übermalt hast, kannst mit “Layer Slope” wieder Gras hinzufügen.
Achte dabei darauf, das Du den Layer “Base Landscape” angeklickt hast, sonst kannst Du nicht malen. Zur bessern Sicht kannst Du im Outliner auch Gebäude unsichtbar (Auge) machen, dazu musst Du aber in den normalen Modus wechseln.
Entferne das Gras bei allen Gebäuden, außer der University, das Gebäude wird im nächsten Kapitel bearbeitet.
Der Editor-Text aus dem Video:
Gebäude auf Hügel stellen
Beim Gebäude “University” haben wir eine Terrasse die in den Boden geht, deshalb stellen wir das Gebäude auf einen Hügel. Wechsle dazu wieder in den Landscape-Modus, diesmal in “Sculpt“. Stelle Tool Strenght auf “0,332“, die Brush Size auf “1199” und den Falloff auf “0,328“.
Als Edit Layers wähle “Flat Middle“. Mit “Sculpt” kannst Gelände hinzufügen, mit “Flatten” in gleicher Höhe Gelände hinzufügen und mit “Smooth” kannst Gelände glätten/abflachen. Mit den Tasten Strg und Z kannst Du die letzte Aktion rückgängig machen. Wenn Du einen Sockel hast, ziehe das Gebäude darüber und passe den Sockel, falls nötig, noch an. Um die Terrasse frei zu bekommen, wähle “Erase“.
Zum Schluss entferne noch das Gras im Paint-Modus mit dem “Dirt” Layer.
Der Editor-Text aus dem Video:
Das Video zum Tutorial auf YouTube:
Procedural Content Gerneration – 3D Logo aus 2D Image
In diesem Tutorial lernst Du, wie Du mit dem Plugin “Procedural Content Gerneration” in UE5.3 ein Logo aus einem 2D-Bild erstellst. Dieses Tutorial nutzt die Nodes “Get Texture Data” und “Create Spline” und erstellt und verwendet ein Attribut innerhalb des PCG-Diagramms. Zusätzlich können wichtige Parameter in der “PCG Component” im PCG Graph angepasst werden, ohne das die Notes geändert werden müssen. Es können so schnell verschiedene 3D Logos erstellt werden.
Folgende Werte können angepasst werden:
- Tiefe
- Unschärfe-Min
- Unschärfe-Max
- Mesh Maßstab-Min
- Mesh Maßstab-Max
Vorbereitung
Als erstes musst Du das Plugin “Procedural Content Gerneration Framework” aktivieren, falls Du es noch nicht benutzt hast. Natürlich erst nach dem Neustart verfügbar, kennst Du ja bestimmt bereits.
Du bekommst eine Übersicht welche Plugins und Assets im Tutorial verwendet werden. Für den Kurs ist nur die Unreal Engine 5.2 oder 5.3, das PCG Plugin und eine 2D Vorlage im PNG Format notwendig.
Superhero Flight Animations
https://www.unrealengine.com/marketplace/en-US/product/superhero-flight-animations
Brushify – Tropical Pack
https://www.unrealengine.com/marketplace/en-US/product/brushify-tropical-pack
Als nächstes lege 3 Ordner an:
- PCG (Content/PCG)
- Meshes (Content/PCG/Meshes)
- Texture (Content/PCG/Texture)
Lade das “Starter Content” in Dein Projekt. Hier bekommst Du kostenlos Materialen und Meshes, das wir für das erstellen für des 3D Logo benötigen. Ich verwende das Static Mesh “Shape_Sphere” und das Material “Metal Gold“. Du kannst gerne auch ein anderes Mesh oder Material verwenden. Wenn Du bereits eigene Assets bzw. Meshes hast, kannst Du natürlich auch die nutzen.
Jetzt erstellen wir das 2D Logo, dieses braucht einen Alpha-Kanal (muss durchsichtig sein), damit der Graph dann weiß, wo nichts erscheinen soll. Es sollte quadratisch und nicht größer als 200 x 200 Pixel sein. Wenn Du kein Logo zu Hand hast, findest Du kostenlose Logos auf Canva. Im Kurs wird dieses Twitter-Logo verwendet:
https://www.canva.com/icons/MAE9MOa_Ldk-simple-twitter-icon/
Lade es als “Twitter01.png” mit Haken bei “Transparenter Hintergrund” herunter. Ziehe es dann in den angelegten Ordner “Texture“.
Statt eines Logo aus der Vorlage, kannst Du auch ein Logo aus Text erstellen. Die Schrift sollte Dick sein und eine Farbe haben, welche ist egal, muss nicht schwarz sein. Falls Du ein Logo ohne Alpha-Kanal hast, bekommst Du noch eine Anleitung, wie Du das mit der kostenlosen Software “Gimp” hinbekommst.
2D Vorlagen zum Download
Der Vorbereitungs Editor-Text aus dem Video:
PCG Graph
Bevor wir den PCG Graph erstellen, muss noch die Compression Settings im 2D Image geändert werden. Öffne dazu Twitter01 im Ordner Texture und wähle “VectorDisplacementmap(RGBA)” oder “UserInterface2D(RGBA)“. Speichern nicht vergessen.
Erstelle jetzt den PCG Graph (Rechts-Klick im Ordner PCG – PCG -> PCG Graph) und benenne ihn in “PCGGraphLogo“. Öffne nun den PCG Graph und lege mit Rechtsklick die erste Note “Get Texture Data” an. Als Texture wähle Twitter01 und schalte den Debug-Modus an. Ziehe den PCG Graph in Deine Welt, wenn alles passt, sollte nun das Logo angezeigt werden. Drehe es noch in die richtige Position und speichere.
Erstelle alle weiteren Nodes, das Video, der Editor-Text und der Screenshot unterstützen Dich dabei.
Der PCG Graph Editor-Text aus dem Video:
Exampel
Das Video zum Tutorial auf YouTube:
Lyra 2.0 – Unreal Engine – Showcase
Das beliebte Lyra-Plugin aufgebohrt. Andere Charakter, Slow Motion, 13 KI Bots, 12 Minuten Spielzeit, Dungeon Generator Level, begehbare Tunnel und Türme. Schreibe im Kommentar was dich interessiert.
Das Video zum Showcase auf YouTube:
Verwendete Assets und Charakter
Ausblenden von Material-Slots im Skeletal Mesh
Sicher hattest du auch schon die Situation, wo du ein Material (Kleidung, Accessoire) im Skin deines Charakters ausblenden willst. Um das zu machen, öffnest du das Skeletal Mesh deines Charakters, du findest es meist im Mesh-Ordner deines Charakters.
Hier hast du zwar in der oberen Ebene zugriff auf die Material Slots, kannst sie aber nur auf ‘None‘ stellen, damit verschwinden sie aber nicht.
Wenn du weiter runter gehst und unter ‘LOT 0‘ die ‘Sections‘ aufklappst, kannst Du das betreffende Material mit Rechtsklick und ‘Disable‘ ausblenden. Du kannst es auch jederzeit wieder mit ‘Enable‘ einblenden.
Das Video zum Tutorial auf YouTube:
Texture Streaming Pool Over Budget – Unreal Engine Editor
Obwohl die Warnung „ TEXTURE STREAMING POOL OVER“ (gefolgt von einem Wert in Mebi Bytes ) einen einschüchternden roten Text verwendet und alles in schreienden Großbuchstaben geschrieben ist, ist dies kein Grund zur Panik. Dies ist eine sehr häufige Warnung, die einfach mitteilt, dass die Texturen in der Szene mehr Speicher verbrauchen, als ihnen zugewiesen wurde, und die Engine daher begonnen hat, die Qualität Ihrer Texturen zu verringern, um dies auszugleichen.
Um zu verstehen, warum diese Warnmeldung angezeigt wird, musst du ein grundlegendes Verständnis des Textur-Streaming-Systems von Unreal haben – was es tut und warum es so wichtig ist. Hier ein kurzer Überblick.
Was ist Textur-Streaming?
Ganz gleich, welche Art von Umgebung man erstellt, das Level wird Texturen haben. Selbst wenn du nicht für jedes einzelne Asset 4k-Textur-Maps verwendest, summiert sich die Datenmenge, die diese Texturen enthalten, sehr schnell. Es ist eine Menge Informationen, die man gleichzeitig im Speicher behalten muss.
Hier kommt das Textur-Streaming-System von Unreal ins Spiel. Es verwendet eine Kombination cleverer Techniken, um Texturen nach Bedarf dynamisch ein- und auszuladen, um die Leistung des Spiels zu verbessern. Es verwendet auch eine Detaillierungsoptimierungsmethode namens Mipmapping , um die Auflösung der Texturen zu erhöhen oder zu verringern. Dadurch wird sichergestellt, dass zu jedem Zeitpunkt die geringste Menge an Texturdaten geladen wird, ohne die visuelle Wiedergabetreue zu beeinträchtigen.
Durch die Verwendung dieser Technik nehmen die Texturen 33 % mehr Speicherplatz auf der Festplatte ein, aber es bedeutet, dass weniger Daten gleichzeitig geladen werden. So werden die Texturen auch aus der Ferne viel besser aussehen. Streaming-Daten (einschließlich Mipmap-Informationen) werden als Teil des Verfahrens „ Build all levels“ vorberechnet . Es kann eigenständig generiert werden, indem du im Menü „Build“ die Option „ Build Texture Streaming“ auswählst.
Es gibt mehrere Möglichkeiten, die Warnmeldung „Texture Streaming Pool Over # MiB“ zu beheben.
1. Möglichkeit
Die erste, wenn auch unproduktive Möglichkeit, diesen Fehler zu beheben ist den Befehl ‘DisableAllScreenMessages’ in die Konsole einzugeben und alle Warnmeldungen werden unterdrückt. Kann mit dem Befehl ‘EnableAllScreenMessages‘ auch wieder rückgängig gemacht werden. Damit beim nächsten Start des Editors nicht wieder die Meldung erscheint, kann der Befehl auch im Level-Blueprint ausgeführt werden -> Execute Console Command.
Denke bitte jedoch daran, dass dies nicht wirklich etwas löst, und auch Meldungen unterdrückt, die gewollt sind, zum Beispiel bei der Funktion ‘Print String’.
2. Möglichkeit
Erhöhe einfach die Größe des Textur-Streaming-Pools, um Ihre Texturdaten zu umfassen, und schon bist du fertig. Dies ist natürlich nur ratsam, wenn deine Hardware genügend Speicher übrig hat.
Du kannst die Größe des Streaming-Pools im Editor mit dem folgenden Konsolenbefehl ändern, wobei # der Wert ist, der als Megabyte festlegt wird.
r.Streaming.PoolSize #
Denke daran, dass, wie bei vielen über die Konsole eingegebenen Konfigurationsbefehlen, die Änderung der Größe des Pools auf diese Weise nur vorübergehend ist. Es wird wieder auf den Standardwert zurückgesetzt, wenn der Editor erneut geöffnet wird. Wenn du möchtest, dass diese Änderung bestehen bleibt, musst du zur Konfigurationsdatei meinProject/Config/DefaultEngine.ini des Projekts navigieren und r.Streaming.PoolSize =# zum Abschnitt [/Script/Engine.RendererSettings] hinzufügen. Wenn es nicht existiert, erstelle es.
Wie groß muss mein Textur-Streaming-Pool sein?
Hier ist ein kurzer Tipp, um die Mindestgröße in MB herauszufinden, die dein Textur-Streaming-Pool haben muss, um die Texturdaten des Levels zu erfassen.
Wenn du r.Streaming.PoolSize 1 in die Konsole eingibst, wird der Textur-Streaming-Pool auf 1 MB gesetzt und alle Texturen werden sofort ausgeblendet – aber das ist in Ordnung. Es ist nur vorübergehend.
Du wirst jetzt bemerken, dass, während du dich auf der Karte bewegst, die Warnmeldung über Budgetüberschreitungen des Textur-Streaming-Pools aktualisiert wird, um mitzuteilen, wie viel Budget überzogen wurde. Bewege dich auf der Karte herum und wähle die höchste Zahl aus – dieser Wert (+1) ist die minimale Poolgröße.
Hallo!