Benutzerdefinierte Anpassungen des Node-Typs mithilfe von Namenssuffixen

Bei der Bearbeitung einer Szene gibt es häufig Aufgaben, die nach dem Exportieren erledigt werden müssen:

  • Kollisionserkennung zu Objekten hinzufügen.

  • Objekte als Navigations-Meshes setzen.

  • Nodes löschen, die nicht in der Spiele-Engine verwendet werden (z. B. bestimmte Lichter, die für die Modellierung verwendet werden).

Um diesen Workflow zu vereinfachen, bietet Godot verschiedene Suffixe, die den Namen der Objekte in Ihrer 3D-Modellierungssoftware hinzugefügt werden können. Beim Import erkennt Godot Suffixe in Objektnamen und führt automatisch Aktionen aus.

Warnung

Alle unten beschriebenen Suffixe können mit -, $ und _ verwendet werden und unterscheiden Groß/Kleinschreibung.

Opting out

If you do not want Godot to perform any of the actions described below, you can set the nodes/use_node_type_suffixes import option to false. This will disable all node type suffixes, which keeps nodes the same type as the original file indicated. However, the -noimp suffix will still be respected, as well as non-node suffixes like -vcol or -loop.

Alternatively, you can completely opt out of all name suffixes by setting the nodes/use_name_suffixes import option to false. This will completely stop the general scene import code from looking at name suffixes. However, the format-specific import code may still look at name suffixes, such as the glTF importer checking for the -loop suffix.

Disabling these options makes editor-imported files more similar to the original files, and more similar to importing files at runtime. For an import workflow that works at runtime, gives more predictable results, and only has explicitly defined behavior, consider setting these options to false and using GLTFDocumentExtension instead.

Remove nodes and animations (-noimp)

Nodes and animations that have the -noimp suffix will be removed at import time no matter what their type is. They will not appear in the imported scene.

Dies ist gleichbedeutend mit der Aktivierung von Import überspringen für einen Node im Dialogfeld Erweiterte Importeinstellungen.

Kollisionen erzeugen (-col, -convcol, -colonly, -convcolonly)

Die Option -col funktioniert nur für Mesh-Objekte. Wenn sie erkannt wird, wird ein statischer Child-Collision-Node hinzugefügt, der die gleiche Geometrie wie das Mesh verwendet. Dadurch wird eine Dreiecks-Mesh-Collision-Shape erzeugt, was eine langsame, aber präzise Option für die Kollisionserkennung ist. Diese Option ist normalerweise das, was Sie für Level-Geometrie wünschen (siehe aber auch -colonly weiter unten).

Mit der Option -convcol wird ein ConvexPolygonShape3D anstelle eines ConcavePolygonShape3D erzeugt. Im Gegensatz zu Dreiecks-Meshes, die konkav sein können, kann eine konvexe Form nur eine Form genau darstellen, die keine konkaven Winkel hat (eine Pyramide ist konvex, aber eine hohle Box ist konkav). Aus diesem Grund sind konvexe Collision-Shapes im Allgemeinen nicht für Level-Geometrien geeignet. Wenn die Meshes einfach genug sind, können konvexe Collision Shapes im Vergleich zu einer dreieckigen Collision Shape zu einer besseren Performance führen. Diese Option ist ideal für einfache oder dynamische Objekte, die eine weitgehend genaue Kollisionserkennung erfordern.

In beiden Fällen kann die visuelle Geometrie jedoch zu komplex oder nicht glatt genug für Kollisionen sein. Dies kann zu Physikstörungen führen und die Engine unnötig verlangsamen.

Um dieses Problem zu lösen, gibt es den -colonly-Modifikator. Er entfernt das Mesh beim Importieren und erzeugt stattdessen eine StaticBody3D Kollision. Dies hilft, das visuelle Mesh und die tatsächliche Kollision zu trennen.

Die Option -convcolonly arbeitet ähnlich, erzeugt aber stattdessen ein ConvexPolygonShape3D unter Verwendung der konvexen Zerlegung.

Bei Collada-Dateien kann die Option -colonly auch mit leeren Objekten von Blender verwendet werden. Beim Import wird ein StaticBody3D mit einem Collision-Node als Child-Node erstellt. Der Collision-Node wird eine von mehreren vordefinierten Shapes haben, abhängig von Blenders leerem Zeichentyp:

Auswahl eines Zeichentyps für ein leeres Objekt bei der Erstellung in Blender

Auswahl eines Zeichentyps für ein leeres Objekt bei der Erstellung in Blender

Wenn möglich, versuchen Sie, einige wenige primitive Collision-Shapes anstelle von Dreiecks-Mesh oder konvexen Shapes zu verwenden. Primitive Shapes haben oft die beste Performance und Zuverlässigkeit.

Bemerkung

Für eine bessere Sichtbarkeit im Blender-Editor können Sie die "Röntgen"-Option für leere Collision-Objekte aktivieren und eine bestimmte Farbe für sie festlegen, indem Sie Bearbeiten > Einstellungen > Themes > 3D-Viewport > leere Objekte ändern.

Wenn Sie Blender 2.79 oder älter verwenden, folgen Sie stattdessen diesen Schritten: Benutzervorgaben > Themes > 3D-Ansicht > leere Objekte.

Siehe auch

Siehe Kollisions-Shapes (3D) für einen umfassenden Überblick über Collision-Shapes.

Occluder erstellen (-occ, -occonly)

Wenn ein Mesh mit dem Suffix -occ importiert wird, wird ein Occluder3D-Node basierend auf der Geometrie des Meshs erstellt, er ersetzt das Mesh nicht. Ein Mesh-Node mit dem Suffix -occonly wird beim Import in einen Occluder3D konvertiert.

Navigation erzeugen (-navmesh)

Ein Mesh-Node mit dem Suffix -navmesh wird in ein Navigations-Mesh umgewandelt. Das ursprüngliche Mesh-Objekt wird zum Zeitpunkt des Imports entfernt.

Ein VehicleBody erstellen (-vehicle)

Ein Mesh-Node mit dem Suffix -vehicle wird als Child-Node eines VehicleBody3D-Nodes importiert.

Ein VehicleWheel erstellen (-wheel)

Ein Mesh-Node mit dem Suffix -wheel wird als Child-Node eines VehicleWheel3D-Nodes importiert.

Rigid Body (-rigid)

Ein Node mit dem Suffix -rigid wird als RigidBody3D importiert.

Animations-Loop (-loop, -cycle)

Animationsclips in der 3D-Quelldatei, die mit dem Token loop oder cycle beginnen oder enden, werden als Godot-Animation mit gesetztem Loop-Flag importiert. Im Gegensatz zu den anderen oben beschriebenen Suffixen ist hier kein Bindestrich erforderlich.

In Blender erfordert dies die Verwendung des NLA-Editors und die Benennung der Aktion mit dem Präfix oder Suffix loop oder cycle.

Material alpha (-alpha)

A material with the -alpha suffix will be imported with the TRANSPARENCY_ALPHA transparency mode.

Material vertex color (-vcol)

A material with the -vcol suffix will be imported with the FLAG_ALBEDO_FROM_VERTEX_COLOR and FLAG_SRGB_VERTEX_COLOR flags set.