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?