3
$\begingroup$

I'm trying to animate my clock second hand with an elastic F-curve to make it more snappy like a real hand. The thing is I'm not good at advanced math to figure out the equation for its curve, so either that I have to duplicate the first keyframe repeatedly and changing the rotation value for every second which will result in a lot of keyframes, or go learn advanced algebra to figure out the curve.

Basically I want a curve that looks something like this. enter image description here

Every second, the second hand rotates 6 degrees, and the rotation should not be on a straight line with no easing, but go like this to make it look like it's affected by a little inertial bounce. Currently the only way I can do this is to make the first keyframe elastic, then duplicate it, move it 24 frames (1 second) to the left and up 6 degrees of rotation. But then I'll have to do that 900 times for 15 minutes of animation. So I'd appreciate if anyone can tell me if this curve is possible at all, and if it is, how to generate it with the Generator Modifier.

Edit: I've asked a couple of algebra people and they give this function which is very close to what I'm look for. The question now is whether it can be used in Blender.

Edit 2: Tavi Kohn has given me a much simpler answer that I was too stupid to realize. Thanks a lot. Consider this one done.

$\endgroup$
  • 1
    $\begingroup$ Overlooking an obscure feature of Blender is not the same as being stupid, this was an excellent question that I learned from too in answering ;) $\endgroup$ – Tavi Kohn Aug 2 '18 at 23:27
3
$\begingroup$

It looks like you can do this with the "Cycles" curve modifier instead of the Generator modifier.

I did the exact same thing as you to get the elastic curve, but only added two keyframes, one on frame 0, and one on frame 30 (I tried this at 30fps). For the elastic settings, I used an amplitude of 0.1 and a period of 15 frames (1/2 framerate).

To use the Cycles curve modifier, I set it up with these settings: Cycles modifier settings

Note that "Before" and "After" are set to "Repeat with Offset" instead of the default "Repeat Motion" so they will keep ticking forward, instead of resetting back to the start position every cycle. This is what the result looks like: Clock ticking curve

The rotation decreases so the object rotates clockwise, instead of counter-clockwise.

You don't have to use an elastic curve though if you don't want to. If you add keyframes in between the first and last, they will be included in the animation, allowing you to have a more custom ticking animation, like this: Sharper tick animation

Lastly, I would be sure to poke around with the Cycles modifier and see what you can do with stuff like the Restrict Frame Range options, so that you can stop the clock, or only use a specific region of frames. (Ex: if you want to animate it rewinding later, so that only the ticking part of the animation is repeated).

$\endgroup$
  • $\begingroup$ Oh! So that's how you repeat it properly, with the Repeat with Offset option! This is brilliant! $\endgroup$ – Vun-Hugh Vaw Aug 2 '18 at 22:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.