0
$\begingroup$

In the process of animating, I have come to realise that my rig is doing a strange twirl, which isn't desired.

It's very easy to emulate, simply open a new file and set the cube's rotation setting to Quarternion, and then keyframe it at it's base position, and then keyframe it 360 degrees around any axis. When you hit play, it doesn't rotate.

EDIT:

Thanks to FFeller for pointing the idea of intermediate keyframes, which solve the problem on the basic cube, but on my rig, which was generated by rigify, it still applies. It seems eerily similar to a gimbal lock problem, but aren't Quarternions supposed to solve that problem?

As such, how can I solve this problem, as more intermediate keyframes don't seem to work.

$\endgroup$
2
  • 1
    $\begingroup$ You have to insert an intermediate keyframe for example rotate 180° twice. $\endgroup$
    – FFeller
    Commented Feb 26, 2020 at 17:04
  • $\begingroup$ The intermediate keyframes work perfectly with the cube, but don't seem to work with my rig. For context, I'm using rigify, and it's the hand.ik bone, but as soon as it gets to a certain point, it twists backwards into the last keyframe. Aren't quarternions supposed to solve gimbal lock, which what I believe is happening here? $\endgroup$ Commented Feb 26, 2020 at 22:47

1 Answer 1

1
$\begingroup$

Quaternions are only in the range of -1 to 1, and so 0 and 360 (and 720 and 1080 etc.) are basically identical. That's why the cube doesn't rotate, because it has nowhere to go.

Quaternions also generally take the shortest path. That's why you need multiple keyframes. The algorithm might be deciding that it's quicker to go back the way you came vs. go forward, which gives you undesirable rotations. More keyframes should solve it.

$\endgroup$
1
  • $\begingroup$ Thanks for the clear explanation, and it seems to work fine with some extra "guiding" keyframes. $\endgroup$ Commented Mar 1, 2020 at 5:46

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .