Up to date

This page is up to date for Godot 4.2. If you still find outdated information, please open an issue.

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

Bei allen nachstehend beschriebenen Suffixen ist die Groß-/Kleinschreibung zu beachten**.

Nodes entfernen (-noimp)

Objekte, die das Suffix -noimp haben, werden beim Import entfernt, unabhängig von ihrem Typ. Sie werden in der importierten Szene nicht erscheinen.

Dies ist gleichbedeutend mit der Aktivierung von Import überspringen für einen Knoten 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.

Create Occluder (-occ, -occonly)

If a mesh is imported with the -occ suffix an Occluder3D node will be created based on the geometry of the mesh, it does not replace the mesh. A mesh node with the -occonly suffix will be converted to an Occluder3D on import.

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.

Erstellen eines VehicleBody (-vehicle)

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

Erstellen eines VehicleWheel (-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.