Sie haben wahrscheinlich von Inverse Kinematics gehört. IK ist ein beliebtes Tool in Unity und Computergrafik. Wenn Sie jedoch zum ersten Mal versuchen, ein Inverse Kinematics-System zu erstellen oder zu verwenden, möchten Sie möglicherweise weitere Details. Ich werde erklären, was IK ist, das Vokabular definieren und die Verwendung überprüfen. Was ist das notwendige Vokabular, um IK zu verstehen?
Bevor wir uns mit IK befassen, müssen wir einige IK-bezogene Vokabeln definieren. IK ist eine Methode, die auf einen Gelenkkörper angewendet wird. Was ist ein Gelenkkörper?
Gelenkkörper
Ein artikulierter Körper kann die meisten animierten Körper wie Menschen und Tiere mit Skeletten darstellen. Einfach ausgedrückt ist ein Gelenkkörper ein Baum miteinander verbundener Ketten. Die verbundenen Ketten bestehen aus Gelenken und Gliedern, wobei ein Glied ein starrer Zylinder ist.
Arten von Gelenken
Für Gelenke gibt es zwei Arten. Die erste Art von Gelenk ist ein Drehgelenk. Es ist mit einer Verbindung verbunden, die sich um sie dreht.
Ein Drehgelenk ähnelt dem Mittelstift einer Uhr - mit einem Uhrzeiger als Bindeglied.
Eine prismatische Verbindung ist eine Verbindung, bei der die verbundene Verbindung von der Verbindung verschoben wird, um die Verbindung zu verlängern / zu verkürzen.
Ein prismatisches Gelenk ähnelt dem Ausfahren / Einfahren der Länge des einziehbaren Griffs an Ihrem Gepäck. Wenn Sie genau hinschauen, hat ein einziehbarer Gepäckgriff 4 prismatische Gelenke. 2 prismatische Gelenke auf halber Höhe des Griffs und weitere 2 prismatische Gelenke auf halber Höhe des Griffs oben am Gepäck.
Wenn Sie durch prismatische Gelenke verwirrt sind, machen Sie sich keine Sorgen. Sie werden in der inversen Kinematik nicht so oft verwendet, und wie Sie vielleicht sehen können, haben keine Menschen prismatische Gelenke - nur Drehgelenke.
Hierarchische Struktur
Ein Gelenkkörper hat ein Wurzelgelenk. Das Wurzelgelenk ist die Basis der Struktur. Das Wurzelgelenk eines Humanoiden ist normalerweise das Zentrum der Hüften. Der Gelenkkörper besteht aus einem Baum von Gelenken und Gliedern, beginnend am Wurzelgelenk. Ein neues Gelenk ähnelt einem neuen Ast an einem Baum. Eine innere Verbindung / Verbindung ist eine Verbindung / Verbindung, die näher an der Wurzelverbindung innerhalb der Baumhierarchie des Gelenkkörpers liegt, da sie sich auf eine bestimmte Verbindung / Verbindung bezieht. Ein Außenborder / Gelenk ist ein Glied / Gelenk, das innerhalb der Baumhierarchie des Gelenkkörpers weiter vom Wurzelgelenk entfernt ist.
Endeffektor
Ein Endeffektor ist eine Position an der äußersten Außenbordposition der äußersten Außenbordverbindung. Es ist das freie Ende der Kette alternierender Gelenke und Glieder. Der Endeffektor ist kein Gelenk. Der Endeffektor ist lediglich die Position am Ende eines Gelenkkörpers. Ein Gelenkkörper kann mehrere Endeffektoren haben, genau wie ein Binärbaum mehrere Blätter haben kann.
End Effector ist hier als grüner Kreis dargestellt.
Artikulationen und Posen
Eine Artikulation ist eine Drehung / Translation eines Gelenks, das eine verbundene Verbindung bewegt. Andererseits ist eine Pose ein Satz von Gelenkartikulationen, die zur Positionierung des Gelenkkörpers führen. Mit anderen Worten ist die Pose ein Vektorwert anstelle eines Skalarwerts.
Was ist Vorwärtskinematik?
Bevor wir uns mit Inverse Kinematics befassen können, müssen wir herausfinden, was Forward Kinematics ist. Die Funktion / der Algorithmus für die Vorwärtskinematik nimmt eine Pose als Eingabe ein und berechnet die Position des Endeffektors als Ausgabe. Die Vorwärtskinematik ist die inverse Funktion der inversen Kinematik. Bei der Vorwärtskinematik müssen Sie die gesamte Pose eines Gelenkkörpers definieren, um die Funktion / den Algorithmus mit der Pose-Eingabe zu versorgen. Dies bedeutet, dass Sie die Artikulation jedes Gelenks im Gelenkkörper definieren müssen. Dies kann in Ordnung sein, wenn Sie eine geringe Anzahl von Gelenken haben, aber bei einer hohen Anzahl von Gelenken ist dies in der Regel mühsam.
Was ist inverse Kinematik?
Stellen Sie sich nun vor, Sie möchten, dass der Endeffektor Ihres Gelenkkörpers eine bestimmte Zielposition erreicht. Dies bedeutet, dass Sie die Endeffektorposition kennen, auf die Sie zielen möchten, aber nicht wissen, wie die Haltung des Gelenkkörpers sein muss, damit der Endeffektor diese Zielposition erreicht. Hier strahlt Inverse Kinematics!
Inverse Kinematik ist die inverse Funktion / der inverse Algorithmus der Vorwärtskinematik. Die Funktion / der Algorithmus für die Vorwärtskinematik verwendet eine Zielposition als Eingabe und berechnet die Pose, die der Endeffektor benötigt, um die Zielposition zu erreichen - die Pose ist die Ausgabe.
Wie Sie sehen können, werden Ein- und Ausgang zwischen FK und IK umgeschaltet. Mit Inverse Kinematics müssen Sie nicht die gesamte Pose eines Gelenkkörpers definieren - dies wird vom IK-Algorithmus für Sie berechnet. Bei IK müssen Sie nur eine Position als Eingabe definieren.
Inverse Kinematics erledigt die anspruchsvolle Rechenarbeit zur Berechnung der Pose. Im Vorher-Zustand gibt es einen Gelenkkörper mit einer bekannten Pose. Es definiert eine Zielposition, die der Endeffektor erreichen möchte. Sobald der IK-Algorithmus auf den Gelenkkörper angewendet wurde, haben wir den Nachzustand erreicht. Der After-Status zeigt an, dass eine neue Pose berechnet wurde, sodass sich der Endeffektor jetzt an der Zielposition befindet.
Was sind die Verwendungszwecke von IK?
Zu diesem Zeitpunkt wissen wir, dass IK auf einen Gelenkkörper angewendet wird, wir wissen, woraus ein Gelenkkörper besteht, und wir kennen den Unterschied zwischen IK und FK. Wir haben bisher einen guten Überblick über IK, aber lassen Sie uns dies auch mit einigen guten Anwendungsfällen von IK abrunden. Wie wir gesehen haben, kann IK für einen humanoiden Arm verwendet werden, um nach einem Objekt / Ziel zu greifen. IK kann auch zum Treten des Fußes verwendet werden, sodass wir dem Fuß mitteilen, wohin er treten soll, und der IK herausfindet, wie die Beingelenke konfiguriert werden. IK wird normalerweise nicht als Animation selbst verwendet (nach einem Objekt greifen), sondern eher als Animationswerkzeug. Wenn Sie also einen Laufzyklus implementieren, können Sie einige der Schlüsselbilder mit dem IK-Tool positionieren.
Ein weiterer wichtiger Punkt bei IK ist, dass Ihr Ziel nicht nur auf die Position beschränkt ist - Ihr Ziel kann als Rotation definiert werden. Wenn sich Ihre Füße beispielsweise aufgrund von unebenem Gelände drehen müssen, kann Ihr IK-Rotationsziel basierend auf der Normalität des Bodens definiert werden. Auf diese Weise sind Ihre Füße entlang des Bodens geneigt, z. B. wenn Sie eine Steigung hinaufgehen. Beachten Sie, dass Sie IK auch verwenden können, um Ihren Kopf (oder sogar Ihre Augen) in eine bestimmte Richtung zu lenken. Wenn Sie möchten, dass Ihr Kopf einem Objekt folgt, können Sie IK verwenden, damit der Kopf dem Objekt folgt.