Up to date
This page is up to date for Godot 4.2
.
If you still find outdated information, please open an issue.
Neuzuweisung von 3D-Skeletten¶
Optionen für Neuzuweisung¶
Knochen-Map¶
Wenn Sie den Skeleton3D-Node im erweiterten Szenenimportmenü auswählen, erscheint auf der rechten Seite ein Menü, das den Abschnitt "Neuzuweisen" enthält. Der Abschnitt "Neuzuweisen" hat eine einzige Property bone_map
.
Wenn der Skeleton-Node ausgewählt ist, legen Sie zunächst eine neue BoneMap und SkeletonProfile an. Godot hat eine Vorgabe namens SkeletonProfileHumanoid für humanoide Modelle. Dieses Tutorial geht davon aus, dass Sie SkeletonProfileHumanoid verwenden.
Bemerkung
Wenn Sie ein Profil für ein Modell wie ein Tier oder eine Kreatur benötigen, können Sie ein SkeletonProfile aus SkeletonEditor mit einigen aus Skeleton konvertierten Informationen exportieren.
Wenn Sie SkeletonProfileHumanoid verwenden, wird ein automatisches Zuordnung durchgeführt, wenn das SkeletonProfile gesetzt ist. Wenn die automatische Zuordnung nicht gut funktioniert, können Sie Knochen manuell zuordnen.
Fehlende, doppelte oder falsche Zuordnungen von Parent-Child-Beziehungen werden durch eine magentafarbene/rote Schaltfläche angezeigt (je nach Editoreinstellung). Sie blockiert den Importvorgang nicht, warnt aber davor, dass Animationen möglicherweise nicht korrekt geteilt werden.
Bemerkung
Die automatische Zuordnung verwendet Pattern Matching für die Knochennamen. Wir empfehlen daher, gebräuchliche englische Namen für Knochen zu verwenden.
Nachdem Sie die bone_map
eingerichtet haben, stehen Ihnen in den folgenden Abschnitten verschiedene Optionen zur Verfügung.
Tracks entfernen¶
Wenn Sie Ressourcen als AnimationLibrary importieren, die gemeinsam genutzt werden sollen, empfehlen wir, diese Optionen zu aktivieren. Wenn Sie jedoch Ressourcen als Szenen importieren, sollten diese Optionen in einigen Fällen deaktiviert werden. Wenn Sie zum Beispiel einen Charakter mit animierten Accessoires importieren, können diese Optionen dazu führen, dass die Accessoires nicht animiert werden.
Außer Knochen-Transform¶
Entfernt alle Tracks außer dem Knochen-Transform-Track aus den Animationen.
Unwichtige Positionen¶
Entfernt andere Positions-Tracks als root_bone
und scale_base_bone
, die in SkeletonProfile definiert sind, aus den Animationen. In SkeletonProfileHumanoid bedeutet dies, dass andere Positions-Tracks als "Root" und "Hips" entfernt werden sollen. Seit Godot 4.0+ schließen Animationen die Knochen-Standardpose in den Transform-Wert ein. Wenn Sie diese Option deaktivieren, kann die Animation die Körperform unvorhersehbar verändern.
Nicht-zugeordnete Knochen¶
Entfernt nicht zugeordnete Bone-Transform-Tracks aus den Animationen.
Knochen-Umbenenner¶
Knochen umbenennen¶
Umbenennen der zugeordneten Knochen.
Einzigartiger Node¶
Macht das Skelett zu einem eindeutigen Node mit dem in skeleton_name
angegebenen Namen. Dies ermöglicht die Vereinheitlichung der Animationspfade unabhängig von der Szenenhierarchie.
Ruheposen-Fixer¶
Für die in SkeletonProfileHumanoid definierten Referenzposen gelten die folgenden Regeln:
Für Humanoide gilt die T-Pose
Der Humanoide ist im rechtshändigen Y-oben-Koordinatensystem nach +Z ausgerichtet
Der Humanoide sollte keinen Transform als Node haben
Richtet die +Y-Achse vom Parent-Gelenk zum Child-Gelenk
Die +X-Rotation beugt das Gelenk wie ein Muskel, der sich zusammenzieht
Diese Regeln sind praktische Definitionen für Blend-Animationen und Inverse Kinematik (IK). Wenn Ihr Modell nicht dieser Definition entspricht, müssen Sie es mit diesen Optionen korrigieren.
Node-Transform anwenden¶
Wenn das Asset nicht korrekt für die gemeinsame Nutzung exportiert wurde, kann das importierte Skelett einen Transform als Node haben. Ein aus Blender exportiertes glTF, bei dem kein "Apply Transform" ausgeführt wurde, ist beispielsweise ein solcher Fall. Es sieht so aus, als ob das Modell mit der Definition übereinstimmt, aber die internen Transforms unterscheiden sich von der Definition. Diese Option behebt solche Modelle, indem Transforms beim Import angewendet werden.
Bemerkung
Wenn die importierte Szene andere Objekte als Skelette enthält, kann sich diese Option nachteilig auswirken.
Positions-Tracks normalisieren¶
Der Positions-Track wird hauptsächlich für die Bewegung des Modells verwendet, aber die gemeinsame Nutzung der Bewegungsanimation durch Modelle mit unterschiedlichen Höhen kann aufgrund der unterschiedlichen Schrittlänge zu einem Verrutschen führen. Diese Option normalisiert die Werte des Positions-Tracks basierend auf der scale_base_bone
-Höhe. Die scale_base_bone
-Höhe wird im Skelett als motion_scale
gespeichert, und die normalisierten Position-Track-Werte werden beim Abspielen mit diesem Wert multipliziert. Wenn diese Option deaktiviert ist, werden die Positions-Tracks nicht normalisiert und die motion_scale
des Skeletts wird immer als 1.0
importiert.
Bei SkeletonProfileHumanoid ist scale_base_bone
"Hips", daher wird die Höhe der Hüfte als motion_scale
verwendet.
Achse überschreiben¶
Vereinheitlicht die Knochen-Standardposen der Modelle durch Überschreiben, damit sie mit den im SkeletonProfile definierten Referenzposen übereinstimmen.
Bemerkung
Dies ist die wichtigste Option für die gemeinsame Nutzung von Animationen in Godot 4.0+, aber seien Sie sich bewusst, dass diese Option zu schrecklichen Ergebnissen führen kann, wenn die ursprüngliche, extern gesetzte Knochen-Ruhepose wichtig ist. Wenn Sie Animationen unter Beibehaltung der ursprünglichen Knochen-Ruhepose teilen möchten, sollten Sie das Realtime Retarget Module verwenden.
Korrigieren der Silhouette¶
Versucht, die Silhouette des Modells an die in SkeletonProfile definierten Referenzposen, wie z. B. T-Pose, anzupassen. Dies kann keine Silhouetten korrigieren, die zu unterschiedlich sind, und es funktioniert möglicherweise nicht für die Korrektur von Knochen-Rollen.
Mit SkeletonProfileHumanoid muss diese Option für T-Pose-Modelle nicht aktiviert werden, sollte aber für A-Pose-Modelle aktiviert werden. In diesem Fall können die Ergebnisse für den fixierten Fuß jedoch schlecht sein, abhängig von der Fersenhöhe des Modells, so dass es notwendig sein kann, die SkeletonProfile Knochen-Namen, die nicht fixiert werden sollen, in das Filter
-Array einzufügen, wie im folgenden Beispiel.
Außerdem kann es bei Modellen mit gebeugten Knien oder Füßen notwendig sein, die Höhe der scale_base_bone
anzupassen. Hierfür können Sie die Option base_height_adjustment
verwenden.