Controlled random movement via F-Curve modifiers

Hello everybody,

I have an object with four location keyframes: from X:0 Y:0 Z:0 to X:1 Y:0 Z:0 to X:1 Y:1 Z:0 to X:0 Y:1 Z:0. Their timing makes no difference for this example. What I would like to do is make the animation last (say) 125 frames and have the object move in a random non-cycical order to one of the four defined locations. Is that possible using a F-Curve modifier or a combination, would I have to keyframe it all, or am I attacking this problem from the wrong angle?

Use a noise thing, it might be for a driver, I don’t remember. It randomly generates curves and you can play around with their strength. That’s how I make fireflies or a TV flicker

Thanks, Tommy, but as I said, I’d like the object to jump to one of the four defined locations. The noise generator unfortunately won’t do that, regardless of the settings.

I don’t know if you can do this with simple modifier work. Modifiers work on the y axis, not the time axis.

But there are things you can do to repeat keyframes (copy/pasting in graph editor view), and then you can randomize keyframe timing through the whole thing by turning on proportional editing with (wide) random falloff and dragging in the x axis.

That falloff affects different channels independently. If you want the location channels linked, you can drive them from some single-channel property, like the x-rotation of an empty, and then keyframe and randomize that value instead.

Depending on what you want to do, there can be constraint-based solutions. You can shrinkwrap an object to one of four corners pretty easily, you can shrinkwrap to a noise-displaced sphere to get initial randomness about which of the four corners get chosen, and you can uv warp your sphere to have that random value change over time. You can use rigid-body physics to move smoothly to shrinkwrapped positions if you don’t want to jump.

I’m not sure if I’m making myself clear…a picture’s worth a thousand words…


Here are my four keyframed locations. Instead of moving in a circular cyclic pattern as illustrated here, which I could easily do with a F-Curve modifier (Cycles), during my animation I’d like the red box to randomly jump from any of the four defined coordinates to any other of the four coordinates…in a random fashion. If I add the Noise F-Curve modifier to the X and Y F-curves at best it would arbitrarily jump to any point in X-Y space between and not exactly on one of the four defined coordinates (e.g, X:0.352 Y:0.444 Z:0).

In any case, at this point I have copy-and-pasted the keyframes in a “random” order, something I’d hoped to avoid. If anyone can think of a way to randomly animate an object to defined coordinates, I’d greatly appreciate it as it could be handy for future projects animating Vegas-style lights or points on a map or whenever a random animation with pre-defined location coordinates is needed.

If you want it to jump between points rather than move smoothly, combine the noise f-curve with a constraint. Place a non-rendering plane with verts at the points you want and give your jumper a shrinkwrap constraint targeting the plane (nearest vertex mode).

Bandages, I must admit it took me a while before your last suggestion sunk in but it’s an effective solution. The only (small) problem is that I can’t control the timing precisely (for example, change position every X frames) but I can live with that. Thank you.