Verschiedene Texturen

  • Servus,


    ich hab da mal ein Problem. Bin erst seit ein paar Wochen in der Unreal Engine 5 unterwegs und bin noch ein Anfänger. Ich arbeite momentan einen Kurs

    ab, aber dieser ist für die UE4 gedacht, ist ja nicht schlimm.

    Mein Problem ist anscheinend so simpel das es nirgends erklärt wird.

    Kurz: Ich habe eine Wand aus einer Box erstellt. Habe ein Material (Brick) erstellt und dieses auf die Wand vergeben. Schön und gut, jetzt wollte ich

    aber nicht alle vier Seiten der Wand als Brick haben sondern eine Seite mit einer anderen Textur versehen. Ich kann nicht eine Seite/Fläche der

    Wand auswählen/markieren sondern immer nur die komplette Box/Wand.

    Wenn ich Videos zur UE4 anschaue können die Macher ganz einfach eine Fläche anwählen und die Textur anwenden. Anscheinend ist das in der

    UE5 irgendwie anders wie manch andere Sachen auch.

    Irgendwas mache ich falsch.


    Ich bedanke mich schon mal für dieses tolle Forum und der Möglichkeit sich hier auszutauschen.


    Grüße

  • Sleepy

    Hat das Thema freigeschaltet.
    • Offizieller Beitrag

    Hi und Willkommen im Forum.

    Wo hast du den deine Wand erstellt ? Wenn du deine Wand in einem 3D Programm wie beispielsweise Blender erstellt hast, braucht dein Mesh zuerst einmal eine UV Map.

    Willst du auf deine Wand unterschiedliche Materials drauf haben, kannst du im 3D Programm einfach jeder Seite ein anderes Material geben. (ColorID)

    Du musst dein Mesh unbedingt als FBX exportieren, und darauf achten, das beim Export die Colorid mit exportiert werden. OBJ kann beispielsweise keine ColorIDs exportieren.

    Im grunde erstellt du in Blender einfach ein Material, zb Pink, Grün, Blau. Wenn du dieses Mesh in Unreal importierst, werden diese Materials als Slot erkannt. Du kannst dann einfach ein beliebiges Material in den Slot legen und deine Wand entsprechen Texturieren.


    Bedenke das deine UV eine wichtige Rolle dabei spielt wie deine Textur in der Unreal aussieht.

  • Hi Sleepy


    danke für deine schnelle Antwort. Ich war mit meiner Frage bissl unpräzise.


    Die Box habe ich in Unreal erstellt. Die klassische graue Box. Ein paar Wände gezogen, mein angefertigtes Material

    angewandt und das hat soweit gepasst. Nur wollte ich auf einer Seite einen anderen Anstrich verpassen wie es bei einem

    Haus auch ist. Drinnen Mauer/Brick und außen Putz :)

  • An deiner Stelle würde ich die Box in Blender machen und mit ColorID arbeiten. Ich glaube, ganz am Anfang fällt jeder darauf rein, so auch ich, und wundert sich, dass es so, wie du es haben willst, irgendwie nicht funktioniert. Du kannst ein recht komplexes Material erstellen, mit Texturcoordinaten und so einigem anderen Schnickschnack, dann kannst es dir schon hinfummeln. Aber dann muss das Material, bzw. die dazugehörige Textur, auch genau ausgerichtet sein, du kannst nur schwierig etwas ändern usw. Einfacher ist es aber, wenn du in Blender einer Seite ein anderes Material verpasst und dann dieser Seite in der Engine einfach das gewünschte Material zuweist. Das schöne ist dann auch, wenn du es weiter verfolgen möchtest, dann kannst du im Spiel auch ganz leicht die Seite neu tapezieren.

  • P.S. Ich nehme bei meiner Antwort jetzt an, dass du die Primitives aus der Engine meinst. Die sind eigentlich nur als Platzhalter gut. Du kannst aber auch den Block exportieren, in Blender unwrappen und dann eine Textur erstellen, zum Beispiel mit Painter(Komfortabel), oder Photoshop/Paint(Geht auch, aber nicht ganz so Komfortabel), eben halt auf die UV direkt draufmalen. Würde dann auch gehen.

  • hmmmm,


    Ich kann mir nicht vorstellen, dass man mit der Engine so kompliziert vorgehen muss :)

    Da müsste ich alle Texturen aus Unreal exportieren und in Blender mein Material anfertigen und danach alles wieder in Unreal importieren und feststellen das die Größe der Wände nicht passt :)


    Externer Inhalt youtu.be
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.
    Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.


    In dem Video ab min 5:20 macht er das Texturieren ganz Simpel und ohne Blender.

    Aber er nutzt UE4 das sollte UE5 auch hinbekommen. Vielleicht ne Tastenkombination?

    • Offizieller Beitrag

    Normalerweise würdest du keine Unreal Grundkörper verwenden, sondern deine Meshes in einem 3D Programm erstellen.


    Für dich ist es vermutlich so, dass du mit Blender & Co. nicht zurecht kommst und es für dich einfacher ist alles in Unreal zu machen. Ich versichere dir, wenn du Blender oder welches Programm auch immer du verwenden willst, erstmal beherscht, dann wirst du viel lieber alles im 3D Programm machen.


    Im 3D Programm hast du für die Mesherstellung auch ganz andere Werkzeuge als in Unreal.

    In dem Video ab min 5:20 macht er das Texturieren ganz Simpel und ohne Blender.

    Aber er nutzt UE4 das sollte UE5 auch hinbekommen. Vielleicht ne Tastenkombination?

    Das ist ja nun auch nur ein Würfel. Sobald du zb ein Panel machen willst, kommst du um ein 3D Programm nicht herum.


    Du kannst hier im Forum wirklich jede Frage stellen wenn du nicht weiterkommst.

  • Ich hab auch schon bemerkt, dass ich mich nicht vor anderen 3D Programmen flüchten kann :)

    Dachte halt das so simple Sachen wie ein paar Wände stellen und eine Map bauen kann wie Duke Nukem aus 1995 in Unreal machbar wäre ^^


    Für mehr muss halt Blender oder andere Software ran. Früher oder später müsste ich ja da durch. Dann lieber früher.

    Dann werd ich erstmal Blender studieren.


    Fragen werden noch kommen, aber danke erstmal für die Hilfe :thumbup:

  • Da müsste ich alle Texturen aus Unreal exportieren und in Blender mein Material anfertigen und danach alles wieder in Unreal importieren und feststellen das die Größe der Wände nicht passt

    Ich glaube, du hast da was falsch verstanden. Du musst gar nichts aus der Unreal exportieren und wieder Importieren.

    Du musst lediglich dein Mauerteil in Blender formen, so wie du es haben willst und eine allgemeine ColorID zuweisen und für die Fläche, die anders sein soll, eine andere ColorID. Eine UV-Map erstellen und mit dem FBX exportieren. Du brauchst dazu kein Material in Blender oder so erstellen, nur die IDs zuweisen. Die Texturen/Materialien kannst du dann in den ID-Slots zuweisen. Das wäre dann ein Beispiel, wo du dann auch relativ einfach per BP das Material für eine Fläche per BP ändern kannst.

    Ein etwas "normaleres" Vorgehen wäre, du erstellst deine Wand, erstellst eine UV-Map, unwrapst diese und exportierst sie als Bilddatei. Dann kannst du sie mit Paint, Photoshop etc. ausfüllen, wie in einem Malbuch, und aus dieser entstehenden Textur dann dein Material bauen.

    Eine weitere Möglichkeit wäre, du baust wieder deine Mauer, UV-Map erstellen, Unwrap, als FBX exportieren und dann in Substance Painter die Flächen entsprechend einfärben, Textur exportieren und diese dann als Material verwenden.


    Gibt halt viele verschiedene Möglichkeiten und Wege, je nachdem wie du am Ende das Ganze verwenden möchtest und Werkzeugen in deinem Arsenal, weil Substance Painter ist ja zum Beispiel nicht kostenlos.

  • So, wollte mal Bericht erstatten.

    Also, ich hab die Tage mal viel rumprobiert in Blender. Hab mir einen Grundriss von einer Wohnung geschnappt und per Plane die Mauern gezeichnet/gezogen. Danach die Plane hochgezogen auf 3m. Dann per UV Editing mir eine Wandfläche ausgesucht, eine Textur geladen, ein Material erstellt, den Knopf Assign gedrückt und zack bumm, da ist meine Textur. Dann habe ich im UV Editing die Wandfläche UV (Fachbegriff noch nicht im Kopf) an die Textur angepasst. Sieht gut aus.

    Der nächste Schritt war, das Projekt für die UE5 zu exportieren als FBX. In der UE wurde es erfolgreich importiert. Die Texturen musste ich ein Material erstellen und konnte es in den Mesh laden.... Die Skalierung wurde auch 1:1 übernommen. Jetzt habe ich auch gemerkt das Blender viel besser fürs Leveldesign/erstellen ist.


    Das nächste was ich noch lernen muss, wie ich in Blender eine große Textur (hochauflösende Mauer- Textur mit 4x4 Backsteinen) auf eine Wandseite bekomme ohne das die Backsteine verzogen vergrößert werden sondern sich wiederholen in Höhe und Breite...

    Bei der UE habe ich ein Blueprint was der Textur vorgibt, sich zu wiederholen.

    • Offizieller Beitrag

    So, wollte mal Bericht erstatten.

    Also, ich hab die Tage mal viel rumprobiert in Blender. Hab mir einen Grundriss von einer Wohnung geschnappt und per Plane die Mauern gezeichnet/gezogen. Danach die Plane hochgezogen auf 3m. Dann per UV Editing mir eine Wandfläche ausgesucht, eine Textur geladen, ein Material erstellt, den Knopf Assign gedrückt und zack bumm, da ist meine Textur. Dann habe ich im UV Editing die Wandfläche UV (Fachbegriff noch nicht im Kopf) an die Textur angepasst. Sieht gut aus.

    Der nächste Schritt war, das Projekt für die UE5 zu exportieren als FBX. In der UE wurde es erfolgreich importiert. Die Texturen musste ich ein Material erstellen und konnte es in den Mesh laden....

    :thumbup:



    Die Skalierung wurde auch 1:1 übernommen. Jetzt habe ich auch gemerkt das Blender viel besser fürs Leveldesign/erstellen ist.

    Auf jeden Fall aber du solltest bedenken dass ein Mesh das sich im Contentbroweser befindet das Parentmesh ist. Jedes Mesh das du in den Viewport dropst, ist ein Childobjekt von Parentobjekt und somit eine Instanz.

    Baust du dein ganzes Level in Blender, so besteht deine gesamte Szene nur aus Eltern Objekte ohne Instanzierung.

    Das ist festplatten und Performance technisch nicht der beste weg.

    Falls du aber eh nur rumprobieren und experimentieren willst, spricht nichts dagegen.


    Das nächste was ich noch lernen muss, wie ich in Blender eine große Textur (hochauflösende Mauer- Textur mit 4x4 Backsteinen)

    Meist verwendet man keine große Texturen, hierfür werden andere Techniken verwendet wie beispielsweise Decals oder Meshdecals. Du solltest dir besser nicht angewöhnen riesige Texturen zu verwenden :)



    Wandseite bekomme ohne das die Backsteine verzogen vergrößert werden sondern sich wiederholen in Höhe und Breite...

    Mein Tipp: Mach dir eine Checkertextur (Textur mit einem Schachbrettmuster) auf dein Mesh. Du die Kachelwiederholung siehst du Verzerrungen sofort. So kannst du Verzerrungen bereits in Blender finden. Sobald du am Mesh etwas änderst, machst du auch die UV kaputt und musst sie neumachen. Auch das siehst dann über die Checker. Um eine gleichmäßige Auflösung zu haben, sollten übrigens auch alle Kacheln gleich groß sein. Hierfür gibt es auch Tool. Such mal nach "Texeldensity"


    Wie das in Blender funktioniert, können dir andere besser sagen.


    Hier mal ein Bild das zeigt wie es nicht sein sollte:

    https://help.autodesk.com/cloudhelp/ENU/Stingray-Help/stingray_help/images/lightmap_texels.png

  • Also, wenn du in Blender deine Mauer gebaut hast, dann drückst du Strg + A. In dem Menü übernimmst du dann einfachheitshalber "All Transforms". Natürlich dabei das Objekt selektiert halten, das sollte klar sein, auch für zukünftige Schritte.


    Dann gehst du mit Tab in den Editmode. Jetzt würde ich unter Window → New Window, oben in der Menüleiste ein zweites Fenster öffnen. Das stellst du auf die UV-Editor-Ansicht.

    Gehe zurück in das Fenster mit dem Editmode und drücke A, um alles zu selektieren. Nun solltest du im UV-Edit-Fenster sehen, wie die UV-Map deines Objektes aussieht, allerdings noch nicht richtig. Drücke einfach die Taste U, und bei einfachen Objekten reicht meistens, wenn du "Smart UV Project" auswählst. Nun sollte die Mauer aussehen wie ein aufgeschnittener Würfel, nur halt mit den richtigen Proportionen, weil einen wirklichen Würfel hast du ja nicht gebaut.

    Wenn du das alles gemacht hast, dann kannst du die Textur draufpacken und sie wird nicht mehr verzerrt oder so.

    Jetzt halt noch Material hinzufügen, falls noch nicht vorhanden.

    Was den Materialeditor selbst angeht, nun, mit dem kenne ich mich nicht so aus, weil ich Painter für diese Arbeit bevorzuge. Aber auch dieser ist Nodebasierend, ähnlich wie die Unreal Engine. Hier gibt es dann auch Nodes, wo du ein Tiling und Repeat deiner Textur eingeben kannst, sodass die Steine dann nicht so extrem groß wirken, dann brauchst du aber auch eine Seamless, also nahtlose, Textur, weil sonst siehst du ständige Wiederholungen etc. Die sind immer nicht so einfach zu finden, auch wenn bei vielen Seamless steht, irgendwo ist meistens ein Muster, welches sich erkennbar wiederholt.