Up to date

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

Import-Konfiguration

Godot bietet mehrere Möglichkeiten zur Anpassung der importierten Daten, wie z.B. das Import-Dock, den erweiterten Import-Einstellungsdialog und geerbte Szenen. Auf diese Weise können Sie weitere Änderungen an der importierten Szene vornehmen, z.B. Meshes anpassen, Physikinformationen hinzufügen und neue Nodes hinzufügen. Sie können auch ein Skript schreiben, das am Ende des Importvorgangs Code ausführt, um beliebige Anpassungen vorzunehmen.

Beachten Sie, wenn möglich, dass es besser ist, die Originaldaten zu ändern, als die Szene nach dem Import zu konfigurieren. Dies hilft, die Unterschiede zwischen der 3D-Modellierungs-Software und der importierten Szene zu minimieren. Siehe die Artikel Überlegungen zum Modellexport und Benutzerdefinierte Anpassungen des Node-Typs mithilfe von Namenssuffixen für weitere Informationen.

Import-Workflows

Da Godot nur sein eigenes Szenenformat (.tscn/.scn) speichern kann, kann Godot nicht über die ursprüngliche 3D-Szenendatei (die ein anderes Format verwendet) speichern. Dies ist auch ein sichererer Ansatz, da er versehentliche Änderungen an der Quelldatei vermeidet.

Damit die Szene und ihre Materialien individuell angepasst werden können, ermöglicht der Godot-Szenenimporter verschiedene Workflows für den Datenimport.

Import-Dock nach Auswahl einer 3D-Szene im Dateisystem-Dock

Import-Dock nach Auswahl einer 3D-Szene im Dateisystem-Dock

Dieser Importprozess kann je nach Bedarf über 3 verschiedene Schnittstellen angepasst werden:

  • Das Import-Dock, nachdem Sie die 3D-Szene durch einmaliges Anklicken im Dateisystem-Dock ausgewählt haben.

  • Das Dialogfeld Erweiterte Importeinstellungen, das durch Doppelklicken auf die 3D-Szene im Dateisystem-Dock oder durch Klicken auf den Erweitert...-Button im Import-Dock aufgerufen werden kann. Hier können Sie die Optionen für jedes einzelne Objekt in Godot anpassen.

  • Import-Hints sind spezielle Suffixe, die den Objektnamen in der 3D-Modellierungssoftware hinzugefügt werden. Damit können Sie die Optionen in der 3D-Modellierungssoftware objektspezifisch anpassen.

Für grundlegende Anpassungen reicht die Verwendung des Importdocks aus. Für komplexere Vorgänge, wie z.B. das Definieren von Materialüberschreibungen für jedes einzelne Material, müssen Sie jedoch das Dialogfeld Erweiterte Importeinstellungen, Import-Hints oder möglicherweise beides verwenden.

Verwenden des Importdocks

Die folgenden Optionen können im Import-Dock eingestellt werden, nachdem eine 3D-Szene im Dateisystem-Dock ausgewählt wurde:

  • Root-Typ: Der Node-Typ, der als Root-Node verwendet werden soll. Es wird empfohlen, Node-Typen zu verwenden, die von Node3D erben. Andernfalls verlieren Sie die Möglichkeit, den Node direkt im 3D-Editor zu positionieren.

  • Root-Name: Der Name des Root-Nodes in der importierten Szene. Dies ist im Allgemeinen nicht bemerkbar, wenn die Szene im Editor instanziiert wird (oder per Drag-and-Drop aus dem Dateisystem-Dock), da der Root-Node in diesem Fall umbenannt wird, um dem Dateinamen zu entsprechen.

  • Root-Skalierung anwenden: Wenn diese Option aktiviert ist, wird die Root-Skalierung direkt auf die Meshes und Animationen angewendet, während die Skalierung des Root-Nodes auf dem Default-Wert (1, 1, 1) bleibt. Das bedeutet, dass wenn Sie später einen Child-Node in der importierten Szene hinzufügen, dieser nicht skaliert wird. Wenn es deaktiviert ist, wird Root-Skalierung stattdessen die Skalierung des Root-Nodes multiplizieren.

Meshes

  • Tangenten gewährleisten: Wenn diese Option aktiviert ist, werden Vertex-Tangenten mit Mikktspace erzeugt, wenn die Eingabemeshes keine Tangentendaten haben. Wenn möglich, wird empfohlen, die 3D-Modellierungssoftware beim Export die Tangenten erzeugen zu lassen, anstatt sich auf diese Option zu verlassen. Tangenten sind für die korrekte Anzeige von Normalen- und Höhenkarten sowie für alle Material-/Shader-Features erforderlich, die Tangenten benötigen. Wenn Sie keine Materialfunktionen benötigen, die Tangenten benötigen, kann die Deaktivierung dieser Option die Größe der Ausgabedatei verringern und den Import beschleunigen, wenn die 3D-Quelldatei keine Tangenten enthält.

  • LODs erzeugen: Wenn diese Option aktiviert ist, werden Varianten des Meshes mit geringeren Details erzeugt, die in der Ferne angezeigt werden, um die Performance des Renderings zu verbessern. Nicht alle Meshes profitieren von LOD, insbesondere wenn sie nie aus der Ferne gerendert werden. Die Deaktivierung dieser Option kann die Größe der Ausgabedatei verringern und den Import beschleunigen. Siehe Mesh-Level of Detail (LOD) für weitere Informationen.

  • Schattenmeshes erstellen: Wenn diese Option aktiviert ist, werden beim Import Schattenmeshes erstellt. Dies optimiert das Rendering von Schatten, ohne die Qualität zu beeinträchtigen, indem Vertices wenn möglich zusammengeschweißt werden. Dies wiederum reduziert die für das Rendern von Schatten erforderliche Speicherbandbreite. Die Erzeugung von Schattenmeshes unterstützt derzeit nicht die Verwendung einer niedrigeren Detailstufe als die des Quellmeshes (beim Schattenrendering werden jedoch LODs verwendet, wenn dies relevant ist).

  • Licht-Backen: Konfiguriert den Global Illumination-Modus der Meshes in der 3D-Szene. Wenn er auf Statische Lightmaps gesetzt ist, setzt er den GI-Modus der Meshes auf Statisch und generiert UV2 beim Import für Lightmap-Backen.

  • Lightmap-Texelgröße: Nur sichtbar, wenn Licht-Backen auf Statische Lightmaps eingestellt ist. Steuert die Größe der einzelnen Texel auf der gebackenen Lightmap. Ein kleinerer Wert führt zu präziseren Lightmaps, zum Preis von größeren Lightmap-Größen und längeren Backzeiten.

Skins

  • Benannte Skins verwenden: Wenn diese Option aktiviert ist, werden benannte Skins für die Animation verwendet. Der MeshInstance3D-Node enthält 3 hier relevante Propertys: einen Skelett-NodePath, der auf den Skeleton3D-Node zeigt (normalerweise ..), ein Mesh und eine Skin:

    • Der Skeleton3D-Node enthält eine Liste von Knochen mit Namen, deren Pose und Standardpose, einen Namen und einen Parent-Knochen.

    • Das Mesh ist die Gesamtheit der rohen Vertex-Daten, die zur Darstellung eines Meshes benötigt werden. Das Mesh weiß, wie Vertices gewichtet werden und verwendet eine interne Nummerierung, die oft aus 3D-Modellierungssoftware importiert wird.

    • Die Skin enthält die Informationen, die erforderlich sind, um dieses Mesh an dieses Skeleton3D zu binden. Für jede der internen Knochen-IDs, die von der 3D-Modellierungssoftware ausgewählt wurden, enthält sie zwei Dinge. Erstens, eine Matrix, die Bind Pose Matrix, Inverse Bind Matrix oder kurz IBM genannt wird. Zweitens enthält die Skin den Namen des jeweiligen Knochens (wenn Benannte Skins verwenden aktiviert ist) bzw. den Index des Knochens innerhalb der Skeleton3D-Liste (wenn Benannte Skins verwenden deaktiviert ist).

Zusammen reichen diese Informationen aus, um Godot mitzuteilen, wie die Knochenposen im Skeleton3D-Node verwendet werden sollen, um das Mesh von jedem MeshInstance3D zu rendern. Beachte, dass jedes MeshInstance3D Binds teilen kann, wie es in aus Blender exportierten Modellen üblich ist, oder jedes MeshInstance3D kann ein separates Skin-Objekt verwenden, wie es in aus anderen Tools wie Maya exportierten Modellen üblich ist.

Animation

  • Importieren: Wenn diese Option aktiviert ist, werden Animationen aus der 3D-Szene importiert.

  • FPS: Die Anzahl der Bilder pro Sekunde, die für das Backen von Animationskurven zu einer Reihe von Punkten mit linearer Interpolation verwendet wird. Es wird empfohlen, diesen Wert so zu konfigurieren, dass er mit dem Wert übereinstimmt, den Sie als Grundlinie in Ihrer 3D-Modellierungssoftware verwenden. Höhere Werte führen zu präziseren Animationen mit schnellen Bewegungsänderungen, allerdings zum Preis höherer Dateigrößen und des Speicherbedarfs. Dank der Interpolation bringt es in der Regel nicht viel, über 30 FPS zu gehen (da die Animation auch bei höheren Rendering-Framerates noch flüssig erscheint).

  • Beschneiden: Schneiden Sie den Anfang und das Ende von Animationen ab, wenn es keine Keyframe-Änderungen gibt. Dies kann die Größe der Ausgabedatei und die Speichernutzung bei bestimmten 3D-Szenen reduzieren, je nach Inhalt der Animations-Tracks.

  • Unveränderliche Tracks entfernen: Entfernt Animationstracks, die nur Default-Werte enthalten. Dies kann die Größe der Ausgabedatei und die Speichernutzung bei bestimmten 3D-Szenen reduzieren, je nach Inhalt der Animations-Tracks.

Import-Skript

glTF

  • Behandlung eingebetteter Texturen: Steuert, wie in glTF-Szenen eingebettete Texturen behandelt werden sollen. Alle Texturen verwerfen importiert keine Texturen, was nützlich ist, wenn Sie stattdessen Materialien manuell in Godot einrichten möchten. Texturen extrahieren extrahiert Texturen in externe Bilder, was zu kleineren Dateigrößen und mehr Kontrolle über die Importoptionen führt. Einbetten als Basis Universal und Einbetten als Unkomprimiert lässt die Texturen in der importierten Szene eingebettet, mit bzw. ohne VRAM-Kompression.

Verwendung des Dialogs Erweiterte Importeinstellungen

Der erste Tab, den Sie sehen werden, ist der Szenen-Tab. Die Optionen auf der rechten Seite sind identisch mit denen des Import-Docks, aber Sie haben Zugriff auf eine 3D-Vorschau. Die 3D-Vorschau kann rotiert werden, indem Sie die linke Maustaste gedrückt halten und die Maus ziehen. Der Zoom kann mit dem Mausrad eingestellt werden.

Dialogfeld Erweiterte Importeinstellungen (Szenen-Tab)

Dialogfeld Erweiterte Importeinstellungen (Szenen-Tab). Quelle: Modern Arm Chair 01 - Poly Haven

Konfiguration der Node-Importoptionen

Sie können einzelne Nodes, aus denen die Szene besteht, im Szene-Tab auswählen, indem Sie die Baumansicht auf der linken Seite verwenden:

Auswahl eines Nodes im Dialogfeld Erweiterte Importeinstellungen (Szenentab)

Auswählen eines Nodes im Dialogfeld Erweiterte Importeinstellungen (Materialien-Tab)

Dadurch werden mehrere Importoptionen für jeden einzelnen Node verfügbar:

  • Import überspringen: Wenn diese Option aktiviert ist, wird der Node in der endgültigen importierten Szene nicht vorhanden sein. Durch die Aktivierung dieser Option werden alle anderen Optionen deaktiviert.

  • Generieren > Physik: Wenn diese Option aktiviert ist, wird ein PhysicsBody3D Parent-Node mit Collision Shapes erzeugt, die Nachbarn des MeshInstance3D-Node sind.

  • Generieren > NavMesh: Wenn diese Option aktiviert ist, wird ein NavigationRegion3D Child-Node für Navigation erzeugt. Mit Mesh + NavMesh bleibt das ursprüngliche Mesh sichtbar, während Nur NavMesh nur das Navigations-Mesh importiert (ohne visuelle Darstellung). Nur NavMesh sollte verwendet werden, wenn Sie manuell ein vereinfachtes Mesh für die Navigation erstellt haben.

  • Generieren > Occluder: Wenn diese Option aktiviert ist, wird ein OccluderInstance3D Nachbar-Node für Occlusion Culling erzeugt, wobei die Geometrie des Meshes als Basis für die Form des Occluders verwendet wird. Mit Mesh + Occluder bleibt das ursprüngliche Netz sichtbar, während mit Nur Occluder nur der Occluder (ohne visuelle Darstellung) importiert wird. Nur Occluder ist für den Fall gedacht, dass Sie manuell ein vereinfachtes Mesh für das Occlusion Culling erstellt haben.

Diese Optionen sind nur sichtbar, wenn einige der oben genannten Optionen aktiviert sind:

  • Physik > Body-Typ: Nur sichtbar, wenn Generieren > Physik aktiviert ist. Steuert den PhysicsBody3D, der erstellt werden soll. Statisch erzeugt einen StaticBody3D, Dynamisch erzeugt einen RigidBody3D, Fläche erzeugt einen Area3D.

  • Physik > Shape-Typ: Nur sichtbar, wenn Generieren > Physik aktiviert ist. Trimesh ermöglicht präzise Kollisionen pro Dreieck, kann aber nur mit einem Statisch-Body-Typ verwendet werden. Andere Typen sind weniger präzise und erfordern möglicherweise eine manuelle Konfiguration, können aber mit jedem Body-Typ verwendet werden. Für statische Level-Geometrie verwenden Sie Trimesh. Für dynamische Geometrie verwenden Sie nach Möglichkeit primitive Shapes, um die Performance zu verbessern, oder verwenden Sie einen der konvexen Zerlegungsmodi, wenn die Form groß und komplex ist.

  • Dekomposition > Erweitert: Nur sichtbar, wenn Physik > Shape-Typ auf Konvex zerlegen steht. Wenn diese Option aktiviert ist, können Sie die erweiterten Dekompositionsoptionen einstellen. Wenn sie deaktiviert ist, kann nur eine voreingestellte Präzision angepasst werden (was in der Regel ausreichend ist).

  • Dekomposition > Präzision: Nur sichtbar, wenn Physik > Shape-Typ Konvex-Dekomposition ist. Steuert die Präzision, die für die Konvex-Dekomposition verwendet wird. Höhere Werte führen zu detaillierteren Kollisionen, allerdings zum Preis einer langsameren Generierung und einer höheren CPU-Auslastung während der Physiksimulation. Um die Performance zu verbessern, wird empfohlen, diesen Wert für Ihre Anwendungsfälle so niedrig wie möglich zu halten.

  • Occluder > Vereinfachungs-Distanz: Nur sichtbar, wenn Generieren > Occluder auf Mesh + Occluder oder Nur Occluder eingestellt ist. Höhere Werte führen zu einem Occluder-Mesh mit weniger Vertices (was zu einer geringeren CPU-Auslastung führt), allerdings zum Preis von mehr Occlusion-Culling-Problemen (z. B. falsch positive oder falsch negative Ergebnisse). Wenn Ihnen auffällt, dass Objekte verschwinden, wenn sie nicht verschwinden sollten, sobald sich die Kamera in der Nähe eines bestimmten Meshes befindet, versuchen Sie, diesen Wert zu verringern.

Konfigurieren von Mesh- und Material-Importoptionen

Im Dialog Erweiterte Importeinstellungen gibt es 2 Möglichkeiten, einzelne Meshes oder Materialien auszuwählen:

  • Wechseln Sie zum Meshes- oder Materialien-Tab in der oberen linken Ecke des Dialogs.

  • Bleiben Sie im Szene-Tab, aber klappen Sie die Optionen in der Baumansicht auf der linken Seite aus. Nach der Auswahl eines Meshes oder Materials werden hier dieselben Informationen wie in den Meshes- und Materialien-Tabs angezeigt, allerdings in einer Baumansicht anstelle einer Liste.

Wenn Sie ein Mesh auswählen, erscheinen verschiedene Optionen in der Leiste auf der rechten Seite:

Dialogfeld Erweiterte Importeinstellungen (Meshes-Tab)

Dialogfeld Erweiterte Importeinstellungen (Meshes-Tab)

Die Optionen sind wie folgt:

  • Speichern in Datei: Speichert die Mesh-Ressource in einer externen Datei (dies ist keine Szenendatei). Im Allgemeinen brauchen Sie dies nicht zu verwenden, um das Mesh in einer 3D-Szene zu platzieren - stattdessen sollten Sie die 3D-Szene direkt instanziieren. Der direkte Zugriff auf die Mesh-Ressource ist jedoch für bestimmte Nodes nützlich, wie MeshInstance3D, MultiMeshInstance3D, GPUParticles3D oder CPUParticles3D. - Sie müssen auch einen Pfad für die Ausgabedatei angeben, indem Sie die Option verwenden, die nach dem Aktivieren von Speichern in Datei erscheint. Es wird empfohlen, die Ausgabedatei-Erweiterung .res zu verwenden, um kleinere Dateigrößen und schnellere Ladezeiten zu erreichen, da .tres für das Schreiben großer Datenmengen ineffizient ist.

  • Generieren > Schattenmeshes: Überschreiben der szenenweiten Importoption Meshes > Schattenmeshes erstellen, für jedes Mesh separat, beschrieben in Verwenden des Importdocks. Default verwendet die szenenweite Importoption, während Aktivieren oder Deaktivieren dieses Verhalten zwangsweise für ein bestimmtes Mesh aktivieren oder deaktivieren kann.

  • Generieren > Lightmap UV: Überschreiben der szenenweiten Importoption Meshes > Licht-Backen, für jedes Mesh separat, die in Verwenden des Importdocks beschrieben wird. Default verwendet die szenenweite Importoption, während Aktivieren oder Deaktivieren dieses Verhalten zwangsweise für ein bestimmtes Mesh aktivieren oder deaktivieren kann. - Die Einstellung Aktivieren in einer Szene mit dem Modus Statisch ist gleichbedeutend mit der Konfiguration des Meshes für die Verwendung von Statischen Lightmaps. Die Einstellung Deaktivieren in einer Szene mit dem Licht-Backmodus Statische Lightmaps entspricht, das Mesh so zu konfigurieren, dass stattdessen Statisch verwendet wird.

  • Generieren > LODs: Überschreiben der szenenweiten Importoption Meshes > LODs generieren, für jedes Mesh separat, die in Verwenden des Importdocks beschrieben ist. Default verwendet die szenenweite Importoption, während Aktiveren oder Deaktivieren dieses Verhalten zwangsweise für ein bestimmtes Mesh aktivieren oder deaktivieren kann.

  • LODs > Normalen-Trennungswinkel: Der minimale Winkelunterschied zwischen zwei Vertices, der erforderlich ist, um eine Geometriekante bei der LOD-Generierung des Meshes zu erhalten. Bei visuellen Problemen mit der LOD-Generierung kann eine Verringerung dieses Wertes helfen (zum Preis einer weniger effizienten LOD-Generierung).

  • LODs > Normalen-Zusammenführungswinkel: Der minimale Winkelunterschied zwischen zwei Vertices, der erforderlich ist, um eine Geometriekante bei der LOD-Generierung des Meshes zu erhalten. Bei visuellen Problemen mit der LOD-Generierung kann eine Verringerung dieses Wertes helfen (zum Preis einer weniger effizienten LOD-Generierung).

Wenn Sie ein Material auswählen, erscheint nur eine Option in der Leiste auf der rechten Seite:

Dialogfeld Erweiterte Importeinstellungen (Materialien-Tab)

Dialogfeld Erweiterte Importeinstellungen (Materialien-Tab)

Wenn Extern verwenden aktiviert ist und ein Ausgabepfad angegeben ist, können Sie ein externes Material anstelle des in der ursprünglichen 3D-Szenendatei enthaltenen Materials verwenden; siehe den folgenden Abschnitt.

Extrahieren von Materialien in separate Dateien

Godot kann zwar Materialien importieren, die in einer 3D-Modellierungssoftware erstellt wurden, aber die Default-Konfiguration ist möglicherweise nicht für Ihre Bedürfnisse geeignet. Zum Beispiel:

  • Sie möchten Material-Features konfigurieren, die von Ihrer 3D-Anwendung nicht unterstützt werden.

  • Sie möchten einen anderen Texturfiltermodus verwenden, da diese Option seit Godot 4.0 im Material konfiguriert ist (und nicht im Bild).

  • Sie möchten eines der Materialien durch ein völlig anderes Material ersetzen, z. B. durch einen benutzerdefinierten Shader.

Um die Materialien der 3D-Szene im Godot-Editor ändern zu können, müssen Sie externe Materialressourcen verwenden.

Wählen Sie in der oberen linken Ecke des Dialogfelds Erweiterte Importeinstellungen die Option Aktionen... > Materialien extrahieren:

Extrahieren aller Built-in-Materialien in externe Ressourcen im Dialogfeld Erweiterte Importeinstellungen

Extrahieren aller Built-in-Materialien in externe Ressourcen im Dialogfeld Erweiterte Importeinstellungen

Nachdem Sie diese Option gewählt haben, wählen Sie einen Ordner aus, in den die .tres-Dateien extrahiert werden sollen, und bestätigen Sie dann die Extraktion:

Bestätigen der Materialextraktion im Unterdialog Erweiterte Importeinstellungen

Bestätigen der Materialextraktion im Unterdialog Erweiterte Importeinstellungen

Bemerkung

Nach dem Extrahieren von Materialien wird die 3D-Szene automatisch so konfiguriert, dass externe Materialreferenzen verwendet werden. Daher müssen Sie nicht bei jedem Material manuell Extern verwenden aktivieren, damit das externe .tres-Material wirksam wird.

Wenn Extern verwenden aktiviert ist, denken Sie daran, dass im Dialogfeld Erweiterte Importeinstellungen weiterhin die Originalmaterialien des Meshes angezeigt werden (die Materialien, die in der 3D-Modellierungssoftware entworfen wurden). Das bedeutet, dass Ihre Anpassungen an den Materialien in diesem Dialogfeld nicht sichtbar sind. Um Ihre geänderten Materialien in der Vorschau zu sehen, müssen Sie die importierte 3D-Szene mit dem Editor in einer anderen Szene platzieren.

Godot überschreibt keine Änderungen, die an extrahierten Materialien vorgenommen wurden, wenn die 3D-Quellszene erneut importiert wird. Wenn jedoch der Materialname in der 3D-Quelldatei geändert wird, geht die Verbindung zwischen dem Originalmaterial und dem extrahierten Material verloren. Daher müssen Sie den Dialog Erweiterte Importeinstellungen verwenden, um das umbenannte Material mit dem vorhandenen extrahierten Material zu verknüpfen.

Dies kann im der Materialien-Tab des Dialogs geschehen, indem Sie das Material auswählen, In Datei speichern aktivieren und dann den Speicherpfad mit der Option Pfad angeben, die nach der Aktivierung von In Datei speichern erscheint.

Verwendung von Importskripten für die Automatisierung

Ein spezielles Skript zur Verarbeitung der gesamten Szene nach dem Import kann bereitgestellt werden. Dies eignet sich hervorragend für die Nachbearbeitung, das Ändern von Materialien, lustige Sachen mit der Geometrie und vieles mehr.

Erstellen Sie ein Skript, das keinem Knoten zugeordnet ist, indem Sie mit der rechten Maustaste in das Dateisystem-Dock klicken und Neu > Skript... wählen. Schreiben Sie Folgendes in den Skript-Editor:

@tool # Needed so it runs in editor.
extends EditorScenePostImport

# This sample changes all node names.
# Called right after the scene is imported and gets the root node.
func _post_import(scene):
    # Change all node names to "modified_[oldnodename]"
    iterate(scene)
    return scene # Remember to return the imported scene

# Recursive function that is called on every node
# (for demonstration purposes; EditorScenePostImport only requires a `_post_import(scene)` function).
func iterate(node):
    if node != null:
        print_rich("Post-import: [b]%s[/b] -> [b]%s[/b]" % [node.name, "modified_" + node.name])
        node.name = "modified_" + node.name
        for child in node.get_children():
            iterate(child)

Die Funktion _post_import(scene: Node) nimmt die importierte Szene als Argument (der Parameter ist eigentlich der Root-Node der Szene). Die Szene, die letztendlich verwendet wird, muss zurückgegeben werden (auch wenn die Szene völlig anders sein kann).

Verwendung von Animationsbibliotheken

Ab Godot 4.0 können Sie wählen, ob Sie nur Animationen aus einer glTF-Datei importieren wollen und nichts anderes. Dies wird in einigen Asset-Pipelines verwendet, um Animationen getrennt von Modellen zu verteilen. So können Sie beispielsweise einen Satz von Animationen für mehrere Charaktere verwenden, ohne die Animationsdaten in jedem Charakter duplizieren zu müssen.

Wählen Sie dazu die glTF-Datei im Dateisystem-Dock aus und ändern Sie dann den Importmodus im Import-Dock auf Animationsbibliothek:

Ändern des Importtyps in Animationsbibliothek im Importdock

Ändern des Importtyps in Animationsbibliothek im Importdock

Klicken Sie auf Neuimport und starten Sie den Editor neu, wenn Sie dazu aufgefordert werden. Nach dem Neustart wird die glTF-Datei als AnimationLibrary anstelle einer PackedScene importiert. Diese Animationsbibliothek kann dann in einem AnimationPlayer-Node referenziert werden.

Die Importoptionen, die nach dem Ändern des Importmodus in der Animationsbibliothek sichtbar sind, verhalten sich genauso wie bei der Verwendung des Importmodus "Szene". Siehe Verwenden des Importdocks für weitere Informationen.

Filter-Skript

Es ist möglich, ein Filterskript in einer speziellen Syntax anzugeben, um zu entscheiden, welche Tracks von welchen Animationen behalten werden sollen.

Das Filterskript wird für jede importierte Animation ausgeführt. Die Syntax besteht aus zwei Arten von Anweisungen, die erste für die Auswahl der zu filternden Animationen, die zweite für die Filterung einzelner Tracks innerhalb der übereinstimmenden Animation. Alle Namensmuster werden mit einer Groß-/Kleinschreibung-unabhängigen Ausdrucksvergleichs ausgeführt, mit Unterstützung für ?- und *-Wildcards (unter der Haube wird String.matchn() verwendet).

Das Skript muss mit einer Animationsfilteranweisung beginnen (wie durch die mit einem @ beginnende Zeile angegeben). Zum Beispiel, wenn wir Filter auf alle importierten Animationen anwenden möchten, deren Name auf "_Loop" endet:

@+*_Loop

In ähnlicher Weise können weitere Muster durch Kommas getrennt in derselben Zeile hinzugefügt werden. Hier ist ein geändertes Beispiel, das zusätzlich alle Animationen miteinbezieht, deren Namen mit "Arm_Left" beginnen, aber auch alle Animationen ausschließt, deren Namen mit "Attack" enden:

@+*_Loop, +Arm_Left*, -*Attack

Im Anschluss an die Erklärung zum Animationsauswahlfilter fügen wir Track-Filter-Muster hinzu, um anzugeben, welche Animations-Tracks beibehalten oder verworfen werden sollen. Wenn keine Track-Filter-Muster angegeben wurden, werden alle Tracks innerhalb der übereinstimmenden Animationen verworfen!

Es ist wichtig zu beachten, dass die Anweisungen des Track-Filters für jeden Track innerhalb der Animation der Reihe nach angewendet werden, d.h. eine Zeile kann einen Track enthalten, eine spätere Regel kann ihn immer noch verwerfen. In ähnlicher Weise kann ein durch eine frühe Regel ausgeschlossener Track dann durch eine Filterregel weiter unten im Filterskript wieder aufgenommen werden.

Nehmen Sie zum Beispiel alle Tracks in Animationen mit Namen, die auf "_Loop" enden, aber verwerfen Sie alle Tracks, die ein "Skelett" betreffen, das auf "Control" endet, es sei denn, sie haben "Arm" in ihrem Namen:

@+*_Loop
+*
-Skeleton:*Control
+*Arm*

Im obigen Beispiel würden Tracks wie "Skeleton:Leg_Control" verworfen, während Tracks wie "Skeleton:Head" oder "Skeleton:Arm_Left_Control" beibehalten würden.

Alle Track-Filter-Linien, die nicht mit einem + oder - beginnen, werden ignoriert.

Speicher

Standardmäßig werden Animationen als Built-in gespeichert. Es ist möglich, sie stattdessen in einer Datei zu speichern. Dies erlaubt es, den Animationen benutzerdefinierte Tracks hinzuzufügen und sie nach einem Neuimport beizubehalten.

Optimierer

Wenn Animationen importiert werden, wird ein Optimierer ausgeführt, der die Größe der Animation erheblich reduziert. Im Allgemeinen sollte dieser immer eingeschaltet sein, es sei denn, Sie vermuten, dass eine Animation aufgrund seiner Aktivierung beschädigt werden könnte.

Animations-Clips

Es ist möglich, mehrere Animationen aus einer einzigen Zeitleiste als Clips anzugeben. Damit dies funktioniert, muss das Model nur eine einzige Animation haben, die als default bezeichnet wird. Um Clips zu erstellen, ändern Sie die Clipmenge auf etwas größer als Null. Sie können dann einen Clip benennen, angeben, auf welchen Frames er startet und stoppt, und wählen, ob die Animation eine Schleife bildet oder nicht.

Szenenvererbung

In vielen Fällen kann es erwünscht sein, manuelle Änderungen an der importierten Szene vorzunehmen. Standardmäßig ist dies nicht möglich, da Godot bei einer Änderung des Quell-3D-Assets immer die gesamte Szene neu importiert.

Es ist jedoch möglich, lokale Änderungen mit Hilfe der Szenenvererbung vorzunehmen. Wenn Sie versuchen, die importierte Szene mit Szene > Szene öffnen... oder Szene > Szene schnell öffnen... zu öffnen, wird der folgende Dialog angezeigt:

Dialog beim Öffnen einer importierten 3D-Szene im Editor

Dialog beim Öffnen einer importierten 3D-Szene im Editor

Bei geerbten Szenen sind die einzigen Einschränkungen für Modifikationen:

  • Nodes aus der Basisszene können nicht entfernt werden, aber zusätzliche Nodes können überall hinzugefügt werden.

  • Subresourcen können nicht bearbeitet werden. Stattdessen müssen Sie sie, wie oben beschrieben, extern speichern.

Ansonsten ist alles erlaubt.