|

Jeder der sich schon
mal mit der Inversen Kinematik (IK) auseinandergesetzt hat kennt auch
die Probleme die dabei entstehen (Schwerpunkt setzen, die richtigen Achsen
beschränken u.s.w.). Es ist ein schwieriges Thema, ich selber beherrsche
die Inverse Kinematik auch nicht allzu gut, aber ich habe trozdem versucht
dieses Tutorial zu schreiben. Ich hoffe, daß ich Euch damit helfen
kann. Man sollte aber mit der hierarchischen Verknüpfung vertraut sein
bevor man das Tutorial durcharbeitet. Seht Euch dazu doch mal das Tutorial
von Andi (Character-Animation
ForwardKinematik) an, da wird die hierarchische Verknüpfung gut und
verständlich erklärt.
In diesem Tutorial
werden wir einen Hydraulikbaggerarm animieren, wobei das Animieren des
Baggerarmes eigentlich kein Problem ist. Aber die Hydraulik muss sich
ja entsprechend mitbewegen, und da fangen dann die Probleme erst an. Wir
bewegen also nur den Arm, die Baggerplattform wird dabei nicht bewegt.
In diesem Tutorial werden wir nichts modellieren, alles was wir brauchen
befindet sich in der beiliegenden Max Datei (siehe downloadbares zip-file!).
Nun lasst uns aber beginnen!
1. Beginn &
Anpassen der Schwerpunkte
Max starten und
die Datei IKBa.Max laden! Wir sehen einen Baggerarm und die dazu gehörige
Hydraulik (Ich hoffe man kann es als solche erkennen ;-) ). Links oben
seht Ihr die Hydraulik, ganz links ein Shape, auf das ich den Modifikator
"Drehverfahren" angewendet habe. Dadurch ist dann das Objekt
rechts daneben entstanden (das Hydraulikunterteil). Wiederum rechts daneben
ist der Hydraulikstab, den ich aus einem Zylinder und einem Spline, welchen
ich extrudiert und anschliessend zusammen mit dem Zylinder zu einem Objekt
ausgeblendet habe, erstellt habe.
Nochmals rechts daneben die komplette Hydraulik. Dem Baggerarm fehlt die
Hydraulik, das werden wir nun ändern:
Das Anpassen der
Schwerpunkte:
Wir beginnen erst
einmal mit den Schwerpunkten: die müssen an den richtigen Stellen platziert
werden. Die Schwerpunkte dienen auch als Drehungachsen. Dazu muss man
genau wissen wie der Baggerarm sich später bewegen soll. Seht euch mal
im Ansichtsfenster von Vorne den Arm genau an und findet heraus wo der
Baggerarm seine Drehungachsen haben muss! Wechselt in das Ansichtsfenster
von vorne.
Bei der Baggerplattform
(grau) werden wir den Schwerpunkt in der Mitte der Plattform zentrieren:
Wählt dazu die Baggerplattform aus und wechselt zur Hierarchiepalette
und klickt im Rollout "Schwerpunkt anpassen" auf "Nur
Schwerpunkt beeinflussen". Dann unter Ausrichtung auf zuerst
auf "An Objekt zentrieren" klicken und dann auf "An
Welt ausrichten" klicken. Der Schwerpunkt ist nun ein Stückchen
versetzt worden, und die Ausrichtung der xyz-Achsen entspricht dem Weltkoordinaten-System.
Jetzt
wählt das Baggearmgelenk01 (rot) aus. Dann wählt Ihr das Lokale
Koordinatensystem  .
Wie ihr erkennen könnt: der Schwerpunkt (um den sich der Arm ja
auch drehen soll) befindet sich an der völlig falschen Stelle. Er muss
unten am Bolzen01 (bei der Baggerplattform) sein. Also wieder in die
Hierarchie-Palette :
klickt unter Schwerpunkt anpassen auf "Nur Schwerpunkt beeinflussen",
dann unter Ausrichtung "An Objekt zentrieren" und "An
Welt ausrichten".
Ihr könnt nun manuell vorgehen und den Schwerpunkt mit "Auswählen
und verschieben"
zu dem Bolzen01 schieben und ihn dort an den Bolzen01 zentrieren (zommt
dabei an den Bolzen ran!).
Es gibt aber auch
eine komfortablere (und exaktere!) Methode des Ausrichtens: stellt sicher,
daß Ihr das Baggerarmgelenk01 ausgewählt habt, und in der
Hierarchiepalette
"Nur Schwerpunkt beeinflussen" aktiviert ist. Achtet
darauf, daß Ihr euch im Lokalen KoordinatenSystem befindet  .
Sucht nun in der Hauptsymbolleiste das Werkzeug ausrichten .
Aktiviert es und klickt mit Eurem Mauspfeil (er hat sich in ein dünnes
Fadenkreuz verwandelt), auf den Bolzen01. Ein Fenster erscheint, indem
ihr die X- und Z-Postion anklickt, und sowohl das "aktuelle Objekt"
als auch das "Zielobjekt" auf "Schwerpunkt" setzt.
D.h., daß nun der Schwerpunkt des Baggerarms01 an dem lokalen
Schwerpunkt des Bolzen01 ausgerichtet wird. Das paßt dann 100%ig.
Das ganze sollte nun wie im Bild oben rechts aussehen.
Nun
wählt das Baggerarmgelenk02 (weiss). Auch hier ist der Schwerpunkt falsch
plaziert. Also wieder das gleiche Spiel:
Hierarchiepalette ,
unter "Schwerpunkt anpassen" auf "Nur Schwerpunkt
beeinflussen", unter Ausrichtung "An Objekt zentrieren"
und "An Welt ausrichten" klicken, und dann wieder verschieben.
Diesmal hoch zu dem Objekt Bolzen04 (dort wo das Baggerarmgelenk01 mit
dem Baggerarmgelenk02 verbunden ist). Zentriert den Schwerpunkt am Bolzen04!
Selbstverständlich könnt ihr auch wieder mit dem Ausrichten-Werkzeug
arbeiten und die Schwerpunkte wie vorhin an der lokalen X- und Z-Achse
ausrichten (achtet aber darauf, daß Ihr Euch im Lokalen Koordinatensystem
befindet 
!). Egal wie Ihr es anstellt, das Ergebnis sollte dem im Bild links
gleichen.
Bei dem Baggerarm
haben wir jetzt die Schwerpunkte korrekt platziert. Ihr könnt dies überprüfen,
indem Ihr den Baggerarm bewegt: deaktiviert den Modus "Nur Schwerpunkt
beeinflussen", klickt auf Baggerarmgelenk01 (rot) und wählt
in der Haupt-Symbolleiste "Auswählen und drehen" ,
bewegt den Mauszeiger über den ausgewählten Arm, und dreht ihn. Vergesst
nicht die Aktion wieder Rückgängig zu machen!
Wechselt
wieder in die Hierachiepalette
und wählt das Hydraulikunterteil01(gelb) aus. Auch hier müssen wir den
Schwerpunkt an der richtigen Stelle platzieren. Also wieder das Spielchen
von vorne: unter "Schwerpunkt anpassen" auf "Nur
Schwerpunkt beeinflussen", unter Ausrichtung "An Objekt
zentrieren" und auf "An Welt ausrichten" klicken.
Jetzt wieder den Schwerpunkt verschieben (zommt euch an das Hydraulikunterteil01
(gelb) herran, der Schwerpunkt sollte in der Mitte des unteren Zapfen
liegen). Dieses Mal müßt Ihr den Schwerpunkt per Hand verschieben,
das Ausrichten-Werkzeug
ist hier nutzlos, da Ihr kein Zielobjekt habt, an dem Ihr den Schwerpunkt
ausrichten könnt. Achtet aber darauf, daß Ihr den Schwerpunkt
nur entlang der lokalen Z-Achse (sie zeigt nun nach oben, wenn man das
Objekt von der Seite betrachtet) verschiebt. (Siehe Bild rechts).
Zommt
wieder zurück und wählt den Hydraulikstab01 aus. Auch hier muß
der Schwerpunkt richtig platziert werden. Also wieder unter "Schwerpunkt
anpassen" auf "Nur Schwerpunkt beeinflussen" klicken
dann unter Ausrichtung auf "An Objekt zentrieren" und auf
"An Welt ausrichten" klicken, nun wieder den Schwerpunkt verschieben
und zwar bis hoch zur Mitte des Loch.
Zuletzt kommen
wir nun noch zu den vier Bolzen: wählt den Bolzen01 aus und zentriert
seinen Schwerpunkt ("An Objekt zentrieren") und richtet
ihn an der Welt aus, so wie ihr es bisher eben auch getan habt. Das
gleiche macht ihr dann auch mit den restlichen Bolzen!
So, jetzt haben wir alle Schwerpunkte an den richtigen Stellen platziert!
Vergesst nicht den "Nur Schwerpunkt beeinflussen"-Modus zu
deaktiveren bevor Ihr weiterarbeitet!!
Einen aktuellen
Zwischenstand der Szene findet Ihr in der Datei IKBa2.max.
2. Das Verlinken
Nun kommen wir zu
dem Verlinken der einzelnen Objekte (das richtige Verlinken ist genauso
wichtig wie das richtige Setzten der Schwerpunkte):
Die Baggerplattform01
(grau) ist unser übergeordnetes Objekt. Demnach müssen wir das
Baggerarmgelenk01(rot) mit der Baggerplattform01 (grau) verknüpfen.
Und zwar genau in diese Reihenfolge! Denn wenn ihr die Plattform mit
dem Arm verknüpft ist der Arm auch das Übergeordnete Objekt und das
wäre bei unserem Beispiel falsch. Zum Verknüpfen verwendet ihr
das Vernknüpfen-Werkzeug .
Wählt das Baggerarmgelenk01 (rot) aus, und zieht mit gedrückter
linker Maustaste eine gestrichelte Linie zur Baggerplattform01 (grau).
Immer nach dem Prinzip "vom Kind zum Papi". Das die Verknüpfung
erstellt wurde, signalisiert ein kurzes weisses Aufblinken der Baggerplattform01
beim Loslassen der Maustaste.
Nun verknüpft
Ihr Baggerarmgelenk02 (weiss) mit Baggerarmgelenk01 (rot), Baggerarmgelenk01(Rot)
wird mit der Baggerplattform verknüpft (falls nicht schon geschehen).
Kommen wir
dann zu den Bolzen: Bolzen01 wird mit der Baggerplattform verknüpft,
Bolzen02 und Bolzen04 wird mit dem Baggerarmgelenk01. Zuletzt Bolzen03
mit Baggerarmgelenk02.
Wenn ihr
jetzt den Arm01 auswählt und ihn dreht ,
folgen ihm seine Untergeordneten Objekte, macht die Aktion aber wieder
rückgängig!
Nun zur Hydraulik:
das Hydraulikunterteil(gelb) ist das übergeordnete Objekt des Hydraulikstabes.
Also wie wird verknüpft? Richtig: der Hydraulikstab mit dem Hydraulikunterteil.
Bringt jetzt die
Hydraulik in Position! Wählt dazu das Hydraulikunterteil aus und verschiebt
es runter zur Baggerplattform. Wechselt nun ins Ansichtsfenster von
Oben: dort könnt ihr eine Kerbe in der Baggerplattform erkennen. Verschiebt
das Hydraulikunterteil bis zu Mitte der Kerbe, wechselt wieder in dei
Vornansicht und verschiebt das Hydraulikunterteil bis der untere Zapfen
richtig in der Kerbe sitzt.
Jetzt befindet
sich die erste Hydraulik an der richtigen Stelle.Wir
brauchen aber noch eine Hydraulik für den zweiten Baggerarm. Dazu
klonen wir einfach die erste: Wählt das Hydraulikunterteil und den Hydraulikstab
aus, klickt in der Menüleiste auf "Bearbeiten" und
dann auf "Klonen", das Klonoptionsfenster öffnet sich.
Bestätigt einfach mit OK.
Ihr habt nun eine Kopie der ersten Hydraulik erstellt, die Ihr hoch
zum Baggerarmgelenk01 verschiebt (oben auf dem Arm befindet sich eine
Auswölbung, da muss der untere Zapfen des Hydraulikunterteil hinein,
ungefähr bis zur Hälfte des Zapfens). Schaut auch im Ansichtsfenster
von oben und positioniert die Hydraulik. Ihr könnt dazu auch wieder
das Ausrichten-Werkzeug
verwenden. Stellt sicher, daß Ihr euch im LokalenKoordinaten-System
befindet  ,
und richtet die Hydraulik an der entlang lokalen Y-Achse an den Schwerpunkten
aus.
Jetzt haben wir
auch die zweite Hydraulik an der richtigen Stelle, wir müssen die Hydraulik
aber noch verknüpfen. Wählt das Hydraulikunterteil01 aus und verknüpft
es mit der Baggerplattform (grau). Dann das (geklonte) Hydraulikunterteil02
mit dem Baggerarmgelenk01(rot) verknüpfen (die Hydraulikstäbe werden
gleich mit dem IK Setup verknüpft).
Nun
müssen die Hydraulik noch an den Armen anpassen. Das ist etwas Fummelarbeit:
Baggerarmgelenk drehen, Hydraulik drehen, so lange bis ihr die Löcher
in den Hydraulikstäben, an den Bolzen angepasst habt (die Hydraulikstäbe
solltet ihr dabei aber nicht aus den Hydraulikunterteilen ziehen).
Wenn Euch die 0,5° als minimale Drehschritteinstellung dabei nicht
reichen sollte, könnt Ihr im Menü "Anpassen"->Einstellungen->Ansichtsfenster
wählen, und dort den "Drehschritt" beispielsweise auf
0,1 herabsetzen. Die Drehbewegungen sind dann feiner zu steuern. Euer
Baggerarm sollte nun etwa so wie im Bild nebenan aussehen. Einen Zwischenstand
der Szene spiegelt die Max Datei IKBa3.max wieder.
3. Das Komplettieren
der Verknüpfungen:
Jetzt müssen wir
die Hydraulikstäbe mit den Armen verknüpfen, beziehungsweise mit den
dazugehörigen Bolzen. Aber die Hydraulikstäbe sind ja eigentlich schon
mit den Hydraulikunterteilen verknüpft.... wie soll man sie also nun
noch mit den Bolzen verknüpfen, ohne die bereits bestehende Verknüpfung
mit den Hydraulikunterteilen aufzuheben? Das würde bedeuten, daß
wir die Hydraulikstäbe mit zwei Objekten verknüpfen würden. Das
funktioniert mit "Auswählen und Verknüpfen"
jedoch nicht. Wenn wir z.B. Hydraulikstab01 mit Bolzen02 verknüpfen
ist der Stab auch NUR mit dem Bolzen verknüpft und somit nicht mehr
mit dem Hydraulikunterteil und die IK würde nicht mehr funktionieren.
Hmmm... was machen wir jetzt?
Wir benutzen dabei
die Bindefunktion der Inversen Kinematik: öffnet dazu in der Hierachiepalette
das Rollout "IK", wechselt dann in das Perspektiv-Ansichtfenster
(Drahtgittermodus) und zommt an Bolzen02 heran. Wählt den Hydraulikstab01
aus und klickt unter IK, im Rollout "Objektparameter" "An
Folgeobjekt binden" auf die Schaltfläche Binden. Wenn sie grün
(aktiv) ist bewegt Ihr den Mauszeiger über den Hydraulikstab01 haltet
die Maustaste gedrückt und bewegt den Mauszeiger über Bolzen02. Nun
loslassen und wieder auf "Binden" klicken um den Modus wieder
zu deaktivieren. Wir haben jetzt den Hydraulikstab01 mit dem Bolzen02
als Folgeobjekt verbunden, ohne die IK-Verknüpfung zu dem Hydraulikunterteil
(gelb) aufzuheben. Das gleiche machen wir mit dem geklonten Hydraulikstab02
und Bolzen03.
Wenn wir jetzt
das Baggerarmglied02(weiss) auswählen, die IK in der Symbolleiste aktivieren
( ) und
es bewegen würden, würde die ganze Hierarchie unkontrolliert im
Raum herumzappeln. Aus diesem Grund müssen die Bewegungs-Achsen
der einzelnen Baggerglieder beschränkt werden:
4. Das Beschränken
der Achsen:
Kommen wir nun zum Beschränken der Achsen. (Das Beschränken und alle anderen
Änderungen im IK Rollout wirken sich nur auf Objekte aus die hierarchisch
verknüpft sind und wenn die Schaltfläche -Inverse Kinematik aktivieren/deaktivieren-
(Symbolleiste)
aktiviert wurde!)
Wir werden jetzt die einzelnen Achsen mittels IK beschränken: wählt
die Baggerplattform (grau) aus, wechselt in die Hierarchiepalette ,
klickt auf "IK" und geht runter bis zum Rollout "Drehgelenke".
Hier kann man die drei Achsen X,Y,Z beschränken: Da die Baggerplattform
sich nicht mitbewegen (bzw. -drehen) soll, deaktivieren wir alle drei
Achsen, indem für alle drei Achsen die Box "aktiv"
deaktiviert wird. Das gleiche machen wir dann noch mit den vier Bolzen.
Wählt jetzt das
Baggerarmgelenk01(Rot) aus: der Arm soll sich ja nur um die Y-Achse
drehen (nicht vergessen: wir haben alle Objekte an der Welt ausgerichtet.
Also müssen wir uns an dem Achsenkreuz orientieren, das in jedem Ansichtfenster
links unten zu sehen ist, dem Weltkoordinatensystem). Deaktiviert die
Achsen X und Z.
Die Y Achse wird nun beschränkt: aktiviert dazu für die Y-Achse
das Kästchen "Beschränkt". Wenn ihr jetzt den
Wert "Von:" erhöht, sollte das Baggerarmgelenk01 sich
neigen und wenn ihr den Wert senkt, dreht sich der Arm nach oben. Gebt
mal im Feld "Von:" den Wert -10, und unter "Bis:"
den Wert 10 ein.
Wählt jetzt das
Baggerarmgelenk02 (weiß) aus, und aktiviert den IK-Modus in der
Symbolleiste .
Nun verschiebt das Baggerarmgelenk02 (weiss) nach oben und unten. Ihr
könnt sehen das das Baggerarmgelenkd01(Rot) nur noch beschränkt bewegt
werden kann. Macht die Aktion wieder Rückgängig und deaktiviert in der
Symbolleiste den IK-Modus wieder .
Wählt wieder das
Baggerarmgelenk01(Rot) aus. Beim Beschränken sollte man sich immer genau
überlegen, wie weit ein Objekt sich drehen darf. In unserem Fall müssen
wir darauf achten, daß die Drehung der Arme mit der Hydraulik
übereinstimmt, also die Hydraulikstäbe z.B. nicht zu weit aus den Hydraulikunterteile
herrausragen und somit in der Luft hängen oder zu tief in den Hydraulikunterteilen
versinken.
Benutzt diese Werte
für das Baggerarmgelenk01(Rot):
X, und Z-Achse
deaktivieren
Y-Achse
beschränken auf "Von:" (-40), "Bis:"
(14,5).
Wählt das Baggerarmgelenk02
(weiss) aus und:
deaktiviert die Drehungsachsen X,Z und
beschränkt die Y-Achse "Von:" (-42,5), "Bis:"
(50)
Wechselt ins Ansichtfenster
von Vorn und klickt in der Erstellungspalette
auf Helfer
und wählt "Dummy" aus. Erstellt nun unterhalb des Baggerarmgelek02
(weiss) dort wo eigentlich die BaggerSchaufel wäre, einen kleinen Dummy
und verknüpft ihn mit dem Baggerarmgelenk02 (weiss). Benutzt dabei den
"Auswählen und Verknüpfen" Button
aus der Symbolleiste.
Wählt den Dummy aus und aktiviert den IK-Modus
und verschiebt den Dummy. Wenn alles geklappt hat müsste der komplette
Arm dem Dummy folgen. Dabei sollte er sich wie ein richtiger Baggerarm
bewegen, bis auf die Hydraulik, die noch etwas unkontrolliert in der
Luft rumhängt.... aber das machen wir jetzt:
Macht die Aktion
wieder Rückgängig und deaktiviert den Ik-Modus
wieder! Wechselt ins Ansichtfenster von Vorn, und öffnet in der
Hierachiepalette
das Ik-Rollout (Drehgelenke). Wählt das Hydraulikunterteil01 aus. Da
wir ja die Baggerarmgelenke beschränkt haben, müssen wir auch dort die
richtigen Achsen aktivieren, beziehungsweise die falschen deaktivieren.
Wir wissen
also das das Baggerarmgelenk01 (rot) sich nur um die Y Achse dreht.
Da die Hydraulik01 sich mit dem Gelenk mitbewegt, aktivieren wir auch
hier nur die Y-Achse des Hydraulikunterteil01. Die X- und Z-Achse werden
deaktiviert (eine
Beschränkung der Y-Achse ist hier nicht nötig).
Das gleiche bei
dem Hydraulikunterteil02: im Rollout Drehgelenke die Y-Achse aktivieren
und X und Z deaktivieren.
Wählt nun
Hydraulikstab(01) aus. Bei den Hydraulikstäben brauchen wir keine Drehungsachse,
weil sie sich mit den Hydraulikunterteilen mitdrehen. Also dort alle
drei Drehungsachsen X,Y, und Z deaktivieren.
Schliesst nun das Rollout Drehgelenke und öffnet das Rollout Gleitgelenke:
Da die Hydraulikstäbe
sich in den Hydraulikunterteilen auf- und abbewegen sollen, müssen wir
eine Gleitgelenkachse aktivieren. Das auf- und abbewegen geschieht über
die Z Achse (zur Kontrolle: wechselt in das lokale Koordinatensystem
 ,
die blaue Z-Achse des Hydarulikstabes zeigt in die Richtung in die er
auch gleiten sollte).
Also im Ik-Rollout
unter Gleitgelenke die X,Y Achsen deaktiviert lassen, und nur die-Z
Achse aktivieren (auch hier brauchen wir nicht beschränken)!
Speichert die Szene
unter IKBAselfmade ab! Wählt den Dummy aus und aktiviert den IK-Modus
. Wenn wir
jetzt alles richtig gemacht haben und den Dummy bewegen müsste sich
der Arm wie ein richtiger Baggerarm verhalten. Auch die Hydraulik sollte
sich korrekt mitbewegen. Soweit so gut. Macht die Aktion wieder Rückgängig
und deaktiviert den IK-Modus
wieder, wechselt ins Ansichtfenster Vorn. (Einen Zwischenstand der Szene
gibt die Max-Datei IKBa4.max wieder).
4. Das Animieren.
Nun werden wir
den Arm animieren! Maximiert das Ansichtfenster Vorn und aktiviert den
IK Modus .
Wählt den Dummy aus und aktiviert den Animationsmodus. Wechselt nun
zu Frame 33 und verschiebt den Dummy nach oben bis sich die Baggerarmgelenke
nicht weiter bewegen lassen. Wechselt dann zu Frame 66 und verschiebt
den Dummy ganz nach unten so das das Baggerarmgelenk02 (weiss) nach
innen geknickt ist, wieter zu Frame 100 und den Dummy wieder nach oben.
Deaktiviert den
AnimModus wieder und spielt die Animation ab, auf den ersten Blick sieht
alles ganz gut aus aber wenn ihr genau hinschaut seht ihr das die Hydraulikstäbe
sich nicht korrekt bewegen.
Das könnt Ihr verhindern
in dem ihr die IK berechnen lasst. Wir sollten immer noch den Dummy
ausgewählt haben, und uns noch in der Hierachiepalette befinden.
Schaut mal oben im IK Rollout auf Inverse Kinematik: mit dem Button
"IK anwenden" kann man eine IK Bewegung berechnen lassen,
d.h. die Einzelschritte werden genauer berechnet, für jedes einzelne
Glied der IK-Kette werden eine Menge Keys erstellt.
Aktiviert dabei
"Ansichtfenster aktualisieren" (damit kann man das
ganze in den Ansichtfenstern beobachten) und klickt auf "IK
anwenden" (selbstverständlich müsst Ihr immer die IK-Kette
zuerst animieren, bevor ihr "IK anwenden" anwenden
könnt).
Wenn ihr jetzt
die Animation abspielt ist das Ergebniss perfekt. (maxdatei: IKBA_anim.max)
Tja das wars eigentlich
auch schon, natürlich bin mit diesem Tutorial nicht auf alle Eigenschaften
der Inversen Kinematik eingegangen aber vielleicht ist dem einen oder
anderen das Prinzip der Inversen Kinematik jetzt klar geworden.
-Spike-
|