Sie können die Skelett-Bearbeitungswerkzeuge von Unreal Engine verwenden, um bestehende Skelette zu bearbeiten und zu modifizieren, um Aktionen wie das Umbenennen von Bones, die Bearbeitung der Platzierung von Bones oder das Ändern der Hierarchie der Bones durchzuführen.
Sie können außerdem neue Skelett-Assets für jedes statische Mesh erstellen, ohne eine FBX-Datei importieren zu müssen, indem Sie Werkzeuge wie Bone Creation und Skin Weight Painting verwenden. In Kombination mit Werkzeugen wie Control-Rig und Sequencer können Sie mit Unreal Engine Charaktere komplett im Editor mit Haut versehen und animieren.
Voraussetzungen
Aktivieren Sie das Plugin Skeletal Mesh Editing Tools. Navigieren Sie in der Menüleiste zu Bearbeiten > Plugins und suchen Sie im Abschnitt Animation nach Skeletal Mesh Editing Tools oder nutzen Sie die Suchleiste. Aktivieren Sie das Plugin und starten Sie den Editor neu.
Ihr Projekt enthält ein Statisches-Mesh-Objekt, für das Sie ein Skelett erstellen können, oder einen Skelett-Mesh-Charakter, dessen Skelett-Asset Sie bearbeiten möchten.
Erstellen eines Skelett-Mesh
Klicken Sie mit der rechten Maustaste auf ein beliebiges Statisches-Mesh-Objekt im Inhaltsbrowser und wählen Sie im Kontextmenü die Option In Skelett-Mesh umwandeln.
Nachdem Sie die Option „In Skelett-Mesh umwandeln“ ausgewählt haben, wird ein Menü angezeigt, aus dem Sie ein bestehendes Skelett-Asset auswählen können, das an das statische Mesh gebunden wird, oder Sie können Neu erstellen auswählen, um ein neues Skelett-Asset zu erstellen.
Bei der Erstellung eines neuen Skelett-Assets wird ein einzelner root-Bone am Ursprungspunkt des statischen Mesh erstellt.
Bearbeiten eines Skelett-Assets
Nachdem Sie ein neues Skelett-Asset erstellt oder ein bestehendes Asset ausgewählt haben, das Sie bearbeiten möchten, öffnen Sie das Skelett im Skelett-Editor. Klicken Sie nach dem Öffnen des Editors in der Werkzeugleiste auf „Bearbeitungswerkzeuge“, um mit der Bearbeitung des Skeletts zu beginnen.
Hier finden Sie eine Übersicht über die Werkzeuge und Panels des Skelett-Editors.
Werkzeuge-Panel
Skelett-Baum
Details/Asset-Details/Vorschau
Erstellen und Bearbeiten von Bones
Um Bones zu erstellen, wählen Sie den Skelett-Modus im Werkzeug-Panel.
Mit dem Werkzeug Skelett bearbeiten können Sie Bones innerhalb des Mesh im Viewport platzieren.
Aktivieren Sie den Hinzufügen-Modus (N), wählen Sie dann einen Bone im Viewport und ziehen Sie den neuen Bone auf die korrekte Länge und Position auf dem Charakter. Der erste ausgewählte Bone fungiert als Parent für den neuen Bone.
Nachdem Sie einen neuen Bone erstellt haben, wählen Sie Akzeptieren, um den neuen Bone und seine Platzierung zu bestätigen.
Verwenden Sie Achsenlänge und die Achsendicke, um zu visualisieren, in welche Richtung die neuen Bones zeigen.
Wenn dies aktiviert ist, verschiebt die Eigenschaft Children aktualisieren alle Bones, die als Parent-Klasse des ausgewählten Bone festgelegt sind, wenn er bearbeitet wird. Dies ist hilfreich, um ganze Ketten anzupassen.
Erstellen von Parent-Bones
Bones können in der Skelett-Hierarchie überordneten Elementen neu zugeordnet werden, indem Sie Bones im Skelett-Baum-Panel auswählen und den Bone zu einem neuen Parent ziehen und dort ablegen.
Umbenennen von Bones
Bones können umbenannt werden (F2), indem Sie auf den Bone rechtsklicken und die Option Bone umbenennen aus dem Kontextmenü auswählen.
Sie können Bones auch als Gruppe umbenennen, indem Sie eine Kette auswählen. Zusätzlich können Sie einen Hashtag-Operator (#) am Ende des Namens verwenden, um viele Bones mit einer aufeinanderfolgenden Zahl umzubenennen. Sie können zum Beispiel eine Kette per Mehrfachauswahl auswählen und den ersten Bone in tail_##1 umbenennen. Nach der Eingabe der Änderung würde der erste Bone zu tail_001 und die folgenden Bones zu tail_002 und tail_003.
Bearbeitungsmodus
Sie können bestehende Bones im Skelett bearbeiten, indem Sie den Bearbeitungsmodus auswählen. Nutzen Sie dazu Werkzeuge wie Bones ausrichten und Bones spiegeln.
Ausrichten von Bones
Bones müssen in die richtige Richtung zeigen, damit sie wie erwünscht rotieren. Das wird als Bone-Ausrichtung bezeichnet. Um Ihre Bones auszurichten, wählen Sie die Kette, die Sie auszurichten möchten, und vergrößern den Ausrichtung-Bereich.
Hier finden Sie eine Liste der Eigenschaften der Bone-Ausrichtung und eine Beschreibung ihrer Funktion:
| Eigenschaft | Beschreibung |
|---|---|
Primär | Legen Sie die Richtung fest, in der der Bone ausgerichtet wird. Das ist normalerweise die X-Achse. |
Sekundär | Legen Sie die Achse fest, die die Aufwärtsrichtung der Bones darstellt. |
Ebene als sekundär verwenden | Wenn diese Option aktiviert ist, erstellt diese Eigenschaft eine Ebene durch die Bones, um Ihnen die Orientierung zu erleichtern. |
Sekundäres Ziel | Legen Sie die Position der sekundären Achse fest. |
Children orientieren | Wenn diese Option aktiviert ist, richtet diese Eigenschaft alle Children unter dem ausgewählten Bone aus. |
Sie können Bones auch manuell ausrichten, indem Sie den Bone wählen und das Drehen-Gizmo nutzen (R) oder explizit einen Transformationswert auf jeder Achse angeben (X, Y und Z).
Spiegeln von Bones
Um den Skelett-Erstellungsvorgang zu beschleunigen, können Sie das Werkzeug „Bones spiegeln“ verwenden, um eine Bone-Kette zu spiegeln, um Gliedmaßen oder andere gespiegelte Bone-Strukturen zu kopieren. Zum Spiegeln einer Bone-Kette wählen Sie die Kette oder die Bones, die Sie spiegeln möchten, und verwenden die Schaltfläche Spiegeln im Bearbeitungsmodus.
Hier finden Sie eine Liste der „Bones spiegeln“-Eigenschaften und eine Beschreibung ihrer Funktion:
| Eigenschaft | Beschreibung |
|---|---|
Spiegelachse | Legen Sie die Achsenebene fest, an der gespiegelt werden soll. |
Drehung spiegeln | Wenn diese Option aktiviert ist, wird die Drehung auf der Ebene umgekehrt. Dies ist in der Regel für eine Animation erforderlich. |
Linker String | Legen Sie den Namen fest, der für die Suche auf der linken Seite verwendet wird. |
Rechts-String | Legen Sie den Namen fest, der für die Suche auf der rechten Seite verwendet wird. |
Children spiegeln | Wenn diese Option aktiviert ist, spiegeln gespiegelte Bones auch alle ihre Children innerhalb der ausgewählten Bone-Kette. |
Haut-Gewichtungen
Wenn Sie Ihrem Skelett-Mesh neue Bones hinzufügen, hilft Ihnen das Werkzeug Haut verbinden dabei, Haut-Gewichtungen für diese Bones hinzuzufügen, damit die Bones einen Einfluss auf die Geometrie des Mesh haben. Haut-Gewichtungen sind Werte, die jedem Scheitelpunkt der Skelett-Mesh-Geometrie zugewiesen werden und den Einfluss eines Bone repräsentieren, um den Scheitelpunkt zu verformen, wenn sich der Bone bewegt. Jeder Scheitelpunkt kann durch mehrere Bones im Skelett beeinflusst werden. Als Nutzer müssen Sie jedem Scheitelpunkt für jeden Bone eine Gewichtung zuweisen, um anzugeben, an welchem Bone er befestigt werden soll. Jeder Scheitelpunkt enthält einen Wert von 0,0 bis 1,0 für jeden Bone, wobei ein Wert von 0 bedeutet, dass der Scheitelpunkt vom Bone überhaupt nicht beeinflusst wird, und ein Wert von 1 bedeutet, dass der Scheitelpunkt vollständig mit dem Bone verbunden ist. Werte zwischen 0 und 1 erlauben es, dass ein Scheitelpunkt teilweise von einem Bone beeinflusst wird. Es ist nicht praktikabel, die Haut-Gewichtung für jeden Scheitelpunkt einzeln festzulegen. Daher bietet das Malen von Haut-Gewichtungskarten eine bessere Lösung, um elegante Verformungen am gesamten Charakter zu erstellen.
Haut-Gewichtungswerte für jeden Scheitelpunkt sind normalisiert, was bedeutet, dass die Gesamtgewichtung an jedem Scheitelpunkt gleich 1 sein muss. Das sorgt dafür, dass sich die Scheitelpunkte im Mesh mitbewegen, wenn das Skelett als Ganzes verschoben wird. Wenn die Gesamtgewichtung an einem Scheitelpunkt kleiner als 1 wäre, würde die Scheitelpunkt-Bewegung gegenüber der Bewegung des Skeletts verzögert erscheinen. Ist der Wert hingegen größer als 1, würde sich der Scheitelpunkt stärker als das Skelett bewegen. Aus diesem Grund erzwingt Unreal Engine einen Gesamtwert von 1, indem die Haut-Gewichtungswerte für jeden Scheitelpunkt des Mesh normalisiert werden.
Hat zum Beispiel ein Scheitelpunkt am Ellenbogen einen Wert von 0,7 am Unterarm-Bone, dann wird die verbleibende Gewichtung von 0,3 einem oder mehreren anderen Bones zugewiesen. In diesem Fall gehört sie wahrscheinlich zum Oberarm.
Wenn Sie einen Scheitelpunkt bearbeiten, normalisiert Unreal automatisch die anderen Gewichtungen, um sicherzustellen, dass der Gesamtwert immer gleich 1 ist. Dies kann dazu führen, dass Unreal Engine automatisch die Werte der Haut-Gewichtungen anpasst.
Für den Fall, dass der Scheitelpunkt nur 1 Einfluss hat, nur 1 Bone mit einer Gewichtung größer als null, können Sie die Gewichtung dieses Bone nicht sinnvoll modifizieren. Wenn Sie die Gewichtung auf etwas anderes als 1,0 setzen, wird die Normalisierungsprozedur ausgelöst, die den Wert auf 1,0 zurücksetzt, unabhängig vom Wert, den Sie zuweisen. Sobald ein Scheitelpunkt eine von Null abweichende Gewichtung hat, die mehreren Bones zugewiesen ist, legt die Normalisierungsprozedur zusätzliche Gewichtungen für andere Einflüsse fest, um die vom Nutzer festgelegte Gewichtung zu erreichen.
Sehen wir uns das vorherige Beispiel mit einem Scheitelpunkt mit einer Gewichtung von 0,7 am Unterarm und 0,3 am Oberarm an. Wenn der Nutzer versucht, die Gewichtung am Unterarm zu entfernen, indem er sie beispielsweise auf einen niedrigeren Wert von 0,6 festlegt, ändert die Normalisierungsprozedur automatisch den Oberarm-Wert von 0,3 zu 0,4, um einen Wert von 1 zu erhalten.
Es ist am besten, Scheitelpunktgewichtungen nur explizit hinzuzufügen und die Normalisierungsprozedur die Gewichtung nach Bedarf entfernen zu lassen, um den gewünschten Wert zu erreichen.
Wenn Sie möchten, dass ein Bone weniger Einfluss hat, ist es besser, einem anderen Bone zusätzliche Gewichtung zu geben. So können Sie genau bestimmen, wo der Einfluss positioniert werden soll, anstatt sich darauf zu verlassen, dass die Normalisierung sie gleichmäßig auf die anderen Einflüsse aufteilt.
Bindung von Haut-Gewichtungen
Wählen Sie zum Malen von Haut den Haut-Modus im Werkzeuge-Panel aus und wählen Sie dann das Werkzeug „Haut verbinden“ aus, um die Baseline-Einstellungen Ihrer Assets festzulegen.
Hier finden Sie eine Liste der Eigenschaften des Werkzeugs „Haut verbinden“ und eine Beschreibung ihrer Funktionalität:
| Eigenschaft | Beschreibung |
|---|---|
Binding Type | Wählen Sie die Methode aus, die für die Bindung verwendet werden soll. Sie können aus den folgenden Methoden auswählen.
|
Stiffness | Diese Option legt die Steifheit der Bindung fest. Niedrigere Werte lassen zu, dass weiter entfernte Bones zur Bindung beitragen. |
Max Influences | Legen Sie die maximale Anzahl Bones fest, die jeden Scheitelpunkt beeinflussen. |
Voxel Resolution | Wenn der Bindungstyp auf Geodesic Voxel festgelegt ist, können Sie mit dieser Eigenschaft die Auflösung des voxelisierten Rasters festlegen. Hohe Werte können sich auf die Performance auswirken, können aber beim Auflösen feiner Details helfen. |
Malen von Gewichtungen
Sobald Sie die Basis festgelegt haben, können Sie nun Haut-Maps malen, um den Bereich des Mesh festzulegen, auf den jeder Bone Einfluss hat. Um mit dem Malen von Haut-Gewichtungs-Maps zu beginnen, klicken Sie auf die Schaltfläche Gewichtungen bearbeiten im Haut-Modus.
Sie können dann auswählen, welches Werkzeug Sie verwenden möchten, um Gewichtungs-Maps auf Ihr Mesh zu malen. Es gibt zwei Gewichtungs-Bearbeitungsmodi:
Pinsel: Verwendet ein Farbenpinsel-Werkzeug, um Gewichtungen auf das gesamte Mesh zu malen. Dieser Modus wird hauptsächlich zum Malen von Gewichtungen auf großen Bereichen oder einfachen Strukturen verwendet.
Scheitelpunkte: Verwendet ein Werkzeug, mit dem Sie einzelne Scheitelpunkte auswählen können, um die Hautgewichtungen zu bearbeiten. Dieser Modus wird hauptsächlich für die detaillierte Gewichtungsbearbeitung und-maskierung verwendet.
Pinsel-Modus
Wählen Sie einen Bone aus der Hierarchie im Skelett-Baum-Panel, um mit dem Pinsel-Modus Gewichtungen zu malen. Dadurch werden die diesem Bone zugewiesenen Gewichtungen im Mesh angezeigt.
Der Pinselmodus bietet einen Satz Pinsel-Operationen, mit denen Sie Gewichtungen bearbeiten können:
| Operation | Beschreibung |
|---|---|
Hinzufügen | Dieser Modus ist der Standard-Pinsel, der Gewichtungen zu den aktuellen Gewichtungswerten hinzufügt, bis der maximale Wert von |
Ersetzen | Dieser Modus ersetzt die aktuellen Gewichtungen abzüglich dem Stärkewert. |
Multiplizieren | Dieser Modus multipliziert die aktuellen Gewichtungen mit dem Stärkewert. |
Entspannen | Dieser Modus wendet den Durchschnitt der verbundenen Scheitelpunktgewichtungen, nach Kanten, auf die aktuellen Gewichtungen an. Dieser Modus funktioniert ähnlich wie Glätten. |
Sie können zudem aus zwei Pinseltypen wählen:
| Pinsel | Beschreibung |
|---|---|
Oberfläche | Der Oberflächen-Pinsel beeinflusst Scheitelpunkte proportional zum Abstand entlang der Mesh-Oberfläche, die sogenannte geodätische Entfernung. Das ist nützlich, wenn Sie an engen Stellen mit hoher Rundung malen, etwa Lippen. Der Oberflächen-Pinsel wirkt sich nicht auf die Oberlippe aus, wenn Sie die Unterlippen malen, und umgekehrt. |
Lautstärke | Der volumetrische Pinsel beeinflusst Scheitelpunkte proportional zum geradlinigen Abstand vom Pinselmittelpunkt zum Scheitelpunkt. Dies erfolgt unabhängig von der Konnektivität oder Entfernung entlang des Mesh. |
Jeder Pinsel kann auch mit den folgenden Einstellungen modifiziert werden:
| Einstellung | Beschreibung |
|---|---|
Radius | Legen Sie die Größe des Pinsels fest. |
Stärke | Legen Sie die Pinselstärke fest, die das Ergebnis der Pinseloperationen beeinflusst. |
Falloff | Dies legt den exponentiellen Falloff des Pinsels fest oder wie der Pinsel Punkte um die Mitte des Pinsels beeinflusst. |
Nachdem Sie Ihren Pinsel und den Modus ausgewählt haben, können Sie anfangen, die Haut-Gewichtungs-Map für den gewählten Bone zu malen, indem Sie klicken und das Pinsel-Werkzeug über das Mesh im Viewport ziehen.
Mit dem Tastaturkürzel B können Sie Pinselgröße und Pinselstärke visuell bearbeiten.
Halten Sie B gedrückt und ziehen Sie nach links und rechts, um den Radius des Pinsels zu bearbeiten.
Halten Sie B gedrückt und ziehen Sie nach oben und unten, um die Stärke des Pinsels zu bearbeiten.
Wenn Sie Ihre Gewichtungsbearbeitung abgeschlossen haben, klicken Sie auf Akzeptieren, um die neuen Gewichtungen zu finalisieren und das Werkzeug zu verlassen.
Wenn Sie mit dem Ergebnis nicht zufrieden sind, können Sie die Änderungen leicht rückgängig machen, auch nachdem Sie die Gewichtungen akzeptieren haben, indem Sie Strg+Z verwenden.
Scheitelpunktmodus
Im Scheitelpunktmodus können Sie mit dem Marquee-Auswahlwerkzeug spezifische Scheitelpunkte auswählen, deren Gewichtungen Sie bearbeiten möchten.
Hier finden Sie eine Liste der Operationen im Scheitelpunktmodus und eine Beschreibung ihrer Funktionalität:
| Operation | Beschreibung |
|---|---|
Spiegelung | Spiegelt die aktuell ausgewählten Bones- und Scheitelpunktgewichtungen basierend auf der Richtung der Spiegelebene auf die andere Seite. |
Gewichtungen fluten | Fluten Sie die ausgewählten Gewichtungen mit den Pinsel-Operationen. Sie können Gewichtungen fluten, indem Sie Scheitelpunkte und Bones auswählen und die Hinzufügen-Operation nutzen. Wenn die Gewichtungen eines Bone auf |
Gewichtungen beschneiden | Gewichtungen unterhalb des vorgegebenen Schwellenwerts werden entfernt. Dies ist besonders nützlich, um die Performance zu verbessern. |
Um harte Umfänge von Gewichtungs-Maps zu glätten, wählen Sie Scheitelpunkte und einen Bone aus und verwenden die Operation Entspannen.
Spiegeln von Gewichtungen
Um den Workflow zum Malen der Haut-Gewichtungen zu beschleunigen, können Sie symmetrische Strukturen wie Gliedmaßen oder andere gespiegelte Strukturen mithilfe der Spiegel-Schaltfläche spiegeln. Um eine Struktur zu spiegeln, wählen Sie den Bone, die Bone-Kette oder die Scheitelpunkte aus, die Sie spiegeln möchten, und klicken dann auf dieSpiegeln-Schaltfläche im Werkzeuge-Panel auf dem Tab Gewichtungen bearbeiten.
Falls im Scheitelpunktmodus keine Scheitelpunkte ausgewählt sind, werden die Operationen an allen Scheitelpunkten ausgeführt, die vom ausgewählten Bone beeinflusst werden. Das kann nützlich sein, um die Gewichtungen der gesamten linken Seite eines Charakters auf die rechte Seite zu spiegeln.
Malen-Attribut-Maps
Attribut-Maps sind Gewichtungs-Maps pro Scheitelpunkt, die gemalt werden können, um als Daten an andere Stellen in Unreal Engine gesendet zu werden, etwa an das Deformer-Diagramm. Um eine neue Attribut-Map zu erstellen, auf der Sie malen können, navigieren Sie zum Tab Attribute bearbeiten , geben Sie Ihrer Map einen neuen Namen und führen Sie Add Weight Map Layer aus.
Die neue Map wird nun im Abschnitt Scheitelpunktattribute unter Attribute-Inspektor angezeigt.
Nach dem Erstellen einer neuen Attribut-Map können Sie diese anmalen. Wählen Sie dazu den Tab Karten malen im Werkzeug-Panel aus. Sie können unter Selected Attribut den Kartentyp auswählen, den Sie malen möchten, und dann anfangen, das Mesh zu malen, indem Sie in den Viewport klicken und ziehen.
Tastaturkürzel-Referenz
Hier finden Sie eine Liste der verfügbaren Tastaturkürzel für jeden der Skeletterstellungsmodi.
Gewichtungsbearbeitung
| Tastaturkürzel | Beschreibung |
|---|---|
B (gedrückt halten) (links/rechts ziehen) | Radiusgröße des Pinsels ändern |
B (gedrückt halten) (oben/unten ziehen) | Pinselstärke ändern |
Umschalttaste | Pinsel entspannen |
Strg | Aktuellen Pinsel umkehren |
Mittlerer Mausklick (auf einem Bone) | Zu malenden Einfluss visuell auswählen |
F | Kamera an ausgewählten Scheitelpunkten oder Bones ausrichten |
Bone-Bearbeitung
| Tastaturkürzel | Beschreibung |
|---|---|
N | Neuen Bone erstellen |
ESC | Bone bearbeiten |
B | Neu zuordnen |
Umschalt + P | Trennen (Parent-Zuordnung aufheben) |
Entfernen | Bone entfernen |
Python-API
Hier finden Sie die Python-API-Referenz für die Skelettbearbeitungswerkzeuge, mit denen Sie Scripts zur Automatisierung Ihres Workflows schreiben können.
Zugriff auf Bones und Gewichtungen
mesh_path = "/Game/Characters/Mannequins/Meshes/SKM_Quinn_Simple"
asset_editor = unreal.EditorAssetLibrary()
skel_mesh = asset_editor.load_asset(mesh_path)Laden der Modifikatorbibliotheken
# load the weight modifier
weight_modifier = unreal.SkinWeightModifier()
# load the skeleton modifier
skeleton_modifier = unreal.SkeletonModifier()Erstellen neuer Bones
# Create two bones, a and b
skeleton_modifier.set_skeletal_mesh(skel_mesh)
skeleton_modifier.add_bones(["a", "b"],["root", "root"], [unreal.Transform(), unreal.Transform()])Erstellen von Parent-Bones
# Parent bone b to bone a
skeleton_modifier.parent_bone("b", "a")Übernehmen von Änderungen
# Commit the changes
skeleton_modifier.commit_skeleton_to_skeletal_mesh()