Soeben ist es mir gelungen, einen Satz tatsächlich brauchbarer und halbwegs einfacher (sprich überschaubarer) Routinen für Inverse Kinematik zu erstellen.
Da bin ich jetzt direkt ein wenig stolz darauf, weil es doch einige Schwierigkeiten zu lösen gab, um das Ganze mathematisch stabil zu halten.
Beigefügt ist ein kleines Demo zur Thematik, Delphisource ist dabei - wenn sich zumindest ein paar Leute dafür interessieren, könnte ich ein Tutorial dazu schreiben, muss allerdings vorwarnen, dass das Thema nicht ganz trivial ist, und zumindest das Prinzip von normalen, hierarchischen Animationen (wie etwa bei Milkshape Modellen) wirklich "verstanden" sein sollte.
hier ein nicht besonders eindrucksvoller Screenshot (in Aktion schauts aber ganz lustig aus):
Registriert: Mo Sep 23, 2002 19:27 Beiträge: 5812
Programmiersprache: C++
Habs mir grade mal angesehen und für jemanden der ned weiß was wirklich hinter inverser Kinematik steht, sieht die Demo wohl nicht interessant aus.
Wer sich aber mal mit der Thematik beschäftigt hat, wird sicherlich wissen das die Implementation der IK wirklich nicht einfach ist, allerdings kann man damit so richtig tolle Sachen machen (siehe IK im 3DStudio). Wäre toll wenn da da jetzt noch auf Basis dieser Demo ein komplettes menschliches Skelett basteln würdest.
Ich habe bislang auch nur normale Hierachie verwendet. Sieht aber recht interessant aus, wenn die "Schlange" dem Licht folgen will. Ich habe mal irgendwo gelesen, daß sich die Animation durch schrittweises Drehen der Gelenke, je nach dem auf welcher Seite das Ziel liegt, möglich ist. Vermutlich kommt dadurch auf das leichter Zittern wenn die Box nah am Licht ist.
Das Zittern kommt dadurch zustande, dass der Tentakel* versucht, das Objekt punktgenau zu erreichen. Manchmal klappt dies, manchmal nicht - vermieden werden könnte es, wenn ich nur "in die Nähe" der Lichtquelle gehen würde, was man normalerweise ja auch machen würde.
* sämtliche Elemente haben 360 Grad Wirkungsradius und werden genau gleich gewichtet: Steuerung für "realistische" Gelenke mit unterschiedlicher "Steifheit" und begrenztem Wirkungsradius ist aber schon in BaseGraph eingebaut, das Setzen der entsprechenden Werte in Carad aber noch nicht.
@SoS: sobald ich die volle Unterstützung für IK in Carad eingebaut habe, werde ich mich an etwas Eindrucksvollerem versuchen. Vielleicht sendest du mir das Modell aus deinem 3DS Tutorial per Mail, dann schau ich, ob ich dem kleinen Mann das Laufen und Zugreifen beibringen kann .
Folgendes müsste recht nett aussehen: Man drapiert (evtl. per Zufall) eine Kugel im Raum, das Männchen läuft in die Nähe (Laufanimation wird vorgegeben) und hebt diese auf: Bücken/Recken und Zugreifen (Fixpunkt ist das Becken) lassen sich per IK lösen, sobald der Akteur nah genug und richtig gedreht ist.
Registriert: Mo Jan 20, 2003 20:10 Beiträge: 424 Wohnort: nähe Starnberg
Wenn ich das richtig verstehe, könnte mann mit dieser Technik die Animationssequenzen der Modelle nachbauen, sofern es keine zu komplexen Bewegungsabläufe sind, oder?
Das ist der Sinn der Sache, ja.
Um z.B. einen Laufanimation zu erstellen, genügt es den Fuß dorthin zu bewegen, wo er sein soll, Unterschenkel und Oberschenkel ziehen dann automatisch nach.
Damit spart man sich viel Arbeit, da ansonsten der Status jedes Gliedes einer hierarchischen Animation einzeln gesetzt werden müsste - und so etwas wie ein "zugreifender" Tentakel, ist mit normalen Animationen gar nicht möglich, da man kaum sämtlich Eventualitäten des Zugreifens im Vorhinein abdecken kann.
Der größere Vorteil ist IMHO allerdings, dass man "normale" Animationssequenzen recht zeitsparend definieren kann - wirklich dynamisch berechnete IK ist dann für Spezialanwendungen praktisch, für normale Akteure ist es angenehmer einmal eine Animationssequenz anzugeben, die dann bis auf Widerruf zyklisch wiederholt wird.
Registriert: Di Jul 01, 2003 18:59 Beiträge: 887 Wohnort: (The Netherlands)
Programmiersprache: fpc/delphi/java/c#
Interesting! I have a look at it. Somtimes i think i understand things like bone animations and sometimes not. A tutorial would be nice.
If i veel up to it, I try to combine it with a milkshape file. But i am a bit short of time this week.
MilkShape Modelle sind für IK gut geeignet, da die einzelnen Schnittpunkte bereits einer Bonestruktur zugeordnet werden können, auf die man recht gut IK anwenden kann.
Ich bin mir jetzt aber nicht ganz sicher, was du meinst: ein Tutorial zu Bone Animationen, oder ein Tutorial zu IK?
Wenn es auf DGL noch kein Tutorial zu Bone Animationen gibt, wäre dies natürlich zuerst notwendig, da inverse Kinematik ebenfalls auf hierarchisch verknüpften Objektstrukturen aufsetzt.
War bestimmt nicht gerade einfach, die ganze Objekte mit IK auszustatten. Für Animationen liese sich das wircklich gut einsetzen...
Dann kann man richtig schöne dynamische Animationen basteln ohne durch statische Vorgaben beschränkt zu werden... Sehr interessant...
Tutorial wäre nicht schlecht.
Hmm, mal schauen (bin zur Zeit grad an was anderem am werkeln). Das Problem ist, dass ich für ein Tutorial zu IK bereits ziemlich viel voraussetzen müsste (aber wahrscheinlich nicht sollte).
* Organisation von hierarchischen Objekten,
* Repräsentation von Objektorientierung über Quaternionen (um zwischen zwei Orientierungen interpolieren zu können)
* "Normale" Animation über Verbindungsstücke (Joints)
Auf BaseGraph möchte ich bei einem Artikel über ein allgemeines Thema nicht unbedingt aufsetzen, da ich mich auch nicht besonders drüber freue, wenn in einem Text zu einem interessanten Thema ohne Vorwarnung plötzlich irgendwelche proprietären Bibliotheken auftauchen.
Das Ganze würde also recht umfangreich machen, wenn das alles von Grund auf erklärt wird - wenn mir mal langweilig werden sollte, setze ich mich dran .
Solltest du aber bis dahin konkrete Fragen haben, helfe ich dir gerne weiter.
Das einzige, was mir persönlich von den 3 genannten Punkten unbekannt ist, ist Repräsentation von Objektorientierung über Quaternionen (um zwischen zwei Orientierungen interpolieren zu können) (Gut, dass es Copy&Paste gibt *g*). Ich denke, dass Benutzer von gmax, milkshape und 3ds max oder auch maya usw. schon was mit IK anfangen können, da jedenfalls in 3ds max IK recht gut erklärt ist (Sind mehrere zig Seiten in der Hilfe) und auch relativ einfach zu erzeugen ist.
Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.