Topic mit Navigation öffnen

Drehreihenfolge

Dieses Auswahlmenü ist nur für die Animatoren unter Ihnen interessant. Es kann die Auswirkungen des gefürchteten "Gimbal Locks" minimieren.
Betrachten Sie sich einmal die folgende Problemstellung:

Sie haben hier einen für die Animation vorbereiteten Charakter mit komplexen Hierarchien. Stellen Sie sich jetzt vor, Sie wollen in der Vorderansicht den Schulterjoint des rechten Arms mit einer vermeintlich simplen Drehung von oben nach unten animieren. Erstellen Sie also Keys für einmal Fingerspitzen oben und einmal Fingerspitzen unten. Wenn Sie jetzt die Animation abspielen und von oben auf die Animation blicken, sehen Sie statt der erwarteten ausschließlich senkrechten Drehung einen Schlenker (rechts oben in der Abbildung). Das ist der "Gimbal Lock"-Effekt; hier rel. schwach, kann in Extremfällen aber zu völlig abnormen, korkenzieherartigen Bewegungen führen.

Nun, wie kann die Drehreihenfolge helfen, diesen Effekt zu minimieren? Dazu müssen Sie nichts weiter tun, als VOR der Animation einen Blick auf die Jointachsen zu werfen und feststellen, um welche der Jointachsen bei der geplanten Animation am wenigsten gedreht wird. In diesem Falle ist das die links markierte X-Achse. Bei Drehreihenfolge wählen Sie jetzt eine der Optionen, wo die X-Achse an 2. Stelle steht. Wenn Sie jetzt erneut animieren, erhalten Sie eine Bewegung wie rechts unten in der Abbildung zu sehen. Zwar ist ein minimaler, kaum auffälliger Schlenker immer noch zu sehen, allerdings ist das Ergebnis jetzt wesentlich besser als vorher.

Ein weiteres Hilfsmittel zu entscheiden, welche Drehreihenfolge zu wählen ist, stellt die Option Gimbal-Drehung dar. Aktivieren Sie diese und schalten Sie das Werkzeug Drehen aktiv:

Links ist die Drehreihenfolge mit HPB vorgegeben, rechts mit XYZ.

Hier können Sie direkt anhand der Rotationsbänder (VOR einer Animation) sehen, ob die geplante Animation in einer bestimmten Drehrichtung zum Erfolg führen kann oder nicht. In der Abbildung links sehen Sie die roten, grünen und blauen Rotationsbänder so angeordnet, dass eine Drehung (Roter Pfeil) schon gar nicht möglich scheint (keines der Bänder liegt in der Drehebene). Diese Animation wird Probleme mit dem "Gimbal Lock" bekommen.

Wechseln Sie einfach die Drehreihenfolge durch, bis eines der Bänder ungefähr in der Drehebene liegt (rechte Abbildung: blau) oder dieser möglichst nahe kommt. Wenn Sie dann animieren, werden Sie wenig Probleme mit dem "Gimbal Lock" bekommen.

Noch ein paar weitergehende Anmerkungen zur Entstehungsweise des Gimbal Lock:

Riskant wird es immer dann, wenn Sie in Abhängigkeit von der Rotationsreihenfolge den jeweils 2., also mittleren Wert (von unten angegebener Markierung) in die Nähe von 90° (bzw. 270°) bringen:

Am besten hat der entsprechende Parameter immer einen minimalen Wert nahe oder gleich 0°.
Traditionell lassen sich diese Problematiken auch durch die Animation eines übergeordneten Nullobjektes umgehen. Hilfreich können ebenfalls die eingefrorenen Selektionen weiter unten im Dialog sein.

Quaternion-Rotation

Hinweis:Vor CINEMA 4D R18 gab es das Quaternion-Tag (dieses erscheint nur noch beim Laden alter Szenen und kann nicht mehr neu erzeugt werden), dessen Funktionalität jetzt als Objekt-Eigenschaft implementiert wurde.

### Allgemeines

Sicherlich haben Sie schon von dem gefürchteten Gimbal Lock im Zusammenhang z.B. mit Charakter-Animation gehört, bzw. noch schlimmer: Sie haben schon mit ihm zu tun gehabt!

Der Gimbal Lock entsteht, wenn der Winkelwert P +/- 90° aufweist, denn dann haben Heading und Banking, also H und B die gleiche Auswirkung. Das Resultat ist, dass eine Dimension verloren geht und selbst bei kleinen Rotationen große Winkelsprünge erzeugt werden.

Die Quaternion-Funktionalität, die übrigens ausschließlich auf Rotationsanimationen wirkt, bietet Abhilfe!

Standardmäßig benutzt CINEMA 4D Euler-Winkel um die Rotation von Objekten zu interpolieren (Euler: Kreiselsystem für entkoppelte Winkel (HPB), Interpolation im euklidischen (rechtwinkl.) 3D-Raum).

Die einzelnen Komponenten der Euler-Winkel werden unabhängig voneinander interpoliert, d.h. der Mittelwert aus HPB (0,0,0) und HPB (60,60,60) wäre z.B. HPB (30,30,30). Dass der Schwenk von 0,0,0 über 30,30,30 nach 60,60,60 nicht unbedingt der kürzest mögliche ist, kann man selbst im Editor ausprobieren.

Gesucht ist also eine Interpolation, welche den KÜRZESTEN Weg von A nach B nimmt, das ist nämlich auch das, was der User manuell machen würde.

Genau diese Randbedingung erfüllen Quaternionen. So geht ein Quaternion von 0,0,0 nach 60,60,60 über 35.104 °,22.83 °,35.104 °!

Damit macht ein Quaternion keine unnötigen Schlenker, und mit anderen Worten: der Gimbal Lock wird vermieden.

Nun werden Sie sich sicherlich fragen, warum man dann nicht gleich ALLEN Objekten prinzipiell eine Quaternion-Animation verpasst. Ganz einfach – wo Vorteile sind, da lauern oftmals auch Nachteile – und so sieht es auch mit der Quaternion Interpolation aus. Solange die Änderungen einer Rotation unterhalb von 180° liegt, kann Quaternion wunderbar arbeiten, darüber hinaus bekommen Sie Probleme, denn wie schon erwähnt, sucht sich das Quaternion den kürzesten Weg.

Anmerkung:Der kürzeste Weg für eine Quaternion Expression, ist immer der auf einer 3D Kugel. Man kann sich das ungefähr so vorstellen, dass die Quaternioneninterpolation einer Drehung um eine fixe Achse entspricht. Und zwar der Achse, um die mit dem kleinsten Winkel gedreht werden muss. Diese hat in der Regel mit den Objektachsen nichts zu tun und ist bei jeder Interpolation anders.

### Beispiel

Schauen wir uns folgendes Beispiel an:

1. Eine Objekt soll um eine Achse um mehr als 180° gedreht werden.
2. Dazu würden Sie also einen Key für die Ausgangssituation setzen, den Zeitschieber an die Position setzen, an welcher die Rotation beendet sein soll, dann das Objekt nach bewährter Methode nehmen, die entsprechende Rotation einstellen und einen weiteren Key setzen. So weit so gut. Eins schon mal vorweg gesagt, egal ob Sie nun die Quaternion-Funktionalität eingesetzt haben oder nicht, an den beiden Zuständen, also Anfangs- und Endsituation ändert sich absolut nichts! Beide Interpolationsmethoden gehen nur unterschiedliche Wege zum Ziel.
3. Schauen wir uns zunächst die althergebrachte Methode von CINEMA 4D an, die Drehung per Euler-Winkel:
   Sie haben das Objekt per Key (z.B. B, Bank) um 220° gedreht, also dreht sich unser Objekt von der Kameraposition aus gesehen im Uhrzeigersinn um 220°:
4. Nun zum Verhalten per Quaternion. Wie ja schon definiert, sucht sich diese Interpolationsmethode immer den kürzesten Weg zum Ziel! Der kürzeste Weg hier ist allerdings nicht (vom Betrachter aus gesehen) die Drehung im Uhrzeigersinn um 220°, sondern die genau entgegengesetzter Richtung um nur 140°:

Mit der aktivierten Option Quaternion-Rotation schalten Sie für das entsprechende Objekt die Quaternion-Animation (die Keywerte bleiben identische Euler-Werte, nur die Interpolation zwischen diesen ändert sich) an. Bei deaktivierter Option wird die bekannte Euler-Animation verwendet.

Beachten Sie, dass sich die Quaternion-Interpolation nur auf lokalen Winkelspuren und nicht auf evtl. vorhandene eingefrorene Koordinaten wirkt.

In den Key-Eigeinschaften gibt es eine separate Option Quaternion-Interpolation, mit der Sie die zeitliche Interpolation beeinflussen können.

Folgende Unterschiede zur Euler-Animation ergeben sich:

- in der Zeitleiste werden die Namen der drei Winkelspuren jeweils um ein angehängtes "(Q)" ergänzt, also z.B. "Winkel.P (Q)".
- in der Zeitleiste werden die drei Winkelspuren ("Winkel.H/P/B (Q)") als Einheit angesehen, d.h. bei zeitlicher Verschiebung (oder Erzeugen/Löschen) eines Keys folgen die anderen beiden.
- Key-Tangenten werden von Quaternions nicht unterstützt.
- die Darstellung von Quaternions als F-Kurven ist oft technisch nicht sinnvoll (besonders bei Animationen über 180° zwischen 2 Keys) möglich und ist daher von begrenzter Aussagekraft.

### Wann sollten Sie Quaternion-Animationen verwenden und wann nicht?

Greifen Sie auf Quaternion-Animationen zurück:

- wenn Sie Probleme mit Gimbal-Lock und springenden Achsen haben.

Verwenden Sie Quaternion-Animationen NICHT :

- wenn die Winkeldifferenz zwischen 2 Keys 180° überschreitet (es wird immer entlang des kürzesten Weges gedreht).
- wenn Sie F-Kurven feinjustieren (also das "Timing" ändern wollen) wollen.