Die StaticMesh-Unterstützung in der FBX-Importpipeline macht das Holen von Meshs aus 3D-Anwendungen in die Unreal Engine 5 zu einer einfachen, mühelosen Aufgabe. Wenn Meshs importiert werden, werden auch die Texturen importiert, die in den Materialien verwendet werden, die in der jeweiligen 3D-Anwendung auf diese Meshs angewendet werden (nur Streu- und Normal-Map). Diese Texturen werden wiederum verwendet, um die Materialien zu generieren, die auf das Mesh in UE5 angewendet werden.
Unterstützte Funktionen für das Importieren von Static Meshes mittels FBX:
- Static Meshes mit Materialien einschließlich Texturen
- Benutzerdefinierte Kollision
- Mehrere UV-Sets
- Smoothing-Gruppen
- Scheitelpunkt-Farben
- LODs
- Mehrere separate Static Meshes (können beim Importieren auch zu einem einzigen Mesh zusammengefasst werden)
Wenn Sie derzeit mehrere Meshs mit benutzerdefinierten Kollisionen in einer einzigen Datei importieren, wird nur die Kollision des ersten Meshs importiert.
Die FBX-Importpipeline der Unreal Engine verwendet FBX 2020.2. Die Verwendung einer anderen Version beim Export kann zu Inkompatibilitäten führen.
Allgemeine Einrichtung
Allgemein steht es Ihnen frei, Static Meshes mit beliebigen Werkzeugen und Methoden zu erstellen. Damit der Export und der Import reibungslos funktionieren und das Mesh im Unreal Editor ordnungsgemäß funktioniert, müssen Sie einige Dinge beachten, wie z. B. das Einrichten von UVs, die Platzierung des Meshs usw.
Drehpunkt
Der Drehpunkt des Meshs in der Unreal Engine bestimmt den Punkt, um den alle Transformationen (Verschiebung, Drehung, Skalierung) durchgeführt werden.
Bild für Großansicht anklicken.
Der Drehpunkt befindet sich immer am Ursprung (0,0,0), wenn Sie aus einer Anwendung zur 3D-Modellierung exportieren. Aus diesem Grund erstellen Sie Ihre Meshs am besten am Ursprung, wobei sich der Ursprung allgemein an einer Ecke des Meshs befindet, um eine korrekte Ausrichtung beim Andocken an das Raster im Unreal Editor zu erlauben.
Bild für Großansicht anklicken.
Triangulation
Meshs in der Unreal Engine müssen trianguliert werden, da die Grafik-Hardware nur Dreiecke verarbeitet.
Bild für Großansicht anklicken.
Es gibt mehrere Möglichkeiten, wie Sie sicherstellen können, dass Ihr Mesh trianguliert wird.
- Modellieren Sie das Mesh nur mit Tris – die beste Lösung, die die meiste Kontrolle über das Endergebnis bietet.
- Triangulieren Sie das Mesh in der 3D-Anwendung – eine gute Lösung, die eine Bereinigung und Anpassung vor dem Exportieren erlaubt. Dem FBX-Exportierer erlauben, das Mesh zu triangulieren – ausreichende Lösung, erlaubt keine Bereinigung, kann aber für einfache Meshs funktionieren. Dem Importer erlauben, das Mesh zu triangulieren – ausreichende Lösung, erlaubt keine Bereinigung, kann aber für einfache Meshs funktionieren.
Es ist immer am besten, das Mesh in der 3D-Anwendung manuell zu triangulieren und dabei die Richtung und Platzierung der Kanten zu kontrollieren. Automatisches Triangulieren kann zu unerwünschten Ergebnissen führen.
Bild für Großansicht anklicken.
UV-Textur-Koordinaten
Das Importieren mehrerer UV-Sets wird von der FBX-Pipeline in der Unreal Engine 5 unterstützt. Für Static Meshes wird dies allgemein verwendet, um eine Gruppe von UVs für die Streuung zu handhaben. Für die Einrichtung der UVs für Static Meshes mittels der FBX-Pipeline gibt es keine besonderen Anforderungen.
Erstellen von Normal-Maps
Normal-Maps können für Ihre Meshs direkt in den meisten Modellierungsanwendungen erstellt werden, indem Sie sowohl ein hochauflösendes Render-Mesh als auch ein hochauflösendes Detail-Mesh erstellen.
Bild für Großansicht anklicken.
Die Geometrie des hochauflösenden Detail-Meshs wird verwendet, um die Normalen für die Normal-Map zu generieren. Epic verwendet intern einen Workflow, der XNormal in den Prozess einführt und allgemein zu viel besseren Normalen beim Rendern innerhalb der Unreal Engine 5 führt. Details zu diesem Prozess finden Sie unter Texturen.
Materialien
Die Materialien, die auf Meshs angewendet werden, die in externen Anwendungen modelliert wurden, werden zusammen mit dem Mesh exportiert und dann in Unreal importiert. Dadurch wird der Prozess rationalisiert, da Texturen nicht separat in Unreal Ed importiert werden müssen und Materialien nicht mehr erstellt und angewendet werden müssen usw. Der Importvorgang kann alle diese Aktionen ausführen, wenn Sie die FBX-Pipeline verwenden.
Auch diese Materialien müssen auf eine bestimmte Art und Weise eingerichtet werden, insbesondere wenn das Mesh mehrere Materialien hat oder die Reihenfolge der Materialien auf dem Mesh wichtig ist (z. B. bei Charaktermodellen, bei denen Material 0 der Körper und Material 1 der Kopf sein muss).
Alle Details zum Einrichten von Materialien für den Export finden Sie auf der Seite FBX Material Pipeline.
Kollision
Eine vereinfachte Kollisionsgeometrie ist wichtig für die Optimierung der Kollisionserkennung im Spiel. Unreal Engine 5 bietet grundlegende Werkzeuge zum Erstellen von Kollisionsgeometrien im Static Mesh Editor. Unter bestimmten Umständen können Sie jedoch am besten damit umgehen, indem Sie eine angepasste Kollisionsgeometrie in Ihrer 3D-Modellierungsanwendung erstellen und diese mit dem Render-Mesh exportieren. Allgemein gilt dies für jedes Mesh mit einer Öffnung oder einem konkaven Bereich, mit dem Objekte nicht kollidieren dürfen.
Zum Beispiel:
- Meshs für Türöffnungen
- Wände mit Fensterausschnitten
- Ungewöhnlich geformte Meshs
Kollisionsmeshs werden vom Importer anhand ihres Namens identifiziert. Die Syntax für die Benennung von Kollisionen sollte lauten:
Mesh-Präfix und -Name | Beschreibung |
---|---|
UBX_[RenderMeshName]_## | Eine Box muss mittels eines regulären rechteckigen 3D-Objekts erstellt werden. Sie können die Scheitelpunkte nicht verschieben oder in irgendeiner Weise deformieren, um es zu etwas anderem als einem rechteckigen Prisma zu machen, sonst funktioniert es nicht. |
UCP_[RenderMeshName]_## | Eine Kapsel muss ein zylindrisches Objekt sein, das mit Halbkugeln bedeckt ist. Sie muss nicht viele Segmente haben (8 ist eine gute Zahl), denn sie wird in eine echte Kapsel für Kollisionen umgewandelt. Wie bei Boxen sollten Sie die einzelnen Scheitelpunkte nicht verschieben. |
USP_[RenderMeshName]_## | Eine Kugel muss nicht viele Segmente haben (8 ist eine gute Zahl), denn sie wird in eine echte Kugel für Kollisionen umgewandelt. Wie bei Boxen sollten Sie die einzelnen Scheitelpunkte nicht verschieben. |
UCX_[RenderMeshName]_## | Ein Convex-Objekt kann jede vollständig geschlossene konvexe 3D-Form sein. Ein Beispiel: Eine Box kann auch ein konvexes Objekt sein. Das folgende Diagramm veranschaulicht, was konvex ist und was nicht: ![]() |
Vorbehalte und Überlegungen
-
RenderMeshName
muss mit dem Namen des Render-Meshs identisch sein, dem das Kollisionsmesh in der 3D-Anwendung zugehörig ist. Wenn Sie also ein Render-Mesh mit dem NamenTree_01
in Ihrer 3D-Anwendung haben, sollte Ihr Kollisionsmesh in der Szene mit diesem Mesh sein und den NamenUCX_Tree_01
tragen und dann zusammen mit dem Render-Mesh in dieselbe FBX-Datei exportiert werden. Wenn Sie mehr als ein Kollisionsobjekt für ein Mesh benötigen, können Sie deren Namen mit weiteren Bezeichnern erweitern, z. B.:UCX_Tree_01_00
,UCX_Tree_01_01
,UCX_Tree_01_02
, usw... und sie werden alle als Kollisionen für dieses Mesh zugehörig sein. -
Derzeit werden Kugeln nur für Festkörper-Kollisionen und die Zero-Extent-Spuren von Unreal verwendet (z. B. Waffen), nicht für Nicht-Zero-Extend-Spuren (z. B. Spielerbewegung). Außerdem funktionieren Kugeln und Boxen nicht, wenn das StaticMesh nicht einheitlich skaliert ist. Im Allgemeinen möchten Sie wahrscheinlich UCX-Grundkörper erstellen.
-
Sobald Ihre Kollisionsobjekte eingerichtet sind, können Sie sowohl das Render-Mesh als auch das Kollisionsmesh in dieselbe FBX-Datei exportieren. Wenn Sie die FBX-Datei in den Unreal Editor importieren, findet dieser das Kollisionsmesh, entfernt es aus dem Render-Mesh und wandelt es in das Kollisionsmodell um.
-
Die Zerlegung eines nicht-konvexen Meshs in konvexe Grundkörper ist ein komplexer Vorgang, der zu unvorhersehbaren Ergebnissen führen kann. Eine andere Möglichkeit besteht darin, das Kollisionsmodell in Max oder Maya selbst in konvexe Stücke zu zerlegen.
-
Bei einem Objekt, dessen Kollision durch mehrere Konvex-Hüllen definiert ist, sind die Ergebnisse am besten, wenn die Hüllen sich nicht überschneiden. Wenn zum Beispiel die Kollision für einen Lollipop durch zwei Konvex-Hüllen definiert wäre, eine für die Süßigkeit und eine für den Stiel, müsste zwischen den beiden eine Lücke gelassen werden, wie in der folgenden Abbildung zu sehen ist:
Bild für Großansicht anklicken.
- UCX_Candy
- Kleine Lücke zwischen den Kollisionsoberflächen
- UCX_Stick
Sockets
Gewöhnlich werden Sockets in Spielen verwendet, um ein Objekt an ein anderes Objekt anzukoppeln, sei es für ein Skelett- oder statisches Mesh. Die Unreal Engine 4 bietet Werkzeuge zum Erstellen von Sockets im Statisches-Mesh-Editor. Manchmal kann es notwendig sein, diese in Ihrer 3D Modellierungsanwendung einzurichten und mit Ihrem Render-Mesh zu exportieren. Diese Sockets können relativ zum Bone eines Skelett-Meshs und/oder zur Größe des statischen Meshs verschoben, gedreht und skaliert werden.
Um einen Socket in Ihrer Modellierungsanwendung zu verwenden, müssen Sie ein Dummy- oder Helper-Objekt mit dem Präfix SOCKET_
verwenden.
Mesh-Präfix und -Name | Beschreibung |
---|---|
SOCKET_[RenderMeshName]_## | Verwenden Sie dies für alle Dummy- oder Helper-Objekte in Ihrer Modellierungsanwendung, um Ihrem Mesh einen Socket zuzuweisen. |
Vorbehalte und Überlegungen
-
RenderMeshName
muss mit dem Namen des Render-Meshs identisch sein, dem das Socket-Objekt in der 3D-Anwendung zugehörig ist. Wenn Sie also ein Render- Mesh mit dem NamenObject_01
in Ihrer 3D-Anwendung haben, muss sich Ihr Socket-Objekt in der Szene mit diesem Mesh befinden und den Namen SOCKET_Object_01 tragen, und dann zusammen mit dem Render-Mesh in dieselbe FBX-Datei exportiert werden. Wenn Sie mehr als ein Socket-Objekt für ein Mesh benötigen, können Sie deren Namen mit weiteren Bezeichnern erweitern, wie z. B.: SOCKET_Object_01_00, SOCKET_Object_01_01, SOCKET_Object_01_02 usw... und sie alle werden als Sockets diesem Mesh zugehörig sein. -
Wenn Sie Sockets für Ihr Mesh erstellen, können Sie nur ein einziges Mesh-FBX-Setup mit Sockets haben, das in die Unreal Engine 5 importiert werden kann. Wenn Sie z. B. zwei Render-Meshs haben, die Sie als separate Assets verwenden möchten, müssen diese als separate FBX-Dateien importiert werden. Das bedeutet, dass Sie nicht mehrere Meshs importieren und die Sockets jedem einzelnen Mesh zuweisen können und dass, wenn Sie zwei Gruppen von Render-Meshs besitzen, die ihre eigenen Sockets haben, diese nicht korrekt importiert werden. Ein Beispiel: Wenn ich Object_01 mit SOCKET_Object_01_00 und ein anderes Render-Mesh Box_01 mit SOCKET_Box_01_00 habe, kann ich nicht beide Meshs mit ihren Sockets zusammen exportieren. Sie müssten als separate FBX-Dateien exportiert werden.
Scheitelpunkt-Farben
Scheitelpunkte für Static Meshes können unter Verwendung der FBX-Pipeline übertragen werden. Es ist keine besondere Einrichtung erforderlich
Bild für Großansicht anklicken.
Mesh exportieren
Static Meshes können einzeln oder mehrere Meshs können in eine einzige FBX-Datei exportiert werden. Die Import-Pipeline trennt mehrere Static Meshes in mehrere Assets innerhalb des Zielpakets, es sei denn, Sie haben die Einstellung Combine Meshes zum Zeitpunkt der Paketierung aktiviert, um die Meshs zu kombinieren. Lesen Sie die Dokumentation zum Exportieren von FBX-Dateien für das DCC-Werkzeug Ihrer Wahl und denken Sie daran, sich bei der Erstellung Ihrer Meshs an die zuvor vorgestellten Leitfäden zu halten.
Die FBX-Importpipeline der Unreal Engine verwendet FBX 2020.2. Die Verwendung einer anderen Version beim Export kann zu Inkompatibilitäten führen.
Mesh importieren
-
Klicken Sie auf die Schaltfläche Add/Import im Content Browser und wählen Sie Import. Navigieren Sie zur FBX-Datei, die Sie importieren möchten, im sich öffnenden Dateibrowser und wählen Sie sie aus.
Sie möchten vielleicht
in der Dropdown-Liste auswählen, um unerwünschte Dateien herauszufiltern.
Bild für Großansicht anklicken.
Der Pfad des importierten Assets hängt von der aktuellen Position innerhalb des Content Browser ab. Navigieren Sie zum entsprechenden Ordner, bevor Sie den Import durchführen. Sie können die importierten Assets auch in einen neuen Ordner ziehen, nachdem der Importvorgang abgeschlossen wurde.
-
Wählen Sie die entsprechenden Einstellungen im Import-Dialog. Die Standardeinstellungen sollten in den meisten Fällen ausreichend sein. Im Abschnitt FBX Import Dialog finden Sie alle Details zu den Einstellungen.
Bild für Großansicht anklicken.
-
Klicken Sie auf die Schaltfläche Import, um das/die Mesh(s) zu importieren. Das resultierende Mesh, das/die Material(ien) und die Textur(en) werden im Content Browser angezeigt, wenn der Prozess erfolgreich war.
Bild für Großansicht anklicken.
Obwohl Texturen und Materialien mit einem statischen Mesh importiert werden können, werden nur Color und Normal automatisch verbunden (unter der Annahme, dass ein unterstütztes Material verwendet wurde), Specular-Maps werden importiert, aber nicht verbunden, andere Maps, z. B. eine Ambient Occlusion-Map im Diffuse-Slot eines Maya-Materials, werden gar nicht erst importiert; prüfen Sie am besten Ihre Materialien und verbinden Sie alle nicht verbundenen Maps und prüfen Sie, welche Maps nicht importiert wurden. Doppelklicken Sie einfach auf das neue Material und verbinden Sie die verfügbaren Texturen mit ihren entsprechenden Inputs.
Wenn Sie das importierte Mesh im Static Mesh Editor betrachten und die Kollisionsanzeige aktivieren, können Sie feststellen, dass der Vorgang wie erwartet funktioniert hat.
Bild für Großansicht anklicken.
Alternativ dazu können Sie auch einfach auf eine FBX-Datei klicken und sie von Windows in den Content Browser ziehen. Dann wird der Importdialog für Sie angezeigt.
Statisches-Mesh-LODs
Static Meshes können in-game Detaillierungsgrade (LODs) verwenden, um die Auswirkungen von Meshs zu begrenzen, wenn sie weiter von der Kamera entfernt sind. Im Allgemeinen bedeutet dies, dass auf jedem LOD eine geringere Anzahl von Tris und vielleicht ein einfacheres Material (oder Materialien) angewendet wird.
Bild für Großansicht anklicken.
Die FBX-Pipeline kann zum Importieren von LOD-Meshs verwendet werden, die mit DCC-Werkzeugen erstellt wurden, oder es können LODs für importierte statische Meshs direkt im UE erstellt werden.
LOD-Einrichtung
Allgemein werden LODs gehandhabt, indem Modelle unterschiedlicher Komplexität erstellt werden, vom Basis-Mesh mit allen Details bis hin zum einfachsten Mesh mit den geringsten Details. Alle sollten ausgerichtet sein und denselben Raum mit demselben Drehpunkt einnehmen. Jedem LOD-Mesh können völlig unterschiedliche Materialien zugewiesen werden, einschließlich unterschiedlicher Mengen an Materialien. Das bedeutet, dass das Basis-Mesh mehrere Materialien verwenden kann, um die gewünschte Detailgenauigkeit zu erzielen, während die Meshs mit geringeren Details ein einziges Material verwenden können, da die Details dann weniger auffällig sind.
Jedes DCC-Werkzeug hat seinen eigenen Workflow, um LODs für statische Meshs zu erstellen. Lesen Sie daher in der Dokumentation des Werkzeugs Ihrer Wahl nach, wie Sie diese erstellen und in Ihre FBX-Exporte einbeziehen können.
LODs importieren
Statisches-Mesh-LODs können zusammen mit dem Basis-Mesh im Content Browser importiert werden oder sie können einzeln über den Static Mesh Editor importiert werden.
-
Klicken Sie auf die Schaltfläche Add/Import im Content Browser und wählen Sie Import. Navigieren Sie zur FBX-Datei, die Sie importieren möchten, im sich öffnenden Dateibrowser und wählen Sie sie aus.
Sie möchten vielleicht
in der Dropdown-Liste auswählen, um unerwünschte Dateien herauszufiltern.
Der Pfad des importierten Assets hängt von der aktuellen Position innerhalb des Content Browser ab. Navigieren Sie zum entsprechenden Ordner, bevor Sie den Import durchführen. Sie können die importierten Assets auch in einen neuen Ordner ziehen, nachdem der Importvorgang abgeschlossen wurde.
-
Wählen Sie die entsprechenden Einstellungen im Import-Dialog. Die Standardeinstellungen sollten ausreichen, aber stellen Sie auch sicher, dass Import LODs aktiviert ist. Hinweis: Wenn Sie LODs importieren, folgt der Name des importierten Meshs den standardmäßigen Benennungsregeln. Im Abschnitt FBX Import Dialog finden Sie alle Details zu den Einstellungen.
Bild für Großansicht anklicken.
-
Klicken Sie auf die Schaltfläche Import, um das Mesh und die LODs zu importieren. Das resultierende Mesh, das/die Material(ien) und die Textur(en) werden im Content Browser angezeigt, wenn der Prozess erfolgreich war.
Bild für Großansicht anklicken.
Obwohl Texturen und Materialien mit einem statischen Mesh importiert werden können, werden nur Color und Normal automatisch verbunden (unter der Annahme, dass ein unterstütztes Material verwendet wurde), Specular-Maps werden importiert, aber nicht verbunden, andere Maps, z. B. eine Ambient Occlusion-Map im Diffuse-Slot eines Maya-Materials, werden gar nicht erst importiert; prüfen Sie am besten Ihre Materialien und verbinden Sie alle nicht verbundenen Maps und prüfen Sie, welche Maps nicht importiert wurden. Doppelklicken Sie einfach auf das neue Material und verbinden Sie die verfügbaren Texturen mit ihren entsprechenden Inputs.
Wenn Sie das importierte Mesh im Static Mesh Editor betrachten, können Sie die LODs mit dem LOD Picker im Details-Panel durchlaufen.
Bild für Großansicht anklicken.
LODs für importierte statische Meshs erstellen
Sobald ein statisches Mesh importiert wurde, können Sie entweder LODs dafür manuell erstellen, was zwar länger dauert, aber vor allem bei komplexen Meshs die besten Ergebnisse bringt, oder Sie verwenden das LOD-Autogenerationswerkzeug von UE, das schneller ist, wenn Sie LODs für mehrere einfache Meshs generieren müssen.