Assets funktionieren nicht richtig

  • Hallo da draussen, ich hab folgendes Problem:


    Habe von einem Kollegen ein kleines Asset Bundle bekommen und hab das auch richtig in den Content Ordner meines Projekts eingefügt, wenn ich aber in den Content Browser innerhalb meines Projektes gehe sind viele Ordner nicht vorhanden ?(
    Des Weiteren kann ich auch viele Assets nicht verwenden, da diese beispielsweise ihre Materialien verlieren. Auch die Materialien an sich nehmen das Standard Pattern an sobald man diese anklickt :(


    Ich hoffe mir kann jemand weiterhelfen


    MfG
    EvilCookie

  • uasset Dateien sind von der Engine schon gepackt.
    Hast du zu dem Asset Bundle das ganze Projekt bekommen, oder sind das wirklich nur noch die uasset Dateien.
    Wenn es das ganze Projekt ist, das auch öffnen und die ganzen Meshes mit Migrate in dein Projekt packen, dann ist auch alles da.


    Es ist leider keine Projekt datei dabei, nur Example Maps, die werden mir aber vermutlich nicht sonderlich weiter helfen nehm ich an
    Demnach also nur die uasset Dateien in Unterordnern verteilt

  • Annehmen ist eine ganz schlechte Basis um Probleme zu beheben. ;)


    Schau dir doch einfach mal die Example Maps an, wenn die auch nicht richtig funktionieren, vielleicht ist dann auch die Asset Sammlung selbst defekt.


    Also es ist tatsächlich so, dass die Example Maps auch nicht funktionieren, es sind weder Texturen noch Meshes oder ähnliches in der Vorschau vorhanden, wobei mir aufgefallen ist, das ein Fehler beim öffnen der Map sagt, dass er die verwendeten Assets nicht finden konnte.

  • Da wirst dann auch nix machen können, wenn die wichtigsten sachen fehlen. Frag doch einfach mal bei deinem Kumpel nach ob er dir das Projekt schickt.


    Da hast du vermutlich recht, gefragt hatte ich ihn schon, er ist aber für die nächsten 2 Wochen nicht in Reichweite seines Rechners.
    Aus dem Grund hatte ich gehofft vielleicht doch hier eine Lösung für das Problem zu finden.
    Also wie gesagt er schmeißt beim öffnen der Map einen bzw gleich 2000 Fehler raus die alle dasselbe sagen: "Can't find file for asset."
    Vielleicht kann man ja auf der Basis irgendwie eine Lösung finden, da es ja scheinbar in dem Fall nur ein falscher Pfad ist.

  • Ja, Meshes und Texturen sind vorhanden.
    Aber es wirkt tatsächlich so als wäre die Ordnerstruktur ein wenig zerschossen, da auch der Aufbau der Materialien erst verschwindet wenn man diese anklickt (vermutlich aktualisieren sie sich dann). Auch die Meshes an sich sind sobald man sie setzt nicht mehr texturiert. Bei den Blueprints das selbe Spiel, dort muss ich auch die Meshes erst wieder neu einordnen (beispielsweise eine Tür) , damit diese wieder angezeigt werden.

  • Das liegt daran das die Assets wie Materialien die Texturen aus definierten Ordnerstrukturen laden.
    Hast du diese Ordnerstruktur nicht, dann kann es nicht funktionieren.


    Das ist auch der Grund wieso Migrate immer eine komplette Ordnerstruktur exportiert und nicht nur die einzelnen Dateien.
    Ist die Struktur mit den Inhalten dann erst einmal in deinem Projekt, dann kannst du diese einfach verschieben, da diese Bewegung direkt in UE4 aktualisiert wird.

  • Das liegt daran das die Assets wie Materialien die Texturen aus definierten Ordnerstrukturen laden.
    Hast du diese Ordnerstruktur nicht, dann kann es nicht funktionieren.


    Das ist auch der Grund wieso Migrate immer eine komplette Ordnerstruktur exportiert und nicht nur die einzelnen Dateien.
    Ist die Struktur mit den Inhalten dann erst einmal in deinem Projekt, dann kannst du diese einfach verschieben, da diese Bewegung direkt in UE4 aktualisiert wird.


    Das heißt, dass es jetzt keine Möglichkeit für mich gibt, es sei denn ich such mir alle Verbindungen neu zusammen?

  • Würde ich jetzt einfach mal so behaupten ohne dein Projekt zu kennen.


    Entweder so importieren das alle Dateien und Pfade mit dem der Quelle übereinstimmen oder neu zusammen bauen.
    Wie gesagt kenne nun nicht deine Daten aber so habe ich es kennen gelernt, UE4 verlinkt halt gerne und wenn da was nicht passt, wird nichts angezeigt.

  • Versuch mal folgendes:


    1. Erstelle in deinen Unreal Projekt einen Ordner der zb Meine Modelle heißt
    2.In diesem erstellt du zwei Ordner Modelle und Texturen
    3.Deine Modelle Kopierst du in den Ordner Modelle und deine Texturen in den Ordner Texturen.
    4.Wenn du nun deine Modelle im 3D Programm geöffnet hast, gibst du dehnen den Textur Pfad im Ordner Texturen


    Somit besitzen die Modelle im 3D Programm und der Engine den selben Pfad zu den Texturen.


    Was auf jeden fall nicht funktioniert ist wenn du den ein Bundle aus dem Internet runterlädst und diesen einfach nur ins Projekt kopierst. Da die Modelle oftmal einen internen Link oder einen externen Link zur Textur haben.


    Beispiel:
    C:\Users\User\Desktop\Texturen\meinetextur.tga


    oder


    ..\meinetextur.tga


    Beim oberen Beispiel muss die Textur meinetextur.tga im Ordner Texturen im angegebenen Pfad liegen.
    Beim Unten beispiel liegt die Textur zwei Ordner zurück in diesem fFall im Ordner Desktop.


    Nun siehst du vielleicht was passiert wenn die Pfade so oder anderst angegeben werden.


    Deswegen ist es es wichtig das du die Texturen im 3D Programm richtig zuweist.
    (Alle Texturen gehören in den Textur Ordner)
    (Alle Modelle in den Modelle Ordner)
    Der Pfad aller Texturen sind gleich.
    Was du nicht machen darfst sind Texturen wo anderst hinzukopieren.


    Für dich bedeutet dies das du alle deine Texturen im 3D Programm richtig zuweisen musst.


    1.Erst die Texturen ins Unreal Projekt kopieren.
    2.Texturen aus dem Unreal Projekt im 3D Programm zuweisen
    3.3D Modell zb als FBX ins Unreal Projekt speichern.
    4.Unreal + 3D Programm haben die selben Pfade.


    Dann werden deine Texturen in der UE auch auf jedenfall gefunden.


    Hoffe du hast verstanden wieso das Programm zustande kommt und wie du es vermeiden kannst.


    Dieser Workflow nennt sich im übrigen Art to Engine Workflow die UE hat gerade in diesem Berich noch starke schwächen.

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • ..\meinetextur.tga
    ..
    Beim Unten beispiel liegt die Textur zwei Ordner zurück in diesem fFall im Ordner Desktop.


    Das stimmt so nicht ganz, ".." bedeutet im übergeordneten Verzeichnis. Also wenn das Material in "Content\Material\" liegt, dann würde er die Textur in "Content\" suchen. "." ist das aktuelle Verzeichnis und zwei Ordner zurück wäre "..\..\".



    EvilCookie : mal eine andere Frage, wie viel MB groß ist eigentlich dieses Assett, das du bekommen hast?

  • Zitat

    Versteh ich jetzt nicht ganz was das bringen soll Sleepy.Er müsste mit deiner Beschreibung alle seine Meshes und Texturen erstmal aus der Engine Exportieren, neu bearbeiten und dann wieder importieren.Das ist doch dreifache Arbeit als wenn er jetzt gleich versucht in der Engine selber das ganze wieder zu Ordnen.


    Okay bevor wir nun alle einander vorbei reden will ich kurz erklären wie ich Arbeite und wie ich das verstanden habe. Die kann natürlich jeder für sich selbst entscheiden.


    Art To Engine bedeutet das man ein Modell im 3D Programm erstellt. Die Texturen macht man heut zu tage zu 90% eh in anderen programmen wie zb Photoshop, Substancepainter etc.


    Würd ich mir mein Level nun in der Engine zusammenbauen und das komplette Level in Maya und als FBX entweder einzelln oder alle Objekte zusammen exportieren dann müsste ich in der UE auf alle Objekte (Das können auch mal hunderte Wandstücke sein) das Material aufziehen.


    Das kann man natürlich so machen aber ist ne menge Arbeit.


    Wenn man nun aber direkt im 3D Programm die Texturen im Material mit dem richtigen Pfad vergibt (Der Pfad im UE Projekt) kann man Meshes voll texturiert in der UE importieren. Da das 3D Programm der selbe Pfad hat wie die UE.
    Die Textur wird im Projekt gefunden.


    Viel mehr Arbeit ist es die Materials separat zu importieren und auf alle Elemente aufzusiehn.


    Diesen Workflow nennt man Art to Engine.


    Bei Assets Bundels aus dem Netzt hat man das Problem das die Texturpfade hier sehr willkürlich vergeben sind.Will man Änderungen am Mesh oder an der Textur vornehmen hat man hier oft große Probleme da die Texturpfade nicht stimmen.


    Wenn ich dir eins meiner Modelle sende das ich auf dem Desktop gespeichert habe, hat mein Texturpfad dann beispielsweise:
    C:\Users\Sleepy\Desktop\BrickWall003.sbs


    Du hast aber nicht den selben Pfad bei dir wäre das dann zb
    C:\Users\Inmatic\Desktop\BrickWall003.sbs


    Gerade bei Assets aus dem Netz kann man nicht davon ausgehen das die Pfade hier hier einheitlich gesetzt wurden.


    Das ist zumindest mal das Problem.


    Deswegen leg ich viel Wert auf verknüftige Pfadangaben so das Modelle und Texturen auch auf anderen Computer korrekt gefunden werden.


    Wenn man selbst Assets im 3D Programm baut und diese speichert ist das normalerweise keine Problem da aber sobald man mit fremden Assets arbeitet kann es zu solchen Problemen kommen.


    Für mein Abschluss Projekt hatte ich mir damals ein Script gebastelst wo mir die Pfade für alle Texturen für jeden Computer automatisch anpasst.
    @Balmung
    Ja das sollte ein Beispiel sein :)

    You may love to play games, but that doesn’t make you a developer.
    I love to eat dinner, but that doesn’t make me a chef.

  • Ja das leuchtet mir schon ein was du möchtest, ich habe hier meine Sachen auch Sortiert, sei es auf der Platte so wie auch in der Engine.
    Bei dem was du beschreibst gibt es auch nichts auszusetzen, wenn man seine Modelle und Texturen selber erstellt hat.
    Das bringt ihn aber mit seinem Problem nicht weiter, da er, soviel ich weis, ja nur die uasset Dateien hat und sonst nichts.