Ein Skelett ist eine Hierarchie, die dazu verwendet wird, Bones (manchmal auch Gelenke genannt) in einem Skeletal Mesh zu definieren. In gewisser Weise ahmen diese Knochen aufgrund ihrer Position und Kontrolle darüber, wie sich Charaktere verformen, ein echtes biologisches Skelett nach.
In Unreal Engine werden Skelette verwendet, um Animationsdaten, die gesamte Skeletthierarchie und Animation Sequences zu speichern und zuzuordnen. Skelett-Assets können auch über eine Vielzahl von Methoden geteilt werden, wodurch zusätzliche Animationen und Daten zwischen verschiedenen Skeletten geteilt werden können.
Dieses Dokument bietet einen Überblick über die Erstellung und Verwendung von Skeletten.
Voraussetzungen
Ihr Projekt enthält einen Skeletal Mesh Actor, oder Sie haben einen geskinnten FBX-Charakter, den Sie in Unreal Engine importieren können.
Skelette erstellen
Der primäre Weg, ein Skelett zu erstellen, ist der import eines geskinnten FBX-Charakters, der dann in ein Skelett-Mesh in der Unreal Engine konvertiert wird. Beim Importieren eines Skeletal Mesh im Fenster FBX Import Options wird das Feld Skelett automatisch leer gelassen. Erstelle ein Skelett-Asset basierend auf dem geskinnten Charakter, der importiert wird.
Nachdem Sie Ihren Charakter importiert haben, wird das Skelett-Asset zusammen mit anderen Skelettmesh-Assets erstellt.
Sie können auch eine Kopie eines Skeletts aus einem beliebigen Skelettmesh erstellen, indem Sie im Inhaltsbrowser mit der rechten Maustause darauf klicken und Skelett > Skelett erstellen auswählen. Dadurch wird ein neues Skelett erstellt, das einem vorhandenen Mesh zugeordnet ist. Wenn diesem Mesh ein anderes Skelett zugeordnet war, wird es erneut mit dem neuen Skelett verknüpft, und alle Animationen werden dann mit dem neuen Skelett verknüpft.
Doppelklicke auf das Skelett-Asset, um den Skeleton Editor zu öffnen.
Skelettbaum-Informationen
Bones und andere im Skeleton Tree angezeigte Objekte können in Abhängigkeit von verschiedenen Faktoren anders aussehen.
| Icon | Beschreibung |
|---|---|
Ein normaler Bone, der Scheitelpunkte auf dem Skelett-Mesh beeinflusst. | |
Ein Bone im aktuellen Skelett, der keine Scheitelpunkte auf dem Skelett-Mesh beeinflusst. Diese Bones werden normalerweise als Hilfsmittel verwendet, z. B. zum Anbringen von Waffen oder Requisiten, während sie dennoch als Bone animierbar sind. | |
Ein Socket, der ein statischer Punkt ist, der als Versatz-Befestigungspunkt für Bones dient. | |
Ein Virtual Bone, der ein Bone ist, der den Transformationen eines anderen Bones folgt, aber in einem anderen Bone-Raum. Diese sind nützlich, um unerwünschte Gelenkbewegungen zu sperren, und werden im Zusammenspiel mit IK verwendet. | |
Ein Bone, der im Skelett vorhanden ist, aber nicht vom aktuellen Skelett-Mesh verwendet wird. Dies kann passieren, wenn Sie merged Skeletts haben oder eine Vorschau verschiedener LODs auf diesem Skelett anzeigen, die bestimmte Bones nicht verwenden. |
Animationsdatenspeicherung
Neben der Steuerung von Animationen speichern Skeletons in Unreal Engine auch animationsspezifische Daten. Wenn Daten aus diesen Quellen erstellt werden, z. B. beim Erstellen einer Animation Notify in einer Animationssequenz, werden sie dem Skelett als gemeinsam genutzte Daten hinzugefügt.
Skelette speichern die folgenden Arten von Animationsdaten:
Diese Daten können in speziellen Tool-Panels angezeigt werden, indem Sie im Skelett-Editor-Menü auf Fenster klicken und dann eines oder mehrere dieser Panels aktivieren.
Sharing Skelette
Ein wichtiges Merkmal von Skeleton Assets ist, dass ein einzelnes Skeleton Asset von mehreren Skeletal Meshes verwendet werden kann, solange die Skeletal Meshes dieselbe allgemeine Rig-Hierarchie verwenden. Das bedeutet, dass die Namen und die hierarchische Reihenfolge Ihrer Bones konsistent sein müssen, damit das Teilen richtig funktioniert.
Stellen Sie sich beispielsweise ein Glied mit drei Knochen in einem Skelettnetz vor. Die Bones heißen 1, 2 und 3:
Wenn Sie dieses Skelett mit einem anderen Skelettmesh teilen möchten, müssen Sie diese Knochen in derselben Reihenfolge und mit denselben Namen aufbewahren. Das zweite Skelettmesh kann jedoch Knochen enthalten, die Ergänzungen oder peripher zur Hierarchie sind. Jedes Mal, wenn Animationsdaten für einen Knochen empfangen werden, der nicht im Skelett-Mesh enthalten ist, werden diese Animationsdaten ignoriert.
In diesem Fall könnte Ihre neue Hierarchie wie im Bild unten aussehen. Hier hat das zweite Skelett-Mesh zusätzliche Knochen, während es immer noch die ursprüngliche Hierarchie des ersten Skelett-Mesh beibehält und nicht stört.
Damit jedoch beide Skelett-Meshes dasselbe Skelett-Asset verwenden, können Sie die Hierarchiereihenfolge nicht ändern oder die Bones umbenennen. Wenn ein zweites Skelett-Mesh eine andere Knochenhierarchie und Benennungsstruktur verwendet, müssen Sie ein neues Skelett-Asset erstellen.
Wenn Sie einen Knochen in die Hierarchie einfügen, ohne die Reihenfolge zu ändern, können Sie erfolgreich teilen. In den meisten Fällen kann der zusätzliche Knochen jedoch unbeabsichtigte Transformationsversätze in Ihrem Skelett verursachen. Es wird empfohlen, dies nach Möglichkeit zu vermeiden.
Unter Berücksichtigung dieser Freigaberegeln gibt es mehrere Möglichkeiten, wie Sie Skeletons zwischen Skeletal Meshes in Unreal Engine teilen können. Diese sind unten aufgeführt.
Zusammenführen während des Imports
Die erste Methode zum Freigeben von Skeletten erfolgt während des FBX-Importvorgangs. Wenn Sie Ihr neues Skeletal Mesh importieren (mit zusätzlichen und peripheren Bones, die den obigen Regeln entsprechen), können Sie ein Skeleton aus einem Skeletal Mesh auswählen, das bereits in Ihrem Projekt vorhanden ist. Unreal Engine führt dann die Skelette zusammen und fügt alle neuen Bones in die Hierarchie ein. Darüber hinaus werden die Proportionen Ihres Skeletts durch das ursprüngliche Skelettnetz definiert, aus dem es erstellt wurde.
Wenn Sie ein Skelett importieren, das sich stark von dem Skelett unterscheidet, mit dem Sie zusammenführen möchten, und gegen alle Freigaberegeln verstößt, wird eine Fehlermeldung angezeigt:
In diesem Fall müssen Sie möglicherweise ein neues Skelett-Asset für das Skelettmesh erstellen, das Sie importieren, anstatt es mit einem vorhandenen zusammenzuführen.
Wenn Sie Ihr zusammengeführtes Skelett anzeigen, sehen Sie diese zusätzlichen Bones in Ihrer Hierarchie aufgelistet, aber sie sind nur für das Skelettmesh sichtbar und aktiv, für das sie bestimmt sind.
Kompatible Skelette
Darüber hinaus können Skelette Animations-Assets zerstörungsfrei teilen, indem sie andere Skelette als kompatibel definieren. Kompatible Skelette können Animation Sequences, Montages, Animation Blueprints und mehr teilen.
Um ein anderes Skelett als kompatibel für einen Charakter zu definieren, öffnen Sie das Skelett-Asset des Charakters im Skeleton Editor und öffnen Sie dann den Retarget Manager, indem Sie auf die Schaltfläche in der Symbolleiste klicken.
Suchen Sie im Retarget-Manager den Abschnitt Kompatible Skeletts verwalten des Bereichs Retarget-Quellen und klicken Sie auf Skelett hinzufügen, um über das Kontextmenü ein weiteres Skelett-Asset in Ihrem Projekt auszuwählen.
Jetzt können Animationen aus dem Skelett geteilt werden, das zur Liste Kompatible Quellen verwalten hinzugefügt wurde.
Die Skelett-Kompatibilität ist bidirektional. Wenn Sie Skelett 1 so einstellen, dass es mit Skelett 2 kompatibel ist, bedeutet das auch, dass Skelett 2 jetzt mit Skelett 1 kompatibel ist.
Das Erstellen und Verwalten eines Systems kompatibler Skelette kann eine effektive Möglichkeit sein, die Anzahl der Animationselemente zu optimieren, die Ihr Projekt zum Animieren mehrerer Charaktere benötigt. Um jedoch das System der kompatiblen Skelette zu verwenden, müssen alle Charaktere nahezu identische Skeletthierarchiestrukturen und Namenskonventionen haben. Darüber hinaus müssen alle Zeichen ähnliche Mesh-Proportionen haben, um optimale Ergebnisse zu erzielen.
Informationen zum Teilen von Animationen für Charaktere mit derselben Skelettstruktur, aber unterschiedlichen Proportionen finden Sie in der Dokumentation Animation Retargeting.
Um Animationssequenzen neu zu erstellen, damit sie über Charaktere mit radikal unterschiedlichen Skelettstrukturen hinweg funktionieren, sehen Sie die Dokumentation IK Rig Retargeting.
Skelettfunktionen
Skelette in Unreal Engine unterstützen eine Vielzahl von Funktionen zum Anhängen, Mischen und andere Einstellungen. Weitere Informationen zu diesen Funktionen finden Sie auf den folgenden Seiten:
Animation Retargeting
Describes how retargeted animations can be used with multiple Skeletal Meshes, allowing you to share animations.
Blend Masks and Blend Profiles
Exclude Bones or change their individual blend speed by using Blend Masks and Blend Profiles.
Skeletal Mesh LODs
Generate and modify LODs for Skeletal Meshes using the Skeletal Mesh Reduction Tool
Skelett-Bearbeitung
Erstellen und bearbeiten Sie Skelett-Assets mit den Skelett-Bearbeitungswerkzeugen.
Skeletal Mesh Sockets
Create attachment points within your Skeletal Mesh using Sockets.
Virtual Bones
Resolve layered animation problems by using Virtual Bones with IK.