Zu den Animationsfunktionen von Unity gehören Animationen mit der vollständigen Steuerung der Animationsgewichtung für Laufzeit, Ereignisaufrufe aus der Animationswiedergabe sowie eine ausgeklügelte Maschine
für Zustände, Hierarchien und Übergänge, Formen für Gesichtsanimationen und vieles mehr.
Animationen Systemübersicht
Unity verfügt über ein reichhaltiges und ausgeklügeltes Animationssystem (manchmal auch als „Mecanim“ bezeichnet).
Es bietet:
- Einfacher Workflow und einfache Einrichtung von Animationen für alle Elemente von Unity, einschließlich Objekte, Zeichen und Eigenschaften.
- Unterstützung für importierte Animationsclips und in Unity erstellte Animationen
- Humanoide Animation – Retargeting – die Fähigkeit, Animationen von einem Charaktermodell auf ein anderes anzuwenden.
- Vereinfachter Workflow zum Ausrichten von Animationsclips.
- Bequeme Vorschau von Animationsclips, Übergängen und Interaktionen zwischen diesen.
- Dies ermöglicht es mit Animatoren, unabhängig von Programmierern zu arbeiten, Prototypen zu erstellen und eine Vorschau deiner Animationen anzuzeigen, bevor der Gameplay-Code eingebunden wird.
- Verwaltung komplexer Interaktionen zwischen Animationen mit einem visuellen Programmiertool.
- Animiere verschiedene Körperteile mit unterschiedlicher Logik.
- Layering- und Maskierungsfunktionen
Typische Ansicht einer Animationsstatusmaschine im Animator-Fenster
Der Animations-Workflow
Das Animationssystem von Unity basiert auf dem Konzept von Animationsclips, die Informationen darüber enthalten, wie bestimmte Objekte ihre Position, Drehung oder andere Eigenschaften die sich im Laufe der Zeit ändern sollen. Jeder Clip kann als einzelne lineare Aufnahme betrachtet werden. Animationsclips aus externen Quellen werden von Künstlern oder Animatoren mit Tools von Drittanbietern wie Autodesk® 3ds Max® oder Autodesk® Maya® erstellt oder stammen aus Motion Capture-Studios oder anderen Quellen.
Animationsclips werden in einem strukturierten Flussdiagramm-ähnlichen System organisiert, das als Animator-Controller bezeichnet wird. Der Animator-Controller fungiert als „State Machine“, Der festhält, welcher Clip gerade abgespielt werden soll und wann sich die Animationen ändern oder miteinander verschmelzen sollen.
Ein sehr einfacher Animator-Controller enthält möglicherweise nur einen oder zwei Clips, um z. B. das Drehen und Hüpfen beim Einschalten zu steuern oder das Öffnen und Schließen einer Tür zum richtigen Zeitpunkt zu animieren. Ein weiterentwickelter Animator-Controller enthält möglicherweise Dutzende von humanoiden Animationen für alle Aktionen des Hauptcharakters und kann gleichzeitig zwischen mehreren Clips gemischt werden, um eine flüssige Bewegung zu erzielen, wenn sich der Player in der Szene bewegt.
Das Animationssystem von Unity verfügt außerdem über zahlreiche spezielle Funktionen für den Umgang mit humanoiden Charakteren, mit denen du humanoide Animationen aus beliebigen Quellen (z. B. Motion Capture, Asset Store oder einer anderen Animationsbibliothek von Drittanbietern) in dein eigenes Charaktermodell umwandeln kannst. Du kannst außerdem die Muskeldefinitionen anpassen. Diese speziellen Funktionen werden von Unitys Avatar aktiviert, in welchem humanoide Charaktere einem gemeinsamen internen Format zugeordnet werden.
Jedes dieser Teile – die Animationsclips, der Animator-Controller und der Avatar – sind in einem GameObject über die Animator-Komponente zusammengefasst. Diese Komponente hat eine Referenz im Animator-Controller und im Modell des Avatars. Dieses Modell wird mit Hilfe des Animationssystems animiert. Die Komponente enthält einen Verweis auf ein Animator Controller-Asset, das die Animation steuert.
Siehe im Glossar. Diese Komponente enthält einen Verweis auf einen Animator-Controller und (falls erforderlich) den Avatar für dieses Modell. Der Animator-Controller enthält wiederum die Verweise auf die von ihm verwendeten Animationsclips.
Animationsclips
1. Animationsclips werden von einer externen Quelle importiert oder in Unity erstellt.
2. Die Animationsclips werden in einem Animator-Controller platziert und angeordnet. Die Zustände (die Animationen oder verschachtelte Unterzustandsmaschinen darstellen können) werden als durch Linien verbundene Knoten angezeigt. Dieser Animator-Controller ist als Asset im Projektfenster vorhanden.
3. Das manipulierte Charaktermodell (in diesem Fall der Astronaut „Astrella“) verfügt über eine spezifische Konfiguration von Knochen, die dem gemeinsamen Avatar-Format von Unity zugeordnet sind. Diese Zuordnung wird als Teil des importierten Charaktermodells als Avatar-Asset gespeichert und auch im Projektfenster angezeigt.
4. Beim Animieren des Charaktermodells ist eine Animator-Komponente angehängt. Im Inspektorfenster wird dieses angezeigt. Der Animator-Komponente sind der Animator-Controller als auch der Avatar zugewiesen. Der Animator verwendet diese zusammen, um das Modell zu animieren. Die Avatar-Referenz ist nur zum Animieren eines humanoiden Charakters erforderlich. Für andere Animationstypen ist nur ein Animator-Controller erforderlich.
Animationsclips sind eines der Kernelemente des Animationssystems von Unity. Unity unterstützt den Import von Animationen aus externen Quellen und bietet die Möglichkeit, Animationsclips von Grund auf neu im Editor mit dem Animationsfenster zu erstellen.
Animation aus externen Quellen
Aus externen Quellen importierte Animationsclips können Folgendes umfassen:
- Humanoide Animationen in einem Motion-Capture-Studio aufgenommen
- Von einem Künstler in einer externen 3D-Anwendung (z. B. Autodesk® 3ds Max® oder Autodesk® Maya®) von Grund auf neu erstellte Animationen
- Animationssets aus Bibliotheken von Drittanbietern (z. B. aus dem Asset Store von Unity)
- Mehrere Clips werden aus einer einzelnen importierten Timeline ausgeschnitten und geschnitten.
Animationen mit Unity erstellen und bearbeiten
Im Animationsfenster von Unity kannst du auch einen Animationsclips erstellen und bearbeiten. Diese Clips kannst du animieren:
- Die Position, Drehung und Skalierung von GameObjects
- Komponenteneigenschaften wie die Materialfarbe, die Intensität eines Lichts, die Lautstärke eines Tons
- Eigenschaften in deinen eigenen Skripten
einschließlich float-, integer-, enum-, vector- und booleschen Variablen - Das Timing des Aufrufs funktioniert in deinem eigenen Skripten
Animation aus externen Quellen
Animationen aus externen Quellen werden wie normale 3D-Dateien in Unity importiert. Diese Dateien können Animationsdaten in Form einer linearen Aufzeichnung der Bewegungen von Objekten in der Datei enthalten.
In einigen Situationen kann sich das zu animierende Objekt (z. B. ein Charakter) und die dazugehörigen Animationen in derselben Datei befinden. In anderen Fällen können die Animationen in einer separaten Datei zu dem zu animierenden Modell vorhanden sein.
Es kann sein, dass Animationen für ein bestimmtes Modell spezifisch sind und nicht für andere Modelle wiederverwendet werden können. Ein riesiger Octopus-Endgegner in deinem Spiel verfügt beispielsweise über eine einzigartige Anordnung von Gliedmaßen und Knochen sowie eine eigene Reihe von Animationen.
In anderen Situationen kann es sein, dass du über eine Bibliothek mit Animationen verfügst, die für verschiedene Modelle in Ihrer Szene verwendet werden sollen. Beispielsweise können verschiedene humanoide Charaktere die gleichen Laufanimationen verwenden. In diesen Situationen ist es üblich, dass deine Animationsdateien ein einfaches Platzhaltermodell enthalten, um sie in der Vorschau anzuzeigen. Alternativ können Animationsdateien auch dann verwendet werden, wenn sie überhaupt keine Geometrie aufweisen, sondern nur die Animationsdaten.
Beim Importieren mehrerer Animationen können die Animationen jeweils als separate Dateien in Ihrem Projektordner vorhanden sein, oder du kannst mehrere Animationsclips extrahieren. Aus einer einzelnen FBX-Datei erhältst du deine Animationen, wenn du sie als Take von Motion Builder oder mit einem Plugin / Skript für Autodesk® Maya®, Autodesk® 3ds Max® oder andere 3D-Pakete exportierst. Möglicherweise möchten Sie dies tun, wenn deine Datei mehrere separate Animationen enthält, die auf einer einzigen Zeitachse angeordnet sind. Eine mit langen Bewegungen aufgenommene Timeline kann beispielsweise die Animation für einige unterschiedliche Sprungbewegungen enthalten. Du möchtest möglicherweise bestimmte Abschnitte davon ausschneiden, um sie als einzelne Clips zu verwenden und den Rest zu verwerfen. Unity bietet Werkzeuge zum Schneiden von Animationen, um dies zu erreichen, musst du alle Animationen in einer Zeitleiste importieren, indem du den Frame-Bereich für jeden Clip auswählst.
Animationsdateien importieren
Bevor du eine Animation in Unity verwendem kannst, muss sie zuerst in dein Projekt importiert werden. Unity kann native Autodesk® Maya®-Dateien (.mb oder .ma), Autodesk® 3ds Max®-Dateien (.max), Blender ™ -Dateien (.blend) und Cinema 4D-Dateien (.c4d) sowie generische FBX-Dateien importieren, die aus den meisten Animationspaketen exportiert werden können. Beachte, dass beispielsweise für den Import von .blend-Dateien eine lokale Installation von Blender ™ erforderlich ist.
Anzeigen und Kopieren von Daten aus importierten Animationsdateien
Du kannst von den Animationen die Keyframes anzeigen und Kurven importierter Animationsclips im Animationsfenster. Wenn diese importierten Clips viele Bones mit vielen Keyframes enthalten, kann die Informationsmenge manchmal äußerst komplex sein.
Um die Ansicht zu vereinfachen, wähle einen spezifischen Knochen aus, den du untersuchen möchtest. Das Animationsfenster zeigt dann nur die Keyframes oder Kurven für diese Bones an.
Beschränke die Ansicht nur auf die ausgewählten Bones
Beim Anzeigen importierter Animations-Keyframes bietet das Animationsfenster eine schreibgeschützte Ansicht der Animationsdaten. Um diese Daten zu bearbeiten, erstelle einen neuen leeren Animationsclip in Unity (siehe Erstellen eines neuen Animationsclips). Wähle anschließend die Animationsdaten aus dem importierten Animationsclip aus, kopiere sie und füge sie in dem neuen, beschreibbaren Animationsclip ein.
Auswählen von Keyframes aus einem importierten Clip.
Originally posted 2020-02-12 17:54:34.