Work in progress
The content of this page was not yet updated for Godot
4.4
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.
One option is to create animations in third-party software such as Spine or Dragonbones. This functionality is also supported built-in.
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 Performance 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 Warnung über eine fehlende Standardpose ausgeben. Eine Standardpose ist die Default-Pose für ein Skelett, zu der Sie jederzeit zurückkehren können (was sehr praktisch für Animationen ist). Um eine Pose festzulegen, klicken Sie auf den Skelett-Node im Szenenbaum, dann auf den Skeleton2D-Button in der Toolbar und wählen Standardpose überschreiben aus dem Dropdown-Menü.
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 Knochen). 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 den Button " 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: