Organic animation in Blender looks a lot more convincing when everything has a bit of jitter to it. I'm trying to find an efficient, clean way to do this.

F-Curve modifiers are the obvious solution, but they have a few issues:

  • I need to apply a modifier for every single channel I want jitter on. This means making at least three copies for X/Y/Z position
  • With Euler rotation, I can apply noise to the X/Y/Z axes, and that works very well. Quaternions are much less straightforward. I can't predict the impact of jittering one or more of the W/X/Y/Z values; they're interdependent and rather incomprehensible!
  • Briefly enabling/disabling the jitter is not easy. You can't keyframe or add a driver to the Influence value, and the Restrict Frame Range values similarly static.

Some other answers have suggested using the non-linear animation system. However, I can't find a way to do anything but add jitter to every single channel the strip controls, which isn't viable (even if I wanted noise on every channel, this applies the same noise function to everything). I'd like to have different amplitudes/frequencies on different bones, along with different offsets so the channels aren't all perturbed identically.

I might just be misunderstanding how it works, of course!

I'm considering writing a script to do it for me, which seems pretty viable (input the bone and the jitter parameters, then create the modiifers automatically). However, this is still going to leave a ton of F-Curve modifiers lying around everywhere.

Animation Nodes actually sounds promising - it'd be fantastic if I could just take my original, jitter-free data and add noise to it via nodes, which are easy to create and combine. I'm not sure if this is possible, though.

So, in short: is there a "best practice" for accomplishing this that I've missed, or do I just need to bite the bullet and do some manual work?


Your Answer

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

Browse other questions tagged or ask your own question.