Damit deine Inseln auf allen unterstützten Plattformen laufen, hat Fortnite einige Speicherbeschränkungen.
In Unreal Editor für Fortnite (UEFN) kannst du die erweiterten Speicherkapazitäten nutzen, um größere und vielfältigere Erlebnisse zu schaffen. Um diese Vorteile in vollem Umfang nutzen zu können, ist es hilfreich zu verstehen, wie der Speicherverbrauch in UEFN berechnet wird.
World Partition
World Partition ist die Magie hinter dem Bau eines großen Insel-Erlebnisses. Diese Funktion unterteilt die Welt automatisch in ein Raster und streamt nur die notwendigen Zellen.
World Partition verwendet Streaming, das Zellen lädt und entlädt, und Hierarchical Level of Detail (HLOD), was den Detailgrad der Assets gruppiert und verringert, wenn sich die Spielerkamera entfernt.
Weitere Informationen zu World Partition, Streaming und HLODs findest du unter Streaming und HLODs.
So wird der Speicher berechnet
UEFN berechnet den Speicherverbrauch aus den Daten, die zur Cook-Zeit erzeugt wurden. Dies bedeutet:
Schnelle Ergebnisse bei großen Inseln
Konsistente Daten bei jeder Ausführung der Berechnung derselben Inselversion, derselben Fortnite-Version und desselben Geräts
Breite Unterstützung für mehr Assettypen und SceneGraph
Das Speicherberechnungssystem in UEFN läuft nur zur Bearbeitungszeit und kann nicht zur Auswertung des Speicherverbrauchs zur Spielzeit verwendet werden. Es wird verwendet, um zu überprüfen, ob der Baseline-Speicherverbrauch einer Insel einen angemessenen Schwellenwert nicht überschreitet.
Allerdings kann eine benutzerdefinierte Laufzeitlogik zu hohem Speicherverbrauch führen, was Probleme für die Spieler verursachen und ihre Spielmöglichkeiten auf deiner Insel einschränken kann. Wir empfehlen die Verwendung des Raumprofil-Erstellers, um eine bessere Vorstellung davon zu bekommen, wie deine Insel den Speicher nutzt und zur Spielzeit läuft, um Stabilitäts- oder Performance-Probleme für deine Spieler zu vermeiden.
Das Sitzungslayout
Wenn du deine Sitzung lädst, siehst du auf deinem HUD den Balken Aktuell verwendeter Speicher.
Die Leiste zeigt maximal 100.000 Speichereinheiten an, um dir einen Überblick über die Speichernutzung auf deiner Insel zu geben.
Wenn Streaming aktiviert ist, wird der Speicherplatz anhand der Spielerposition auf der Insel berechnet und nicht mehr anhand des Gesamtspeichers, der von allen Assets auf der Insel verbraucht wird. Wenn du eine Speicherberechnung durchführst, erhältst du die genauesten Speicherverbrauchswerte für jede Streaming-Zelle.
Einige Assets bleiben unabhängig von der Position des Spielers im Speicher und erhöhen den Speicherverbrauch überall auf der Karte. Die meisten Assets werden beim Streamen geladen und entladen und die Leiste wird entsprechend aktualisiert.
Alle Assets, auf die vom Level verwiesen wird (einschließlich Geräte, Landschaften, benutzerdefinierte Meshs und Texturen usw.), werden auf den Gesamtspeicherverbrauch angerechnet.
Beachte, dass du deine Insel nicht veröffentlichen kannst, wenn ein Gebiet in deinem Level 100.000 überschreitet.
Als UEFN-Nutzer kannst du das 100.000er Thermometer überschreiten, solange du sie nicht veröffentlichst. Denke daran, dass Personen, die mit dir an einer Konsole zusammenarbeiten, an ein Hardware-Limit des verfügbaren Speichers stoßen können, das sie aus der Sitzung wirft. Sie können die Verbindung wiederherstellen, sobald das Problem behoben ist.
Vornehmen von Inhaltsänderungen
Das System braucht aktuelle Daten, um den Speicherverbrauch richtig zu berechnen. Nachdem du Inhaltsänderungen mit Live-Bearbeitung oder dem Telefon-Werkzeug vorgenommen hast, siehst du eine Aufforderung, Änderungen zu pushen, auch wenn der Bearbeitungsmodus-Indikator Auf dem neuesten Stand ist, da Live-Bearbeitung die gecookten Daten für Speicherberechnungen nicht aktualisiert.
Bis du die Änderungen pushst, wird der Verwendungsbalken weiter aktualisiert, zeigt aber einen veralteten Wert an. Die Kosten für Inhaltsänderungen werden nicht übernommen.
Starten einer Speicherberechnung
Damit du deine Insel erfolgreich veröffentlichen kannst, muss sie auf allen Hardware-Plattformen laufen.
Vor der Veröffentlichung musst du unbedingt sicherstellen, dass dein Projekt die Speichergrenzen nicht überschreitet. Wähle in der Dropdown-Liste Projekt die Option Speicherberechnung starten.
Dieser Prozess berechnet den Speicher, der in jeder Zelle verwendet wird.
Du wirst in einem Dialogfeld aufgefordert, die private Version hochzuladen. Klicke auf die Schaltfläche und achte auf den Fortschrittsbalken.
Optional kannst du eine Beschreibung für eine Projektversion hinzufügen.
Ein Popup-Feld im unteren Bereich des Bildschirms gibt an, dass die Speicherberechnung ausgeführt wird.
Wenn der Upload abgeschlossen ist, zeigt das Popup-Feld an, dass die Berechnung gestartet wurde.
Außerdem wird ein Popup mit dem Ergebnis der Speicherberechnung angezeigt. Wenn du auf Fortsetzen klickst, übernimmst du wieder die Kontrolle über deinen Spieler-Charakter.
Wenn der Vorgang abgeschlossen ist, wird der Spielercharakter wieder an den Punkt teleportiert, an dem er sich befand, als die Berechnung gestartet wurde, und du siehst einen von zwei möglichen Status:
Wenn bei deinem Projekt das Streaming aktiviert ist, kannst du nun umherfliegen, um zu sehen, wie viel Speicher die verschiedenen Bereiche beanspruchen.
Wenn Streaming aktiviert ist, ändert sich der Belegter Speicher-Balken während des Durchflugs. Damit kannst du die Bereiche in der Ebene identifizieren, die über dem Budget liegen könnten.
Wenn deine Insel über dem Budget liegt, musst du die lokalen Speicherprobleme vor der Veröffentlichung beheben.
Meine Insel ist über dem Budget. Was soll ich tun?
Es gibt viele Strategien, um Speicherplatz zu sparen, wenn du das Limit erreichst. Probiere eine beliebige Kombination der folgenden Punkte aus:
Nach der Speicherberechnung kannst du eine Übersicht mit den 100 Assets auf deiner Insel öffnen, die den meisten Speicher belegen. Rufe Fenster > Nachrichten-Log > Speichertestergebnisse auf.
Die folgende Tabelle definiert jeden Begriff:
Begriff Erklärung Ressource
Dies ist normalerweise der Name eines Assets im Inhaltsbrowser. Einige Ressourcen werden möglicherweise als „Fortnite Asset“ angezeigt. Dies ist ein Name, den wir Ressourcen zuweisen, die nicht in deinem Projekt erstellt wurden, aber dennoch den Speicherverbrauch deiner Insel erhöhen.
Typ
Dies ist der Typ der Ressource/des Assets. Beispiele umfassen Textur, Material, Level und mehr.
Anzahl Actor-Referenzen
Die Anzahl der Actor, die direkt oder indirekt auf die Ressource verweisen.
Anzahl Paketreferenzen
Die Anzahl der gecookten Pakete, die auf die Ressource verweisen. Diese Zahl erhöht sich im Allgemeinen, wenn eine Ressource von mehreren World Partition-Zellen referenziert wird.
Größe
Die Größe der Ressource. Dies ist der Betrag, den eine bestimmte Ressource zum Balken Aktuelle Speicherverwendung an der erfassten Position beiträgt.
Streame Texturen, wo möglich. Das bedeutet, dass Texturen so erstellt werden, dass sie Streaming-fähig sind (Potenzen von Zwei in den Dimensionen), und die Texturen so zu konfigurieren, dass Mipmaps generiert werden. Wenn Texturen nicht gestreamt werden können, verbrauchen sie immer die maximale Speichermenge, unabhängig davon, wie weit entfernt sie verwendet werden. Weitere Informationen findest du unter Ändern der Größe von Texturen.
Schalte Streaming im World Partition-Panel EIN. Das ist zwar ein Muss für große Inseln, aber auch kleinere Inseln können vom Streaming profitieren, vor allem, wenn der Inhalt zu dicht wird.
Wenn das Streaming aktiviert ist, stelle sicher, dass bei Actors „Ist räumlich geladen“ aktiviert ist, wenn möglich. Wenn nicht, werden sie in das Haupt-Levelpaket gecookt und immer geladen. Dies ist besonders relevant für Landschafts-Streaming-Proxy-Actors, da diese viele Kollisionsdaten enthalten können, die du im Allgemeinen auf Anfrage streamen möchtest.
Verteile den Inhalt deiner Insel gleichmäßig. Wenn zu viele Actors in einem kleinen Bereich konzentriert sind, kann der Inhalt nicht ausgestreamt werden und trägt dazu bei, dass du dein Speicherbudget überschreitest.
Reduziere die Anzahl der Geräte, die deine Insel nutzt. Geräte gehören zu den teuersten Actors, die du platzieren kannst. Beim Platzieren von Instanzen des gleichen Geräts fallen aber deutlich niedrigere Speicherkosten an.
Wirf einen Blick auf das Fenster „Projektgröße“. Wenn du einige speicherintensive Objekte auf der Festplatte siehst, ist es wahrscheinlich, dass sie auch zur Laufzeit viel Speicher benötigen. Um deine Projektgröße zu überprüfen, klicke auf die Dropdown-Liste Projekt und wähle Projektgröße aus.
Reduziere die Qualitätsstufe bei benutzerdefinierten Asset-LODs, insbesondere bei Assets, die nur aus der Ferne sichtbar sind.
Assets mehrfach verwenden. In einem Wald aus 100 Bäumen kannst du 5 Variationen verwenden und sie vervielfältigen, anstatt 100 einzigartige Bäume zu verwenden. Das macht einen großen Unterschied beim Speicherplatzbedarf.
Wenn du HLODs verwendest, generiere sie während des gesamten Projektverlaufs und stelle sicher, dass du sie nur für Objekte generierst, die du aus der Ferne sehen kannst.
Nutze die Datenebenen, wenn deine Inseln in Konfigurationen unterteilt werden können, die nicht alle gleichzeitig angezeigt werden sollen. Beispiel: Eine unterirdische Gruft, die nur erreichbar ist, wenn der Spieler einen Schrein betritt.
Reduziere die Mesh-Komplexität deines benutzerdefinierten Inhalts. Bei High-Poly-Meshs fallen höhere Speicherkosten an. Bearbeite das Mesh, indem du im Inhaltsbrowser darauf doppelklickst, und passe den Wert Dreieckprozentsatz beibehalten unter Nanite-Einstellungen an. Durch einen niedrigeren Wert wird die Mesh-Komplexität verringert und die Speicherkosten des Actor reduziert.
Fehlerbehebung bei anderen Problemen
Für eine ordnungsgemäße Validierung wird von den Creators erwartet, dass sie das Streaming aktiviert haben und dass Mipmaps für Texturen generiert werden. Wenn bei einer deiner Texturen die Option MipGen-Einstellungen auf Keine Mipmaps festgelegt ist, wurde das zuvor nicht geflaggt, wenn deine Insel zur Veröffentlichung übermittelt wurde. Wenn jedoch jetzt „MipGen-Einstellungen“ für eine Textur in deinem Projekt auf „Keine Mipmaps“ gesetzt ist, schlägt die Validierung fehl.
Beachte die folgenden Ausnahmen von dieser Anforderung für Streaming und Mipmaps:
Diese Regel gilt nur für Texturen mit mehr als 1 Million Texeln. Wenn zum Beispiel die Abmessungen einer Textur bei der Multiplikation kleiner als 1.048.576 sind, besteht sie die Validierung auch dann, wenn MipGen-Einstellungen auf Keine Mipmaps gesetzt ist.
Für Texturen in der Benutzeroberfläche-Gruppe muss das Streaming nicht aktiviert sein.