Unabhängig davon, ob du Assets mit den Modellierungstools von Unreal Editor für Fortnite (UEFN) erstellst, gekaufte Assets in UEFN importierst oder Assets in einem anderen Modellierungstool wie Blender erstellst, ist es wichtig, den Maßstab, die Abmessungen, Materialien und andere Eigenschaften des Assets zu berücksichtigen. Es ist auch wichtig, die Einschränkungen der Geräte zu berücksichtigen, auf denen Fortnite gespielt wird. Mobile Geräte und die Nintendo Switch haben beispielsweise möglicherweise andere Anforderungen an Assets als ein PC oder eine Playstation 5-Konsole.
Dieser Leitfaden hilft dir festzustellen, ob die Assets, die du in deinem Projekt verwendest, in Fortnite verwendet werden können.
Deine Modellierungs-Einstellung
Stelle sicher, dass die Einheiten und die Skalierung korrekt eingerichtet sind, sei es innerhalb von UEFN oder in einem anderen Modellierungstool wie Blender. Diese und andere Einstellungen, die du überprüfen solltest, findest du in der folgenden Tabelle. Damit stellst du sicher, dass du mit der gleichen Konfiguration wie Fortnite-Künstler arbeitest.
| Einstellung | Einheit oder anderer Wert |
|---|---|
| Länge / Linear | Zentimeter (1 Einheit entspricht 1 cm) |
| Winkel / Drehung | Grad |
| Timer | Frames pro Sekunde |
| Aufwärts-Achse | Z-Achse |
| Normaler Kartenfarbraum | DirectX |
Rastergröße
In UEFN verwendet das Weltraster Zentimeter (1 cm = 1 Unreal-Einheit). Wenn du Assets in Modellierungssoftware oder in UEFN erstellst, solltest du sicherstellen, dass die verwendete Rastergröße 512 cm (512 Einheiten) ist. Das ist der für Fortnite verwendete Standard.
World-Skalierung
Die Spielercharaktere in Fortnite sind 192 cm groß. Denke beim Entwerfen von Architektur oder Möbeln daran, damit die Skalierung der Spieler zu der von dir erstellten Umgebung passt.
Asset-Budgets
In der folgenden Tabelle ist eine gleitende Skala für Asset-Budgets unterschiedlicher Größe und Komplexität aufgelistet. Diese Budgets bieten eine grobe Schätzung für die niedrigsten LODs für deine Kreationen. Das Budget hängt nicht direkt von der Größe des Objekts ab, sondern von der Komplexität der Details.
Wenn keine geeigneten LODs für das Asset festgelegt wurden, solltest du darauf achten, dass die Anzahl der verwendeten Assets mit 20k Scheitelpunkten nicht zu groß ist.
| Grad der Komplexität | Kleines Mesh | Mittleres Mesh | Großes Mesh |
|---|---|---|---|
| Einfache Objekte | LOD0 Max.: 400 Polygon-Anzahl | LOD0 Max.: 900 Polygon-Anzahl | LOD0 Max.: 2500 Polygon-Anzahl |
| Mittlere Objekte | LOD0 Max.: 700 Polygon-Anzahl | LOD0 Max.: 2000 Polygon-Anzahl | LOD0 Max.: 6000 Polygon-Anzahl |
| Komplexe Objekte | LOD0 Max.: 1200 Polygon-Anzahl | LOD0 Max.: 4000 Polygon-Anzahl | LOD0 Max.: 9000 Polygon-Anzahl |
Die oben genannten Budgetvorgaben dienen deiner Information. Die beste Methode zum Testen von Assets besteht aber darin, sie in UEFN zu importieren und zu testen.
Eine andere Möglichkeit der Berücksichtigung von Budgets besteht darin, das Objekt, das du erstellst, mit der Größe eines Charakters zu vergleichen und die Anzahl der Scheitelpunkte zu verwenden, die unten aufgeführt ist.
| Asset-Größe | Vs. Spieler | Vert-Zählung |
|---|---|---|
| Klein | Halbes Zeichen oder kleiner | Maximal 1000 |
| Mittel | Bis Zeichengröße | Maximal 3000 |
| Groß | Größer als das Zeichen | Maximal 5000 |
In den folgenden Abschnitten findest du einige Beispiele für Asset-Budgets für einige gängige Assetarten. Aufgelistet sind die Vert-Zählungen für eine Reihe von LODs.
Bäume
| Baumgröße und LOD | Klein LOD0 | Klein LOD3 | Mittel LOD0 | Mittel LOD3 | Groß LOD0 | Groß LOD3 |
|---|---|---|---|---|---|---|
| Vert-Zählung | 1700 | 150 | 5000 | 1200 | 15000 | 2000 |
Felsen
| Felsengröße und LOD | Klein LOD0 | Klein LOD3 | Mittel LOD0 | Mittel LOD3 | Groß LOD0 | Groß LOD3 |
|---|---|---|---|---|---|---|
| Vert-Zählung | 600 | 50 | 1200 | 100 | 2500 | 150 |
Zeichen
| Schildgröße und LOD | Klein LOD0 | Klein LOD3 | Mittel LOD0 | Mittel LOD3 | Groß LOD0 | Groß LOD3 |
|---|---|---|---|---|---|---|
| Vert-Zählung | 400 | 50 | 1700 | 300 | 7000 | 300 |
Requisiten
| Objektgröße und LOD | Klein LOD0 | Klein LOD3 | Mittel LOD0 | Mittel LOD3 | Groß LOD0 | Groß LOD3 |
|---|---|---|---|---|---|---|
| Vert-Zählung | 900 | 60 | 1500 | 150 | 3200 | 250 |
Fahrzeuge
| Fahrzeuggröße und LOD | Klein LOD0 | Klein LOD3 | Mittel LOD0 | Mittel LOD3 | Groß LOD0 | Groß LOD3 |
|---|---|---|---|---|---|---|
| Vert-Zählung | 1200 | 200 | 6000 | 400 | 9000 | 1000 |
Asset-Detaillierungsgrade (LOD)
Der Detaillierungsgrad (LOD) ist ein wichtiger Weg, eine gute Leistung deiner Inseln auf einer Vielzahl von Geräten zu erzielen. Du kannst LODs innerhalb von UEFN generieren, nachdem du ein Asset erstellt oder importiert hast, aber wenn du Assets in einer anderen Modellierungsanwendung erstellst, kannst du LODs manuell erstellen, während du dein Asset erstellst. Automatische LOD-Funktionen können die Erstellung von LODs einfacher machen, was bei den meisten Assets wahrscheinlich gut funktioniert. Einige Assets mit nicht verschweißter Geometrie machen aber möglicherweise die Verwendung manuell erstellter LODs erforderlich.
Assets für Echtzeiterlebnisse sollten fünf LODs (LOD0 und LOD1-LOD4) haben, um eine gute Leistung auf allen Geräten zu gewährleisten.
Optimiere jedes LOD-Mesh in UEFN oder deiner Modellierungssoftware mit dem vorherigen LOD, das gleichzeitig angezeigt wird. Beachte die Nähte des vorherigen LOD. Auf diese Weise kannst du innerhalb der UV-Inseln optimieren. Dadurch werden Situationen vermieden, in denen sich die Textur verschiebt, wenn das Spiel von einem LOD zum anderen wechselt.
Beachte beim Erstellen von LODs Folgendes:
-
Reduziere die Anzahl der Polygone entsprechend der Silhouette, um große Unterschiede bei den Objekten zwischen LOD-Übergängen zu vermeiden. Behalte die Silhouette aus allen Winkeln so weit wie möglich in allen LOD-Stufen deines Assets bei.
-
Jedes LOD-Level sollte die Hälfte der Polygone des vorherigen Levels sein.
-
Überschreite beim Generieren von LODs keine UV-Grenzen, da sich sonst eine schlechte Texturdehnung ergibt.
-
Teste deine LODs und passe dann die LOD-Entfernungen für jedes Level entsprechend an.
LOD1 bis LOD3 können nur dann automatisch mit dem Mesh-Optimierer deines Modellierungstools erstellt werden, wenn:
-
UVs werden ohne Versatz oder Drehung auf den UV-Inseln von einem LOD zum anderen angepasst.
-
Für alle LODs wird dasselbe Material verwendet.
Asset-Kollision
Alle statischen Mesh-Objekte müssen Kollisionseigenschaften aufweisen, die es Spielern ermöglichen, während des Spiels mit statischen Meshs zu interagieren. Kollisionseigenschaften beeinflussen die Spielerbewegung, die Auswirkungen auf Meshs und Spieler, wenn sie kollidieren, und die Verfolgung der Welt. Kollisionsvolumes werden oft direkt in einem Editor wie UEFN generiert und konfiguriert, aber wenn du Assets in einem anderen Modellierungstool erstellst, empfiehlt es sich, Kollisionsvolumes in deine Assets aufzunehmen.
Erstelle konvexe Modelle, um eine grobe Blockout-Form des Objekts zu erstellen. Passe die Grundkörper an, um die Grundform deines Netzes auszublenden. Versuche, dein Netz auf 10 UCX-Kollisionsnetze oder weniger zu beschränken.
Verwende das Präfix UCX_ in deiner Benennungskonvention, gefolgt vom Namen deines Export-Mesh mit wenigen Polygonen aus deinem Modellierungstool. Wenn dein Asset beispielsweise ein Stuhl ist, lautet der Name UCX_Chair.
Wenn du mehrere Kopien des Meshs hast, füge eine Zahl wie folgt hinter dem Asset-Namen hinzu: UCX_Chair_01, UCX_Chair_02 und so weiter.
Weitere Informationen findest du unter Kollision für ein statisches Mesh konfigurieren.
Material- und Texturrichtlinien
Dieser Abschnitt und die folgenden enthalten Richtlinien zum Erstellen von Materialien und Texturen für Assets, die in einem anderen Modellierungswerkzeug erstellt wurden. Die Modellierungswerkzeuge von UEFN funktionieren anders, daher solltest du dich im Abschnitt Materialien der UEFN-Dokumentation darüber informieren, wie Materialien mit Assets funktionieren, die du innerhalb von UEFN erstellst.
Du möchtest, dass deine Assets mit so vielen Erfahrungen wie möglich funktionieren. Denke daran, dass dein Asset in vielen verschiedenen Beleuchtungsszenarien zu sehen sein wird: Außenbereiche zu verschiedenen Tageszeiten, Außenbereiche bei Nacht, Innenbereiche mit hellem oder gedämpftem Licht und so weiter. Beachte die folgenden Punkte, um dies zu berücksichtigen:
-
Achte darauf, dass die Albedo-Werte im physisch korrekten Bereich liegen.
-
Stelle bei der Auswahl von Stufen für emissive Werte sicher, dass sie mit variierenden Lichtverhältnissen funktionieren, z. B. Tag, Nacht, innen und außen.
-
Auch wenn dein Asset nicht fotorealistisch ist, ist es dennoch wichtig zu verstehen, wie physisch basiertes Rendering (PBR) funktioniert.
Erstellen von Materialien
Überlege dir, wie das Objekt im echten Leben aussieht, und modelliere die Materialien und Texturen nach diesen Gegenständen. Texturen können so detailliert sein, wie du sie machen möchtest.
Wenn du zum Import deiner Texturen bereit bis, kannst du die Dateiformate TGA oder PNG verwenden. Fortnite-Künstler verwenden aber für die meisten Texturen PNG.
Textur-Baking für Meshs mit vielen Polygonen und wenigen Polygonen
Wenn du für das Baking deiner Karte bereit bist, achte darauf, dass du die folgenden Punkte befolgst:
-
Verwende eine unendliche Texturauffüllung (auch als Texturdilatation bezeichnet) für deine Textur-Map.
-
Stelle sicher, dass du alle Transformationen für deine Textur-Map einfrierst und einklappst.
Baking von Texturen für Modelle mit wenigen Polygonen
-
Erstelle Duplikate deiner Modelle mit wenigen Polygonen für das Baking. Modelle sollten die Quads so weit wie möglich beibehalten. Füge Triangulation nur dann zu deinen duplizierten Modellen hinzu, wenn es absolut notwendig ist, bevor du sie zum Baking exportierst. Das Duplikat sollte dein endgültiges In-Game-Mesh sein.
-
Stelle sicher, dass der UV-Bereich deines Modells im Bereich 0–1 liegt, bevor du mit dem Textur-Baking beginnst.
Baking von Texturen für Modelle mit vielen Polygonen
Das Mesh mit vielen Polygonen wird nur für das Baking verwendet. In diesem Mesh sind keine UVs erforderlich, aber du kannst die Materialzuweisungen trennen, um die ID-Maske zu beeinflussen.
Wenn du Marmoset verwendest, kannst du entsprechende Teile als Hoch oder Niedrig separieren, um Baking-Details zu isolieren. Ausführliche Informationen findest du in der Marmoset-Dokumentation.
Textur-Skalierung
-
Verwende die Zweierpotenz-Skalierung für Textur-Maps (64, 128, 256, 512, 1024, 2048). Das ermöglicht das Mipmapping.
-
Begradige bei Texturen, die einmalig sind, und bei der Kachelung UV-Inseln wo erforderlich und halte die UV-Nähte so niedrig wie möglich.
-
Alle Textur-Maps sollten eine Größe/Auflösung von maximale 2k haben.
-
Zu den Materialien gehören normalerweise die folgenden Textur-Maps:
Wenn du eine spiegelnde Texturkarte einfügst, muss die spiegelnde Textur wie folgt konfiguriert werden:
- Spiegelnde Karte auf dem R-Kanal
- Metallische Karte auf dem G-Kanal
- Rauheitskarte auf dem B-Kanal
Wir empfehlen im Allgemeinen die Verwendung von Marmoset für das Baking deiner Textur-Maps, aber du kannst auch andere Lösungen nutzen. Zum Beispiel kannst du Xnormal für das Baking deiner Assets verwenden, wenn du keinen Zugriff auf Marmoset hast.
Stelle sicher, dass deine Maps Normale, Welt-Bereich-Normale, Umgebungsverdeckung, ID-Maske und Rundung enthalten. Die sich ergebenden Baking-Textur-Maps können in einer Anwendung wie Substance Painter verwendet werden, um die endgültigen Streu-, Normal- und Spiegelnd-/Metall-/Rau-/Alpha-Maps zu generieren, die in Fortnite verwendet werden.
Konfiguration von Substance Painter
Im Folgenden findest du die Textur-Map-Kanal-Outputs zum Malen eines Meshs mit Substance Painter. Wenn du eine andere Anwendung verwendest, suche in der Anwendung nach ähnlichen Einstellungen.
| Textur-Map-Typ | Kanaleinstellung |
|---|---|
| Streuen | RGB oder RGBA (mit Alpha) |
| Normal | RGB |
| Spiegelnd | Roter Kanal=Spiegelnd, Grüner Kanal=Metallähnlichkeit, Blauer Kanal=Rauheit und Alpha-Kanal=Nur emissiv |
Unter Konvertierte Maps sollte die Einstellung Normal DirectX lauten.
Optimieren der Leistung für Nintendo Switch und Mobilgeräte
Fortnite läuft auf einer Vielzahl von Geräten. Wenn du Assets in UEFN erstellst, die du in Fortnite verwenden möchtest, ist es immer ratsam, dir zu überlegen, wie du deine Assets so optimieren kannst, dass sie auf allen Geräten, die Fortnite unterstützt, gut laufen.
Dies sind einige Methoden, wie du Assets für Nintendo Switch und Mobilgeräte optimieren kannst.
-
Polygon-Anzahl: Halte die Polygon-Anzahl so niedrig wie möglich.
-
Anzahl der Materialien: Verwende die geringste mögliche Anzahl Materialien. Verwende idealerweise nur einen Materialabschnitt für jedes Mesh.
-
Materialqualität: Die Verwendung von Materialien mit sehr hoher Qualität kann auf diesen Geräten zu einer Version mit geringer Qualität reduziert werden. Wenn du ein Tool mit Funktionen zum Wechsel zu einem Material mit niedrigerer Qualität zur Verbesserung der Performance verwendest, solltest du diese Funktionen nutzen. Verwende in UEFN die Funktionen Materialqualitätswechsel und Material-Schattierungspfadwechsel im UEFN-Materialbrowser.
-
Texturauflösung: Der Texturspeicher ist bei diesen Geräten normalerweise sehr beschränkt. Du kannst die Performance optimieren, indem du nur Texturen mit einer Größe von 512x512 Pixeln verwendest und die Verwendung größerer Formate nach Möglichkeit vermeidest.
Asset-Fehlersuche
Wenn du zum ersten Mal ein Mesh für UEFN erstellst, treten möglicherweise einige Probleme auf. Hier findest du eine Liste allgemeiner Probleme und einige mögliche Lösungen.
-
Dein Asset hat die falsche Auflösung: Wenn du ein 3D-Asset mit hoher Auflösung erstellst, kannst du nicht zurück zu einer niedrigeren Auflösung wechseln. Meshs mit hoher Auflösung lassen sich schwieriger bearbeiten und das Rendering ist für den Computer ebenfalls schwieriger. Das bedeutet, dass es länger dauert, wenn du dein Asset anzeigen möchtest. Dabei werden auch größere Dateigrößen erzeugt, was zu einer Scheitelpunktanzahl führt, die für UEFN und Fortnite zu hoch ist.
-
Die Skalierung deines Assets ist nicht korrekt: Stelle sicher, dass du die Skalierung einheitlich anwendest. Dies sind einige Beispiele dafür, warum die Skalierung nicht korrekt funktioniert:
-
Die Skalierungseinstellungen sind auf Zentimeter und nicht auf Meter eingestellt.
-
Die Weltskalierung der Modellierungsumgebung muss aktualisiert werden.
-
Der Exportvorgang konvertiert die Output-Skalierung.
-