Work in progress
The content of this page was not yet updated for Godot
4.2
and may be outdated. If you know how to improve this page or you can confirm
that it's up to date, feel free to open a pull request.
2D-Skelette¶
Einführung¶
Bei der Arbeit mit 3D sind Skelett-Verformungen für Charaktere und Kreaturen üblich, und die meisten 3D-Modellierungsanwendungen unterstützen sie. Für 2D wird diese Funktion nicht so häufig verwendet, daher ist es schwierig, Mainstream-Software zu finden, die darauf ausgerichtet ist.
Eine Möglichkeit besteht darin, Animationen in Software von Drittanbietern wie Spine oder Dragonbones zu erstellen. Ab Godot 3.1 wird diese Funktion jedoch direkt unterstützt.
Warum sollten Sie Skelett-Animationen direkt in Godot erstellen wollen? Die Antwort ist, dass es viele Vorteile hat:
Bessere Integration in die Engine, damit weniger Aufwand beim Importieren und Bearbeiten durch ein externes Tool entsteht.
Möglichkeit zur Steuerung von Partikelsystemen, Shadern, Sounds, Aufrufskripten, Farben, Transparenz usw. in Animationen.
Das in Godot eingebaute Skelettsystem ist sehr effizient und auf Leistung ausgelegt.
In der folgenden Anleitung werden dann die 2D-Skelettverformungen erklärt.
Einrichtung¶
Siehe auch
Bevor Sie beginnen, empfehlen wir Ihnen, das Cutout-Animation-Tutorial durchzuarbeiten, um ein allgemeines Verständnis für das Animieren in Godot zu erlangen.
In diesem Tutorial werden wir ein einziges Bild verwenden, um unsere Figur zu erstellen. Laden Sie es von gBot_pieces.png
herunter oder speichern Sie das Bild unten.
Es ist auch ratsam, das endgültige Charakterbild herunterzuladen gBot_complete.png
, um eine gute Referenz für das Zusammensetzen der verschiedenen Teile zu haben.
Erstellen der Polygone¶
Erstellen Sie eine neue Szene für Ihr Modell (wenn es sich um eine animierte Figur handelt, sollten Sie einen CharacterBody2D
verwenden). Der Einfachheit halber wird ein leerer 2D Node als Root für die Polygone erstellt.
Beginnen Sie mit einem Polygon2D
-Node. Es ist nicht nötig, ihn irgendwo in der Szene zu platzieren, also erstellen Sie ihn einfach so:
Wählen Sie ihn aus und weisen Sie die Textur den zuvor heruntergeladenen Charakterteilen zu:
Das direkte Zeichnen eines Polygons wird nicht empfohlen. Öffnen Sie stattdessen das Dialogfeld "UV" für das Polygon:
Gehen Sie in den Punkte-Modus, wählen Sie den Bleistift und zeichnen Sie ein Polygon um das gewünschte Teil:
Duplizieren Sie den Polygon-Node und geben Sie ihm einen passenden Namen. Rufen Sie dann erneut den "UV"-Dialog auf und ersetzen Sie das alte Polygon durch ein anderes in dem neuen gewünschten Teil.
Wenn Sie Nodes duplizieren und das nächste Teil eine ähnliche Form hat, können Sie das vorherige Polygon bearbeiten, anstatt ein neues zu zeichnen.
Vergessen Sie nicht, nach dem Verschieben des Polygons die UV zu aktualisieren, indem Sie im 2D-UV-Editor für Polygone Bearbeiten > Polygon in UV kopieren wählen.
Machen Sie so weiter, bis Sie alle Teile zugeordnet haben.
Sie werden feststellen, dass die Teile für Nodes im gleichen Layout erscheinen wie in der Originaltextur. Das liegt daran, dass beim Zeichnen eines Polygons standardmäßig die UV und die Punkte gleich sind.
Ordnen Sie die Teile neu an und bauen Sie die Figur. Das sollte ziemlich schnell gehen. Es besteht keine Notwendigkeit, die Rotationspunkte zu ändern, also machen Sie sich nicht die Mühe, sicherzustellen, dass die Rotationspunkte für jedes Teil richtig sind; Sie können sie vorerst beibehalten.
Ach ja, die visuelle Reihenfolge der Teile ist noch nicht korrekt, da einige die falschen Teile verdecken. Ordnen Sie die Reihenfolge der Nodes neu an, um dies zu beheben:
Und da haben Sie es! Es war auf jeden Fall viel einfacher als in der Cutout-Anleitung.
Erstellen des Skeletts¶
Erstellen Sie einen Skeleton2D
-Node als Child des Root-Nodes. Dieser wird die Basis unseres Skeletts sein:
Erstellen Sie einen Bone2D
-Node als Child des Skeletts. Setzen Sie ihn auf die Hüfte (normalerweise beginnen Skelette hier). Der Knochen wird nach rechts zeigen, aber das können Sie vorerst ignorieren.
Erstellen Sie weiterhin Knochen in der Hierarchie und benennen Sie sie entsprechend.
Am Ende dieser Kette befindet sich ein Kiefer-Node. Dieser ist wiederum sehr kurz und zeigt nach rechts. Das ist normal für Knochen ohne Child-Nodes. Die Länge der Kiefer-Knochen kann mit einer Property im Inspektor geändert werden:
In diesem Fall brauchen wir den Knochen nicht zu rotieren (zufälligerweise zeigt der Kiefer genau in das Sprite), aber falls Sie es benötigen, können Sie es gerne tun. Auch dies ist nur wirklich nötig für End-Knochen, da Nodes mit Child-Nodes in der Regel keine Länge oder eine bestimmte Rotation benötigen.
Machen Sie weiter und bauen Sie das ganze Skelett auf:
Sie werden feststellen, dass alle Knochen eine lästige Warnung über eine fehlende Standardpose ausgeben. Das bedeutet, dass es an der Zeit ist, eine zu erstellen. Gehen Sie zum Node Skelett und erstellen Sie eine Standardpose. Diese Pose ist die Default-Pose, zu der Sie jederzeit zurückkehren können (was für die Animation sehr praktisch ist):
Die Warnungen werden verschwinden. Wenn Sie das Skelett ändern (Knochen hinzufügen/entfernen), müssen Sie die Standardpose erneut einstellen.
Deformieren der Polygone¶
Wählen Sie die zuvor erstellten Polygone aus und weisen Sie den Node des Skeletts ihrer Property Skelett
zu. Dadurch wird sichergestellt, dass sie schließlich von ihm verformt werden können.
Klicken Sie auf die oben hervorgehobene Property und wählen Sie den Skelett-Node aus:
Öffnen Sie erneut den UV-Editor für das Polygon und gehen Sie zum Abschnitt Knochen.
Sie können noch keine Gewichte malen. Hierfür müssen Sie die Liste der Knochen aus dem Skelett mit dem Polygon synchronisieren. Dieser Schritt wird nur einmal und manuell durchgeführt (es sei denn, Sie ändern das Skelett durch Hinzufügen/Entfernen/Umbenennen von Bones). Er stellt sicher, dass Ihre Rigging-Informationen im Polygon erhalten bleiben, selbst wenn ein Node des Skeletts versehentlich verloren geht oder das Skelett verändert wird. Drücken Sie die Schaltfläche " Knochen mit Polygon synchronisieren", um die Liste zu synchronisieren.
Die Liste der Knochen wird automatisch angezeigt. Standardmäßig ist Ihrem Polygon keine Gewichtung zugewiesen. Wählen Sie die Knochen aus, denen Sie eine Gewichtung zuweisen möchten, und malen Sie sie:
Punkten in Weiß wird ein volles Gewicht zugewiesen, während Punkte in Schwarz nicht von dem Knochen beeinflusst werden. Wenn ein und derselbe Punkt für mehrere Knochen weiß gemalt wird, wird der Einfluss auf sie verteilt (daher ist es normalerweise nicht notwendig, Zwischenstufen zu verwenden, es sei denn, Sie möchten den Biegeeffekt verbessern).
Nach dem Malen der Gewichte hat das Animieren der Knochen (NICHT der Polygone!) den gewünschten Effekt, dass die Polygone entsprechend modifiziert und gebogen werden. Da Sie bei diesem Ansatz nur die Knochen animieren müssen, wird die Arbeit viel einfacher!
Aber es ist noch nicht alles in Butter. Der Versuch, Knochen zu animieren, die das Polygon biegen, führt oft zu unerwarteten Ergebnissen:
Dies geschieht, weil Godot beim Zeichnen des Polygons interne Dreiecke erzeugt, um die Punkte zu verbinden. Sie biegen sich nicht immer so, wie man es erwarten würde. Um dieses Problem zu lösen, müssen Sie Hints in der Geometrie festlegen, um klarzustellen, wie Sie die Verformung erwarten.
Interne Vertices¶
Öffnen Sie erneut das UV-Menü für jeden Knochen und gehen Sie zum Abschnitt Punkte. Fügen Sie einige interne Vertices in den Bereichen hinzu, in denen Sie erwarten, dass sich die Geometrie biegt:
Gehen Sie nun in den Bereich Polygon und zeichnen Sie Ihre eigenen Polygone mit mehr Details nach. Stellen Sie sich vor, dass Sie beim Biegen Ihrer Polygone sicherstellen müssen, dass sie sich so wenig wie möglich verformen, also experimentieren Sie ein wenig, um die richtige Einstellung zu finden.
Sobald Sie mit dem Zeichnen beginnen, verschwindet das ursprüngliche Polygon und Sie können Ihr eigenes Polygon erstellen:
Dieser Detaillierungsgrad ist in der Regel in Ordnung, auch wenn Sie vielleicht eine feinere Kontrolle über die Position der Dreiecke haben möchten. Experimentieren Sie selbst, bis Sie die gewünschten Ergebnisse erzielen.
Hinweis: Vergessen Sie nicht, dass Ihre neu hinzugefügten internen Vertices auch gewichtet werden müssen! Gehen Sie erneut zum Abschnitt Knochen, um sie den richtigen Knochen zuzuweisen.
Sobald Sie fertig sind, erhalten Sie viel bessere Ergebnisse: