Inverse Kinematik (nur für Pro-Versionen). Skelettanimation, Vorwärts- und inverse Kinematik

Was ist inverse Kinematik?

Die Aufgabe der inversen Kinematik besteht darin, einen solchen Satz von Gelenkkonfigurationen zu finden, der die weichste, schnellste und genaueste Bewegung zu den gegebenen Punkten ermöglicht. Viele der derzeit existierenden Verfahren leiden jedoch unter solchen Nachteilen wie hoher Rechenkomplexität und Unnatürlichkeit der resultierenden Posen. Dieser Artikel beschreibt eine neue ( wahrscheinlich 2010 zum Zeitpunkt des Schreibens.) eine heuristische Methode namens "Die Vorwärts- und Rückwärtsmethode" ( Vorwärts- und rückwärtsgerichtete inverse Kinematik, dann nur FABRIK),
FABRIK vermeidet die Verwendung von Rotationen und Matrizen, um einen Punkt direkt auf einer Linie zu erhalten. Dadurch benötigt es nur wenige Iterationen, hat einen geringen Rechenaufwand und dadurch eine optisch natürliche Pose. Auch Constraints und mehrere Netze und/oder Endpunkte bewältigt FABRIK problemlos. In diesem Beitrag geht es um diese Methode.

Ich bitte Sie, diesen Squeeze mit Verständnis zu behandeln, denn das Original ist recht groß, hat viel Wasser, passende und unpassende Wiederholungen und Ablösungen vom Thema, sowie Vergleiche mit anderen Algorithmen. Ich habe mich entschieden, dies trotzdem zu ignorieren, daher enthält es nur einen kleinen Teil des Textes, der jedoch das Wesentliche widerspiegelt - ca. überset.

1. Künstliches Körpermodell

Ein mehrsteifes Körpersystem besteht aus einer Menge starrer Körper, die als Knoten bezeichnet werden und durch Kanten miteinander verbunden sind. Alle Kanten haben mit Bewegung zu tun: Sie beschränken die Bewegung innerhalb eines Winkels relativ zu benachbarten Kanten. Die Simulation des virtuellen Körpers ist wichtig, um die Körperhaltung einer Person zu berechnen. Ein Modell mit den richtigen Einschränkungen ermöglicht es Ihnen, eine Reihe korrekter Posen zu erhalten, die eine realistischere Bewegung ermöglichen. Die meisten Modelle implizieren die Festigkeit von Körperteilen, obwohl dies nur eine grobe Annäherung an die Realität ist.
Das Skelett wird normalerweise als Hierarchie starrer Segmente modelliert, die durch Kanten verbunden sind, von denen jedes durch Eigenschaften wie Länge, Form, Volumen und Masse definiert wird. Der Manipulator ist nach Art einer Roboterhand oder einer animierten Figur als Kette aus massiven Knoten modelliert, die durch Kanten miteinander verbunden sind. Jede Bewegung und/oder Drehung des Knochens mit Index i wirkt sich auf alle nachfolgenden Elemente der Kette aus. Die Kette kann wie folgt formalisiert werden: Jeder Knoten ohne Kinder sollte Endpunkt genannt werden; für jeden Endpunkt kann eine Kette gebildet werden, indem man sich entlang des Skeletts von Eltern zu Eltern rückwärts bewegt, bis der Wurzelknoten der Kette angetroffen wird (der Anfang der Kette). Per Definition geht das IK-Problem davon aus, dass der Wurzelknoten statisch ist. Die Methoden behandeln jedoch normalerweise das Verschieben der Wurzel.

Vollzyklusalgorithmus des FABRIK-Algorithmus (Pseudocode, das erste Element des Arrays an Index 1)

Ausgangsdaten: Array der Positionen der Knoten p [i] mit i = 1 ... n, Zielposition t und Werte der Abstände zwischen benachbarten Knoten. d[i] = | p -t | für i = 1, ..., n-1 Ausgabedaten: Neue Positionen p [i], i = 1 ... n // Abstand zwischen Wurzel und Ziel dist = | p - t | // Erreichbarkeit des Ziels prüfen, wenn dist> d + d + ... + d (// Ziel ist unerreichbar für i = 1, ..., n-1 do (// Distanz r [i] ermitteln zwischen dem Ziel t und dem Knoten p [i] r [i] = | t - p [i] | lambda [i] = d [i] / r [i] // Finde die neue Position des Knotens p [i ] p = (1 - lambda [i]) * p [i] + lambda [i] * t)) else (// Del ist erreichbar, also ist b die neue Position des Knotens pb = p // Prüfe ob der Abstand zwischen dem Endknoten p [n] und // Zielposition t Toleranzwerte DIFa = | p [n] - t | während DIFa> tol do (// Stufe 1: direkt folgend // Setze den Endknoten p [n] als Ziel (vermutlich gemeint mit "auf die Zielposition setzen" - ca. übersetz.) p [n] = t für i = n -1, ..., 1 do (// Distanz r [ i] zwischen dem Knoten p [i] und der neuen Position pr [ i] = | p - p [i] | lambda [i] = d [i] / r [i] // Berechnen Sie die neue Position des Knotens p [i] p [i] = (1 - Lambda [i]) * p + Lambda [i] * p [i]) // Stufe 2: Rückverfolgung // Setze das Wurzelelement p auf die Anfangsposition p [i ] = b für i = 1, ..., n - 1 do (// Erhalte den Abstand r [i] zwischen Knoten p und Position p [i] r [i] = | p - p [i] | Lambda [i] = d [i] / r [i] // Hole eine neue Position p [i] p = (1-Lambda [i]) * p [i] + Lambda [i] * p) DIFa = | p [n] - t | ))

2.FABRIK - eine neue heuristische Lösung für das IK-Problem

Dieser Teil enthält die Essenz der FABRIK-Methode. Es verwendet die bereits berechneten Positionen im Vorwärts- und Rückwärtsmodus. FABRIK erreicht Fehlerminimierung durch einmaliges Anpassen des Winkels jedes Knotens. Jene. die gesamte Kette wird, beginnend mit dem letzten Knoten, mit der Anpassung des Winkels jedes umgangenen Knotens umgangen, wonach die Kette in die entgegengesetzte Richtung umgangen wird. Diese Methode verwandelt im Gegensatz zur Transformation von Drehungen das Problem der Bestimmung der Position eines Knotens in das Problem der Suche nach einem Punkt auf einer Geraden; Daher können Sie Zeit sparen und den Rechenaufwand reduzieren. Angenommen, die Menge p,…, p [n] ist die Menge der Positionen der Manipulatorknoten. Nehmen wir auch an, dass P ist der Wurzelknoten und p [n] ist der Endknoten, d.h. Der Einfachheit halber belassen wir einen Endknoten. Das Ziel wird durch die Position repräsentiert T und die Ausgangsbasisposition B... Die FABRIK-Methode wird in der obigen Auflistung und eine grafische Interpretation des vollständigen Zyklus in der Abbildung links vorgestellt, mit einem Zielpunkt und vier Knoten in der Kette. Betrachten Sie den vollständigen Zyklus des Algorithmus in der Abbildung:

  • ein- Die Startpositionen des Manipulators und des Ziels.
  • B- Verschieben Sie den Endknoten P zum Ziel.
  • C- Eine Stelle finden P " P " und P, auf Abstand D von punkt P ".
  • D- Wiederholen Sie dies für alle Knoten.
  • e- Die zweite Stufe des Algorithmus: Wir verschieben das Wurzelelement von der Position P " in seine Ausgangsposition.
  • F- Wiederholen Sie dies für alle Knoten, aber diesmal beginnen wir von der Basis und bewegen uns zum letzten Knoten. Der Algorithmus wird wiederholt, bis die Position des letzten Elements nahe genug am Ziel ist.

Ausführlicher:
Zuerst werden die Positionen zwischen den Knoten betrachtet (ein Array D), wonach geprüft wird, ob der Zielpunkt erreichbar ist; der Abstand zwischen Wurzelknoten und Ziel wird berücksichtigt ( dist) und ist dieser Abstand kleiner als die Summe der Abstände zwischen den Knoten, dann ist das Ziel erreichbar, andernfalls nicht. Wenn das Ziel erreichbar ist, wird der volle Zyklus auf zwei Stufen begrenzt. Im ersten Schritt schätzt der Algorithmus die Startposition jedes Knotens, beginnend beim Endelement p [n] Bewegung in Richtung der Basis des Manipulators P... Lassen Sie uns also die Zielposition die Endknotenposition sein, p "[n] = T... Wir bekommen eine gerade Linie l auf Punkten liegen P und p "[n]... Neue Position des Knotens mit Index n-1, P " liegt auf dieser Linie in einiger Entfernung D aus p "[n]... Ebenso die neue Position des Knotens mit Index n-2, P " kann mit der Geraden berechnet werden l auf Punkten liegen P und P " auf Distanz D aus P "... Der Algorithmus wiederholt sich, bis alle neuen Positionen für alle Knoten berechnet sind, einschließlich des letzten. Wird das Wurzelelement an die gewünschte Position verschoben, wird FABRIK wie beschrieben ausgelöst, mit dem einzigen Unterschied, dass die neue Position P "" der Wurzelknoten ist die gewünschte Position, nicht die Startposition.
Nach einer vollständigen Iteration nähert sich der Endknoten in fast allen Fällen (wie beobachtet) dem Ziel. Der Vorgang wird so oft wiederholt, bis der Endknoten auf der Zielposition liegt oder sich dieser in einem akzeptablen Abstand nähert. Eine Implementierung des FABRIK-Verfahrens ohne Einführung von Beschränkungen wird an jedem Zielpunkt/Netz konvergieren, wenn das Ziel erreichbar ist. Wenn das Ziel jedoch weiter als die Reichweite ist, bis zu der sich die Kette dehnen kann, ist eine Unterbrechungsbedingung erforderlich, die die vergangene und aktuelle Position des Endknotens vergleicht und den Algorithmus beendet, wenn die Endknotenverschiebung kleiner als a . ist bestimmten Wert (Epsilon). In besonderen Fällen wird der Algorithmus auch nach einer bestimmten Anzahl von Iterationen unterbrochen (diese Situation ist jedoch bisher nicht aufgetreten).
Für ein schnelleres Ergebnis und eine schnellere Lösung in mehreren Iterationen ist eine Optimierung mit Conformal Geometric Algebra (im Folgenden CGA) möglich; CGA hat Vorrang vor Grundformen wie Kugeln, Linien, Ebenen und Kreisen, die sich leicht als algebraische Objekte darstellen lassen. Daher kann die Suche nach der Position eines Knotens, der sich zwischen zwei bekannten Knoten befindet, ausgedrückt werden durch den Schnitt von zwei Kugeln mit Mittelpunkten an den Positionen, die diesen Knoten entsprechen, und einem Radius gleich dem Abstand zwischen den Positionen des gewünschten Knotens und der verfügbare; die neue Position des Knotens liegt auf dem nächsten Punkt des Kreises, der durch den Schnittpunkt der beiden Kugeln gebildet wird. Sonstiges einfache Optimierung besteht in der direkten Konstruktion einer Geraden in Richtung des Ziels, wenn dieses nicht vorhanden ist.

3. Modell mit vielen Blattknoten


Wie bei einem einzelnen Endknoten gliedert sich der Algorithmus in zwei Schritte:

  • Die erste Stufe ist genau die gleiche, nur beginnt sie diesmal von jedem Endknoten mit einer Bewegung nach innen entlang der Kette von diesem Knoten bis zum Unterbau (wahrscheinlich ist der Unterbau ein Knoten mit mehreren angrenzenden Kanten - ca. Übersetzung) ... Somit erhalten wir für die Anschlussplatte so viele verschiedene Positionen, wie Endknoten daran angeschlossen sind. Aus diesen Positionen kann die Endposition als Schwerpunkt genommen werden. Danach geht die Ausführung des Algorithmus weiter in normaler Modus Verschieben von der Unterbasis zur Wurzel. Wenn die Unterbauten eigene Unterbauten haben, werden ähnliche Aktionen in Bezug auf sie durchgeführt - es wird auch eine Liste möglicher Positionen erstellt, wonach diese Unterplatte aus der gesamten Positionsliste auf dem Schwerpunkt installiert wird.
  • Im zweiten Schritt wird der übliche Algorithmus auf jeden Knoten angewendet und bewegt sich weiter vom Wurzelknoten weg. Außerdem muss jede Kette bis zum Endknoten separat verarbeitet werden: je mehr Untergründe, desto mehr Wiederholungen für jede von ihnen. Der Prozess wiederholt sich, bis die Endknoten ihr Ziel erreichen oder bis eine Unterbrechungsbedingung ausgelöst wird.

4. Begrenzer

Und schließlich ist der köstlichste Teil dieses Artikels die Berechnungen mit Einschränkungen. Sie werden, wie Sie vielleicht vermutet haben, für eine größere Ähnlichkeit mit echten Organismen benötigt. Der Knoten selbst zeichnet sich in der Regel durch drei Freiheitsgrade aus. Die Drehung eines Knotens kann als "einfache Drehung" (2 Freiheitsgrade), die seine Endposition widerspiegelt, und Drehung um die eigene Achse (1 Freiheitsgrad) charakterisiert werden. Durch Aufteilen der Bewegung eines Knotens in zwei solcher Phasen und Anwenden von Beschränkungen auf diese kann man die Position des Knotens steuern. Die Beschränkungen selbst können auf ähnliche Weise auferlegt werden: der Algorithmus ist iterativ, Rotationsbeschränkungen können bei jeder Iteration des Algorithmus angewendet werden. Die Beschränkungen haben jedoch keinen Einfluss auf die Konvergenz des Algorithmus. Die Hauptidee bei der Verwendung von Einschränkungen besteht darin, Knoten innerhalb von Einschränkungen neu zu positionieren und neu auszurichten.

  • ein- Erstkonfigurationen des Manipulators und des Ziels.
  • B- Verschieben Sie den Endknoten P auf das Ziel hin und richten es darauf aus.
  • C- Eine Stelle finden P " auf der Linie zwischen den Positionen liegen P " und P, auf Abstand D von punkt P ".
  • D- Richten Sie den Knoten neu auf die Position aus P " damit es entlang der Kantenverbindung aussieht P " und P ".
  • e- Berechnung der Begrenzungsellipse: Die erlaubten Positionen liegen im schattierten Bereich. Keiner der Gipfel bewegt sich zu diesem Zeitpunkt irgendwohin.
  • F- Knoten P bewegt sich in Position p ^ Dies ist die nächste Position auf der schattierten Ellipse, wodurch sichergestellt wird, dass die neue Position p ^ wird in akzeptablen Grenzen liegen.
  • g- Bewege den Knoten p ^ auf den Punkt P " um die Länge der Rippe zu halten.
  • h- Umorientieren P " um die Orientierungsbedingung zu erfüllen.

Dieser Vorgang wird für alle Knoten wiederholt, in der Geraden und umgekehrte Reihenfolge, ebenso wie bei der Option ohne Einschränkungen wurden Bewegungen durchgeführt. Gleichzeitig ist die Einschränkung "Ellipse" wahrscheinlich ein Merkmal einer Kante, nicht eines Knotens. in der zweiten Phase sollte sich der Knoten zur Ellipse bewegen P- ca. überset.


Skelettanimation ist genau dann der Fall, wenn eine sehr allgemeine Theorie sehr einfach zu erklären ist, es jedoch sehr schwierig ist, echte Ergebnisse zu erzielen, insbesondere ernsthafte Ergebnisse.

Niemand hält es jedoch für beschämend, jahrelang Animation zu studieren und an jeder Ecke auf die Wahrheit des Sprichworts "Lebe und lerne" zu stoßen.

Im Allgemeinen ist Skelettanimation die Animation einer 3D-Figur mit relativ wenigen Steuerelementen, sowohl äußerlich als auch im Prinzip, die einem Skelett oder der Struktur einer Puppe ähneln.

Wie es "gemacht" wird, haben wir im Artikel "Rigging" besprochen. Die Ergebnisse der ersten Versuche, etwas zu animieren, hängen davon ab, wie intelligent und korrekt das Rigging durchgeführt wurde. Wenn die Knochenhierarchie richtig ausgeführt wird, ist das Verhalten der Kette sowie der damit verbundenen Scheitel "lebensecht". Fehler können zu völlig lächerlichen Folgen führen: Beine können zum Beispiel hinter dem Kopf „weggehen“.

Geschickt eingesetzte Skelett-Animationen können viel Aufwand sparen - natürlich ist es viel einfacher, mehrere "Knochen" zu verschieben, als Gruppen von Scheitelpunkten und Polygonen von Ort zu Ort zu ziehen.

Es gibt zwei Hauptarten der Skelettbewegungsplanung - Vorwärtskinematik (FK) und Inverse Kinematik (IK). Sie werden auch in der Rigging-Phase ausgewählt - dieser Prozess ist jedoch im Allgemeinen untrennbar mit der Skelettanimation verbunden.

Also: Erstellen wir eine separate Kette von "Knochen" - vorerst ohne Fleisch hinzuzufügen. Alle Operationen werden im Blender3D-Paket ausgeführt, die Screenshots stammen daher auch von dort.



Wir sehen vier Knochen, wobei der erste der "Elternteil" ist, alle nachfolgenden befinden sich in einer sequentiellen hierarchischen Abhängigkeit von den vorherigen.

Wenn wir direkte Kinematik verwenden, werden sich nur die unteren bewegen, wenn wir versuchen, alle Verbindungen (Bones) unter die übergeordnete Ebene zu verschieben:



Den Knochen gedreht 2 , die Knochen drehten sich mit ihr ( blieben aber auf der gleichen Geraden) 3 und 4 .

Das ist direkte Kinematik: Die Bewegung der älteren Knochen in der Hierarchie führt dazu, dass sich auch die jüngeren bewegen.

Bei der inversen Kinematik ist der Algorithmus genau umgekehrt:




Nachdem wir den Modus der automatischen Auswahl der inversen Kinematik eingestellt haben (Blender gibt vor, dass er die beste Option auswählt, und manchmal ziemlich erfolgreich), verschieben wir den niedrigsten Knochen in der Hierarchie 4 ; die ganze Kette beugte sich gehorsam.

Ein Glied in der Kette, dessen Positionsänderung zu einer Positionsänderung anderer Glieder führt, wird als Effektor bezeichnet (es gibt eine abwegige Übersetzung von „Influencer“, aber wie wird dieses Wort eigentlich übersetzt? ..) .



Den Knochen bewegt 3 ... Links 1-2 änderten ihre Position, und 4 - blieb auf der gleichen Geraden mit dem Link 3 ... Knochen 3 jetzt ist es ein Effektor, und alles darunter in der Hierarchie unterliegt direkten kinematischen Algorithmen.

Die inverse Kinematik wird hauptsächlich dort verwendet, wo die genaue Position des Endglieds in der gewünschte Punkt(zum Beispiel, damit die Beine der Figur beim Gehen nicht auf der Oberfläche "rutschen" oder in Polygonen ertrinken, die das Firmament der Erde darstellen).

Das Wichtigste ist die kompetente Platzierung von Einschränkungen für bewegliche Elemente in der Rigging-Phase. Die Gliedmaßen des Charaktermodells sollten sich „innerhalb vernünftiger anthropomorpher Grenzen“ verhalten, damit sich beispielsweise die Knie nicht in die falsche Richtung beugen oder sich die Finger nicht um das Handgelenk legen.

Als nächstes beginnt der Prozess der Automatisierung der Bewegungen - hier wird alles wie bei der gewöhnlichen Animation durchgeführt. Keyframes werden für einzelne Steuerelemente festgelegt und sie ziehen den Rest mit. Gleichzeitig können Animationspakete Schlüsselpositionen nur für einzelne Bones, für alle Links auf einmal oder für ihre einzelnen Gruppen registrieren. Dadurch werden Bewegungs- / Rotations- / Skalierungskurven für jedes an der Animation beteiligte Element generiert. Moderne Pakete bieten natürlich eine Fülle von Werkzeugen, mit denen Sie Aufwand sparen können - zum Beispiel die Verwaltung vieler Elemente auf einmal "globalisieren" und sie mehr oder weniger bequem gruppieren. Der Screenshot unten zeigt alles Arbeitsfenster Blender mit aktiviertem Action Editor und Timeline Editor.

Dennoch ist die Erstellung hochwertiger Animationen ein ungeheuer mühsamer Prozess, der es erfordert, eine Vielzahl von Faktoren zu berücksichtigen, die den Einfluss der einzelnen Elemente aufeinander beeinflussen. Wie bereits im Artikel zum Rigging erwähnt, sollte man bei der Animation von anthropo- oder zoomorphen Charakteren die anatomischen Besonderheiten ihrer Vorbilder in der realen Welt und die entsprechende Verbindung der Elemente berücksichtigen.

Nun, und schließlich fügen wir hinzu, dass, wenn das Ziel nicht darin besteht, eine "realistische" Animation, sondern eine Stilisierung für gezeichnete Animationen zu erstellen, Sie die berüchtigten 12 festgelegten Prinzipien berücksichtigen müssen

Wir haben mit dem Joint-Tool gearbeitet und herausgefunden, wie es funktioniert. Sehen wir uns nun an, wie Sie Ihre Gelenke besser kontrollieren können auf einfache Weise... In diesem Kapitel werde ich einige dieser Werkzeuge behandeln, und dann können wir sie weiter verwenden, um unseren Charakter zu manipulieren. Und das erste Werkzeug, das ich Ihnen vorstellen werde, ist eines der wichtigsten Werkzeuge, über das Sie sich informieren sollten - das Werkzeug IK-Handle. Ich werde nur behandeln, was inverse Kinematik ist, wie sie funktioniert und wie man sie einrichtet.

Inverse Kinematik ist eine von zwei Möglichkeiten, Skelettgelenke zu manipulieren. Die erste Methode heißt Vorwärtskinematik und ist im Grunde Rotation. Damit drehen Sie die Gelenke und bringen sie wieder in Position, und dies ist wahrscheinlich die natürlichste Art der Manipulation, da sich unsere Gelenke nur in verschiedene Richtungen und auch umeinander drehen. Das heißt, jede Bewegung unseres Körpers ist eine Gelenkdrehung.

Die inverse Kinematik basiert auf dem Konzept des Ziels – dem Ziel, also der Stelle, an der sich das Gelenk drehen soll. Dadurch können wir die Endposition des Gelenks beim Schwenken vorgeben. Der einfachste Weg, sich daran zu erinnern, ist zu verstehen, dass die Vorwärtskinematik auf der Drehung des Gelenks basiert und die inverse Kinematik auf der Position des Gelenks basiert, in der es sich im Raum befinden sollte, wenn wir es drehen.

Lassen Sie mich Ihnen ein kurzes Beispiel geben. Ich habe hier zwei identische Gelenkketten. Die erste Gelenkkette hat keine inverse Kinematik, wird also über die Vorwärtskinematik gesteuert, und an unserer rechten Kette haben wir den IK-Griff installiert, der es uns ermöglicht, Gelenke mit der inversen Kinematik zu steuern. Ich gehe zum Projektionsfenster der Seitenansicht. Und ich werde das Modell im Ansichtsfenster näher bringen, um es besser sehen zu können.

Wieder einmal ist Forward Kinematics eine Wendung. Ich möchte das Ende dieser Gelenkkette auswählen und dieses Gelenk an den Ursprung verschieben. Ich werde alle diese Gelenke um einen Punkt drehen. Fangen wir gleich damit an. Ich drücke die E-Taste, um das Drehwerkzeug einzuschalten, und wie Sie sehen, ist es ziemlich schwierig, das Ziel nur mit den Drehungen zu erreichen, wenn wir mit dem Drehen beginnen. Also drehe ich diesen Joint so und diesen so und diesen wieder ein bisschen zurück, und vielleicht muss ich diesen noch einmal drehen. Jetzt mache ich alles nach Augenmaß, und ich mache es beim Platzieren dieser Gelenke nicht zu sorgfältig, da Rotation und Position der Gelenke nicht zu sehr miteinander übereinstimmen.

Die inverse Kinematik erleichtert diesen Vorgang erheblich. Wenn wir diese Kette mit inverser Kinematik genau irgendwo hinbewegen wollen, muss ich nur auf dieses Kreuz unten klicken, es heißt IK Handle1. Jetzt kann ich W drücken, um zum Verschieben-Werkzeug zu gehen und einfach mein Gelenk zum Ziel zu bewegen.

So einfach ist das. Maua dreht automatisch alle Gelenke gleichmäßig, um das Ziel zu erreichen. Aber wenn ich zum Beispiel das Gelenk über dieses Ziel hinaus bewege, haben wir Probleme. Daher können wir keinen gewünschten Punkt erreichen, aber wenn wir Punkte näher auswählen, wird alles klappen. Wie Sie vielleicht bemerkt haben, werden diese beiden Methoden in unterschiedlichen Situationen verwendet.

Normalerweise gibt uns die Vorwärtskinematik eine natürlichere Bewegung, da sie auf Drehungen basiert, was in der Charakteranimation sehr natürlich aussieht. Aber beide Methoden finden statt. Ich habe Ihnen gezeigt, wie es funktioniert. Lassen Sie mich Ihnen nun zeigen, wie Sie sie schnell einrichten. Lassen Sie uns eine neue Datei / neue Szene erstellen und etwas leeren Platz schaffen. Und gehen Sie zum Projektionsfenster der Seitenansicht. Ich werde Skelett / Gelenkwerkzeug wählen.

Machen wir eine sehr einfache Gelenkkette mit zwei Knochen. Ich klicke hier mit der linken Maustaste und erstelle einen Joint. Ich werde mich hier ein wenig von der Mittelachse entfernen und hier ein weiteres Gelenk erstellen. Wir haben hier einen kleinen Winkel, der der inversen Kinematik mitteilt, in welche Richtung sich das Gelenk drehen soll. Wir haben dies bereits im vorherigen Kapitel getan, und jetzt werde ich Ihnen zeigen, warum wir dies tun. Wir haben jetzt eine Kette von Gelenken, also setzen wir inverse Kinematik auf diese Kette.

Wir können zu Skeleton, IK-Handle-Tool gehen oder dieses Symbol verwenden, beide funktionieren auf die gleiche Weise. Jetzt müssen wir das erste Gelenk auswählen, aus dem wir die IK-Kette machen, lassen Sie es das oberste sein. Und jetzt das letzte Gelenk, es wird das unterste sein. Wir haben Zwischenverbindungen, aber es ist wichtig, dass ich sofort die letzte wähle.

Und wir haben IKHandle1. Wir können es auswählen, W drücken, und wie Sie sehen, biegt sich mein Gelenk in der Mitte in diese Richtung. Wenn ich meine Kette gerade gemacht hätte, hätte IKHandle nicht funktioniert, da es nicht herausgefunden hätte, in welche Richtung das Gelenk gebogen werden soll, also haben wir hier eine leichte Biegung gemacht. Werfen wir einen Blick auf Outliner. Sehen Sie, hier sind unsere Gelenke.

Und IKHandle ist ein separates Objekt und befindet sich nicht in der Gelenkkette. Daher können wir es separat bewegen und die Position der Gelenke ändern. Hier sind die Grundlagen zum Arbeiten mit IK-Handles und inverser Kinematik in Maua.

Daher müssen Sie bedenken, dass wir zwei Möglichkeiten zur Steuerung von Gelenken haben, die Vorwärtskinematik und die inverse Kinematik, und jede hat ihre eigenen Vorteile.

Inverse Kinematik (inverse kinematische Animation, Englisch inverse Kinematik, IK) - der Prozess der Bestimmung der Parameter verwandter flexibler Objekte (z. B. kinematisches Paar oder kinematische Kette), um die erforderliche Position, Ausrichtung und Lage dieser Objekte zu erreichen. Inverse Kinematik ist eine Art Bewegungsplanung (Englisch)... Inverse Kinematik wird aktiv eingesetzt in Robotik, dreidimensional Computeranimation und in Entwicklung von Computerspielen... Es wird hauptsächlich in Situationen verwendet, in denen es erforderlich ist, die flexiblen Gelenke eines Objekts relativ zu anderen Objekten in der Umgebung genau zu positionieren. Der Algorithmus der inversen Kinematik ist das Gegenteil des Algorithmus direkte Kinematik.

College-YouTube

    1 / 3

    Vorwärts- und inverse Kinematik in 3DS Max

    Anime Studio Pro 10, 11 (Moho Pro) - So verbinden Sie inverse Kinematiken mit einem Knochencharakter

    Full Bone Inverse Kinematics in Anime Studio Pro (Moho Pro) / Full Inverse Kinematics

    Untertitel

Beschreibung

Inverse Kinematik, wie gerade, werden auf Modelle von Charakteren oder Objekten angewendet, die mit erstellt wurden Skelettanimation... Das Wesen der Skelettanimation besteht darin, dass ein Objekt aus einer Reihe von starren Segmenten (Komponenten) besteht, die durch Gelenke verbunden sind ( Englisch gemeinsam). In diesem Fall lassen sich die Segmente zu kinematische Paare, die sich wiederum zu kinematische Ketten... Diese Segmente bilden hierarchische Ketten, die eine "obere" und eine "untere" Ebene haben. Die Segmente (Komponenten) der oberen Ebenen werden als Vorfahrenkomponenten (oder Elternsegmente) bezeichnet und die Komponenten der unteren Ebenen werden als Nachkommenkomponenten (oder Kindersegmente) bezeichnet. Wenn Sie beispielsweise eine menschliche Hand betrachten, ist das Schultergelenk die höchste Stufe und die Fingerspitze die niedrigste, d. h. die Nachkommenkomponente des Schultergelenks. Ellenbogengelenk sich innerhalb der Kette befindet, hat sie sowohl Eltern- (Schulter) als auch Kind-Segmente (Handgelenk, Finger).

Der Hauptunterschied zwischen der direkten Kinematik und der inversen Kinematik besteht darin, dass bei der direkten Kinematik jede Aktion entlang einer hierarchischen Kette von oben nach unten übertragen wird. Wenn sich beispielsweise das Hüftgelenk bewegt, bewegen sich alle Nachkommen, also das Kniegelenk und alle anderen. Die inverse Kinematik verwendet ein dem Prinzip einer geraden Linie diametral entgegengesetztes Prinzip - die Bewegung von Nachkommenkomponenten führt zu einer Änderung der Position der Vorfahrkomponenten, d.h. der Algorithmus berechnet die Position und Ausrichtung der Vorfahrkomponenten basierend auf die Position und Ausrichtung der untergeordneten Komponenten.

In der inversen Kinematik wird ein Kindsegment (Kindkomponente), das eine Änderung der Position und Ausrichtung anderer Objekte bewirkt und sich in der Mitte einer separaten hierarchischen Kette von Segmenten befindet, als Effektor bezeichnet ( Englisch Effektor). Wenn ein Effektor ein Endobjekt einer gegebenen hierarchischen Kette ist, dann wird er Endeffektor genannt ( Englisch Endeffektor). Durch den Effektor wird die gesamte hierarchische Kette manipuliert. Eine Positions- und/oder Orientierungsänderung des Endeffektors führt nach den Gesetzen der inversen Kinematik zu einer Positions- und/oder Orientierungsänderung aller Segmente der hierarchischen Kette. Eine Änderung der Position und/oder Orientierung eines einfachen (nicht finalen) Effektors führt dazu, dass sich die Position von Objekten in der darunter liegenden Hierarchie nach den Gesetzen der direkten Kinematik ändert, und von Objekten mit einer höheren Hierarchie - nach den Gesetze der inversen Kinematik.

Der Schlüssel zur erfolgreichen Implementierung inverser Kinematik ist die Animation innerhalb von Einschränkungen ( Englisch Einschränkungen): Die Gliedmaßen des Charaktermodells müssen sich innerhalb vernünftiger anthropomorpher Grenzen verhalten. Genauso verhält es sich mit Robotergeräten, die physische Einschränkungen haben, wie beispielsweise die Umgebung, in der sie arbeiten, Einschränkungen bei der Bewegung ihrer Gelenke und begrenzte körperliche Aktivität und Geschwindigkeit, mit der sie arbeiten können.

Verwendung und Beispiele

Inverse Kinematik ist ein Werkzeug, das häufig von Künstlern verwendet wird. dreidimensionale Grafiken... Für den Künstler ist es einfacher, die gewünschte Raumwirkung auszudrücken, als die Winkel der Gelenke direkt zu manipulieren. Beispielsweise ermöglicht die inverse Kinematik dem Künstler, die Hand eines humanoiden 3D-Charaktermodells in eine gewünschte Position und Ausrichtung zu bewegen. In diesem Fall wählt der Algorithmus selbst, nicht der Künstler, die richtigen Winkel von Handgelenk, Ellbogen und Schultergelenk aus.

Wenn eine Person beispielsweise einen Türknauf mit der Hand greifen möchte, dann ist seine Gehirn muss die notwendigen Berechnungen für die korrekte Positionierung von Arm und Rumpf der Person anstellen. Das Hauptziel besteht darin, den Arm zu bewegen, aber es müssen viele komplexe Gelenke mit mehreren Gelenken verwendet werden, um den Arm zum gewünschten Objekt zu bringen. So funktioniert das Verfahren in technologischen Anwendungen - um das gewünschte Ziel zu erreichen, müssen mathematische Berechnungen der inversen Kinematik durchgeführt werden, um die Gliedmaßen richtig zu positionieren. Ein Beispiel, bei dem häufig IK-Berechnungen benötigt werden, ist die Robotik. Zum Beispiel der Betreiber Roboter möchte ein Objekt mit platzieren Manipulator er möchte jedoch natürlich nicht jedes Gelenk des Manipulators separat steuern.

Andere Anwendungen, die inverse Kinematiken verwenden, sind Computergrafik und Animationen... Animatoren möchten beispielsweise ein computergeneriertes humanoides Charaktermodell steuern, aber es ist sehr schwierig, einzelne Gelenke zu animieren. Die Lösung besteht darin, die virtuellen Gelenke der "Marionette" zu simulieren und den Animator die Arme, Beine und den Körper der Puppe bewegen zu lassen, und der Computer mit inverser Kinematik generiert automatisch die erforderlichen Gliedmaßenpositionen, um das Ergebnis zu erzielen.

Inverse Kinematik wird häufig verwendet in Computerspiele um Animationen für humanoide Charaktere zu erstellen. Meist wird inverse Kinematik verwendet, um die Beine von Menschen oder menschlichen Modellen zu animieren. Es ist zum Beispiel recht einfach, eine Bewegungsanimation (Gehen, Laufen) einer Person oder eines Landtieres zu erstellen, wenn es sich auf einer flachen Ebene bewegt. Wenn das Gelände jedoch uneben ist (holprig, holprig, zerklüftet oder bergig), ist es praktisch unmöglich, genaue Gehanimationen zu erstellen. Die Animation der Beine entspricht nicht dem Oberflächenrelief, was sich in Effekten wie einem Abrutschen der Beine auf der Oberfläche und einer ungenauen Positionierung der Beine relativ dazu äußert (der Fuß "versinkt" in der Oberfläche oder "fehlt" " es). Es ist für Qualität und effektive Lösung Diese Probleme verwenden eine inverse Kinematik.

Andere Anwendungen, die inverse Kinematik verwenden, umfassen interaktive Manipulation, Animationssteuerung und Kollisionsvermeidung.

Notizen (Bearbeiten)

Externe Links

Englischsprachige Quellen

  • Hugo Elias. Inverse Kinematik, archiviert am 13. August 2011.
  • Hugo Elias. Inverse Kinematik - verbesserte Methoden. freespace.virgin.net. Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Inverse Kinematik des Roboters. www.learnaboutrobots.com. Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Wie bewegen sich die Charaktere in Videospielen so flüssig? (Englisch). Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Martin John Baker. 3D-Theorie - Kinematik - Gelenke Inverse Kinematik. www.euclideanspace.com. Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Lydia E. Kavraki. Proteininverse Kinematik und das Loop-Closure-Problem. cnx.org. Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Diego-Park. Computergrafik (eng.). diegopark.googlepages.com. Abgerufen am 5. Juni 2009. Archiviert am 13. August 2011.
  • Bill Baxter.
Fortsetzung des Themas:
Geräte

Freie Sonnenstrahlen effizient in Energie umzuwandeln, mit der Haushalte und andere Einrichtungen mit Strom versorgt werden können, ist der gehegte Traum vieler Verteidiger grüner ...