I'm making an animation where I would like to automatically add a little bit of vibration/jitter to the animated character during moments of high velocity. Ie, if his arm is moving fast, add a small amount of variation to the movement. I'm doing this to break up the smoothness of the animation where everything seems to be moving in perfect arcs.

For reference, here's the test animation as it stands now.


Not bad, I don't think, but still too robotic. I want more variations. I'm actually thinking about redoing all of yoda's animation with motion tracking my hand as if it's a puppet (I'm definitely going for more of the ESB, puppet look to the look of Yoda and his movement, also there is background footage it's being composited into, pps, I'm trying to figure out why at the end of this section of animation his hair all of a sudden starts to shimmer, but that's another topic).

Animating tiny variations by hand throughout a 2 minute animation is daunting, but may have to be the answer.

There is the noise F Curve modifier, and I feel like the answer may lie here. I've been trying to manually set a start and end time within the range where the character is moving quickly, but again, it's very tedious, especially when you have to copy and paste it to three to six curves (for xyz loc, and sometimes rot) for every time the curve is steep.

And there's maybe the key, I can see when a curve is steep (meaning the animated object has high velocity) but I need to tell Blender that. I'm not a scripter, but I've been starting to look into it as a possible solution (it's about time I learn anyway). Could this be done with a script?

Is there some way to have the velocity change the amount of random jitter in a noise F-Curve modifier using a driver or something of that nature?

I've also been looking at the new animation nodes as a possibility, but a lot to take in there as well. Will continue to plug away at it til I find an answer, but if someone can point me in a direction it could help my search! Thanks guys.



1 Answer 1


There's possibly a script-level way of achieving this, but I strongly suggest trying the NLA(Non-Linear Animation) editor first. It allows you to set F-Curve modifiers on-top of entire actions (so all the channels if need be). Fairly quickly too. Learning to use the NLA isn't too hard, and the payoff can be big, especially for the long animation you have. Check out some basics of the NLA here: https://www.blender.org/manual/editors/nla.html

To get the jitter on certain parts of the animation, try adding a 'noise' modifier to the strip. You could also try adding another animation layer 'on top' of your current one, and keyframe the noise on that strip instead, and then ease into it's influence using the Blend in/out fields.

  • $\begingroup$ Sounds like a good compromise. It's been a while since I played with NLA strips, as I do most of my animation at the keyframe level, but I'll definitely give it a go. $\endgroup$
    – Blazer003
    Mar 29, 2016 at 23:45

You must log in to answer this question.

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