Unity erläuterte am 26. Mai 2014 die Funktionsweise von Mecanim Humanoids. Die Lösung beschreibt humanoide Figuren nicht über ein festes Skelett, sondern über einen standardisierten Humanoid Rig und den darauf aufbauenden Muscle Space. Dadurch lassen sich Animationen zwischen unterschiedlichen Charakter-Rigs übertragen.
Der technische Beitrag richtet sich an Produktionsabläufe mit 3D-Figuren, Motion Capture und wiederverwendbaren Animationsdaten. Unity nennt bis zu 47 normalisierte Muskelwerte, die eine humanoide Pose vollständig beschreiben sollen. Diese Werte bleiben von der ursprünglichen Skelettstruktur getrennt.
Muscle Space trennt Pose und Skelett
Der Muscle Space verwendet den Körperschwerpunkt, eine gemittelte Körperausrichtung und die Größe der Figur als Bezugspunkte. So kann dieselbe Pose auf verschiedene Humanoid Rigs angewendet werden. Eine zusätzliche IK-Stufe korrigiert bei Bedarf die Position von Händen und Füßen. Unity beschreibt auch einen Solver für Twist, LookAt sowie Squash and Stretch.
Die Definition des Rigs folgt festen Anforderungen. Dazu gehören die Hierarchie von Hüfte, Beinen und Füßen, eine standardisierte Wirbelsäule sowie die T-Stance als Referenzpose. Brust, Hals, Schultern, Zehen, Augen und Finger können je nach Figur optional angelegt werden. Die Ausrichtung des Körpers und die Position des Schwerpunkts liefern dabei stabile Referenzen für dynamische Bewegungen.
Retargeting läuft in zwei Phasen
Beim Import wandelt Mecanim die Animation eines Standardskeletts zunächst in einen Muscle Clip um. Diese Phase bezeichnet Unity als RetargetFrom. Erst zur Laufzeit wird der Clip mit RetargetTo auf das Ziel-Skelett angewendet. Ein Teil der Berechnung bleibt damit im Editor, während die Laufzeit nur den zweiten Abschnitt ausführt.
Für möglichst verlustfreies Retargeting müssen Rig und Animationsdatei dasselbe Skelett mit identischen lokalen Positionen und Ausrichtungen verwenden. Zwischenknochen dürfen keine eigenen Animationsdaten enthalten. Übersetzungsanimationen sind außerhalb der Hüfte nicht vorgesehen. Die technischen Details ergänzen die bereits behandelte Unity-Analyse zum Occlusion Culling um einen weiteren Blick auf die Engine-Pipeline.
