Ich empfehle den obigen Link für einen allgemeinen Überblick über die inverse Kinematik. Es geht über IK-Jargon, IK-Verwendung / -Anwendungen und allgemeine Beschreibungen der Vorwärtskinematik und der inversen Kinematik.
Was sind die Verwendungszwecke von IK?
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.
Wie setze ich gemeinsame Limits um?
Normalerweise implementiere ich gemeinsame Limits mit einer einfachen if-Anweisung. Dies würde beispielsweise für Drehgelenke funktionieren.
if (limb.rotation > 45.0f) limb.rotation = 45.0f;
if (limb.rotation < -45.0f) limb.rotation = -45.0f;
Es ist viel weniger mathematisch als das Jacobian und extrem einfach zu implementieren, sobald das Jacobian funktioniert.