Open Level funktioniert nicht in der Launch Version

  • Ich hatte ein riesen Problem. Habe mittlerweile heraus gefunden wie man es löst und dachte mir ich poste es hier mal falls jemand auch auf dieses Problem stößt.


    Folgender Sachverhalt:

    Genutzt in Unreal Engine 4.9.2
    Open Level funktioniert in Play und auf Android im Launch. Habe dann das Project in die Engine 4.10.2 geladen.
    Open Level funktioniert in Play aber nun nicht mehr auf Android im Launch.


    Grund:


    ---Information habe ich mir aus mehreren Wiki Einträgen zusammen gesucht---


    Beim laden in eine neue Version, benennt die Engine den Ordner um und findet somit den Pfad zu den Leveln nicht wieder.
    Auch das umbennen des Ordners ändert nichts daran. Ist wohl ein bekannter Bug der bis heute nicht behoben wurde.


    Lösung:

    Unreal Engine schließen.
    Im Projekt Ordner unter Config die DefaultEditor.ini öffnen.
    Dort trägt man folgendes nach:


    [AlwaysCookMaps]
    +Map=/Game/Pfad.../Name des Levels


    Beispiel:
    [AlwaysCookMaps]
    +Map=/Game/ThirdPersonBP/Maps/LevelName



    Ich hoffe ich kann dem Einen oder Anderen damit weiter helfen, bevor er, wie ich, den halben Sonntag mit dieser Problemlösung verbringt

  • Servus,


    ich glaub was dir bei google angezeigt wurde war meine Anfrage an EPIC Games deswegen :)
    Im Prinzip ist es kein Bug, sondern das man bei Mobile Geräten mit angeben muss welche Maps von deinem Spiel gebacken werden müssen :)

  • Ich habe hier ein fast gleiches Problem. Jedoch komme ich überhaupt nicht weiter.

    Ich habe zwei Levels. In einem sind meine Menüs. Im zweiten das eigentliche Spiel. Wenn ich vom Level1 Blueprint über Open Level das Spiel öffne dann Stürzt es ab. Jedoch und das ist seltsam Nicht auf allen Devices. Bei mir (iPhone 12 Pro / Max sowie Android Samsung Duos) klappt es. Bei iPhone 11 Pro oder 12 Mini stürzt es direkt nach dem Befehl ab. Was könnte das Problem sein?

    • Offizieller Beitrag

    Bei einem so alten Thread hättest du auch gerne einen neuen aufmachen dürfen. :thumbup:


    Mit Mobile Setups, hab ich leider nicht viel Erfahrung aber da es auf dem IPhone 12 Pro funktioniert und auf schlechteren oder anderen geräten nicht, werden sicherlich Shader nicht unterstützt oder deine anderen Geräte haben eine zu schlechte Performance.


    Ich habe einen Verdacht: Mit was Händys absolut nicht klarkommen womit aber PCs keine Probleme haben sind zu große Meshes.


    Schau dir mal an wieviel kb oder MB deines Meshes haben. Ich erinnere mich außerdem, dass es bei Apfel & Co. Limts gibt was die Mesh Größe angeht.


    Mach ein Backup deines gesamten Projekts und baller die größten Meshes einfach mal raus. Willst du das Problem langfristig lösen, kannst du große Meshes in kleinere Aufteilen, dann hast du zwar mehr Drawcallls aber deine Meshes und die Ladezeit verringern sich.

    Das ist meine Vermutung wobei das "Raten ins Blaue" ist.


    Generel: Mit Sicherheit machen bestimmte Bereiche deines Levels Probleme. Teile dein Level in kleine Sub Levels auf und Lade sie im Abstand von ein paar Sekunden und beobachte bei welchem Sublevel es kracht. Du kannst die Reihenfolge der Sublevels einmal tauschen um Sicher zu gehen.

    Eine sehr langwierige Arbeit aber so findest du die Nadel im Heuhaufen.


    Etwas anderes fällt mir im Moment nicht ein aber vielleicht hat noch jemand anderst eine Idee ?Die Sache mit den Mesh größen halte ich für sehr sehr wahrscheinlich.

  • Ich mache im Level folgendes. Ich arbeite hauptsächlich mit Flipbooks. Bedeutet ich lade mein Character als Flipbook rein. Jedes Flipbook besteht aus ungefähr 100 Bildern und 1000x1000 Pixeln. Die Bilder selber sind nicht groß. Was ich gemerkt habe. Die Geräte die Abstürzen. Haben 4GB und weniger RAM. Alles was drüber ist funktioniert. Bedeutet der Arbeitspeicher wird überfüllt. Wie kann ich Ressoucenschonend mit Flipbooks Arbeiten? Aber ohne wirklich auf Qualität des Bildes zu verzichten?

    • Offizieller Beitrag

    1000x1000 Pixeln.

    Das ist interessant, ich frag mich wie Mobile Geräte mit nicht Power of Two Texturen umgehn? Ist nur eine Idee aber wandle deine Bilder mal in 1024 x 1024px um.


    EDIT:
    Wenn du das für Mobile machst, brauchst du dann wirklich 1000px für ein Bild deines Flipbooks ? Reicht dir dabei 128px² für deinen Charakter? 1000px ist eher ungewöhnlich. Ich glaube du hättest die selbe Qualität auch bei weniger Auflösung.

    Ich hatte vor kurzem an einer Webgl Anwendung mit gearbeitet dabei hatte wir auch Texturen die im Browser laufen mussten. Die Texturen hatte eine maximale Größe von 1024px die ich aber als JPG umgewandelt hatte.

    JPG ist ja eigentlich eine Foto Komprimierung aber deutlich kleiner als PNG oder TGA.



    1.Schau das du Power of Two Texturen verwendest. (Texturen bei der die Größe durch 2 teilbar ist. (Meist: 16, 32, 64, 128, 256, 512, 1024...

    2. Schau das die kb bzw die MB Anzahl runter bekommst. (zb durch weniger Auflösung und Komprimierung)

    3.Bei so vielen und so großen Texturen, hast du ja auch viel Ladezeit auf Handys.

  • Neue Info: Bild war doch auf 1024x1024 angelegt. Was ich aber festgestellt habe. Das mein Texture Memory Used bei fast 3K sich beläuft. Die Handys dagegen auf denen ich teste haben Probleme nur mit Devices mit 4K oder weniger. Alles drüber funktioniert.


    Wenn ich die Bilder im Ordner lösche, dann wird der Texture Memory Used weniger. Auch wenn ich teilweise diese nicht eingebunden sondern nur im Ordner kopiert habe. Was bei den Bilder drinnen ist: Never Stream ist aktiviert gewesen. Wie bekomme ich diesen Wert runter? Das er nur Texturen lädt wenn die auch gebraucht werden?

    • Offizieller Beitrag

    Das er nur Texturen lädt wenn die auch gebraucht werden?

    Ich weiß nicht wie du texturen lädst aber wenn ich mich richtig erinnere gibt es zwei Arten Assets in den Arbeitspeicher zu laden.

    Dazu gibt zwei Kernbegriffe: "hard reference" und "soft reference" der Kern Begriff dazu dürfte Referencing of Assets oder so sein


    Harden Refencees: Wenn ein Assets geladen wird, werden alle Assets mitgeladen die eine Abhänigigkeit zu diesem Asset haben.

    Soften Refencees: Wird nur dass Asset geladen das gebraucht wird.



    Auf die schnelle gefunden: https://raharuu.github.io/unre…references-reasons-avoid/