Page MenuHome

Need delay option for noise modifier
Closed, ResolvedPublic


Hi Joshua;
This has come up multiple times for multiple animators, so I figure it is worth posting here.
The f-curve noise modifier 'phase' affects some kind of seed, but doesn't just offset the curve in time. This makes it hard to create overlap or follow through on the noise modifier.

Changing the phase option might break existing files, so it would be good to have an 'offset' parameter exposed in the ui for this purpose.


Differential Revisions
D295: Add a time offset to the fcurve noise modifier

Event Timeline

bassam kurdali (bassamk) set Type to Design.
bassam kurdali (bassamk) created this task.
bassam kurdali (bassamk) raised the priority of this task from to Needs Triage by Developer.
Joshua Leung (aligorith) triaged this task as Normal priority.Jan 19 2014, 12:38 PM

Could you explain further how/when this would be useful, and what would be expected from such a feature?

From the description you've given, I'm not really sure if I actually understand what you're getting at...

so imagine you've noise on a parent bone's rotation to give it some shake
and you want the child to be offset a bit, a bit like follow through

currently there is no way to do that! but it is a very normal thing that animators want to do.

What if "time offset" were another modifier in the stack entirely? That way, it could be added as part of a chain with any modifier or keyframe animation. You could achieve @bassam kurdali (bassamk) 's effect and many others without adding too much more clutter to one modifier.

Can you not use the "Restrict Frame Range" options in the modifier?

Alternately, if you want to use the same modifier twice in the same animation, you can keyframe the Influence option. Set it to 0 when not used and keyframe to 1 and back to 0 when you need it.

I would to open the same bug report, because I needed to move an animation curve with a heavy noise modifier applied and didn't can find a way to keep the same noise effect to the curve in its new position.

Offset is a very necessary option for the Noise modifier. Maybe for any curve animation modifier...

@Sam Brubaker (rocketman), this would be nice, but can't replace the functionallity of a Offset option on the noise modifier. A offset modifier would add an offset to entire existing curve, not just the Noise modifier effect about the existing curve.

@Jon McKay (ammusionist), Restrict Frame Range can't do offset of the effect of a modifier like Noise.

@Sam Brubaker (rocketman): might be interesting, but I'm not sure that really fits with the modifier system; I guess @alligorith can really say that for sure though.

@Jon McKay (ammusionist): we do use restrict frame range. this is quite different:

Imagine you have two bone chain (for simplicity) representing some loose piece that needs to be animated with some noise

You want the parent to have a noise modifier
The child should be following the parent but later: this is a basic way to do follow through. However, with the way noise modifier works, this is not possible.

restrict frame range changes where the start and end happen: very very awesome, but: it does not affect where the individual peaks and troughs of the noise happen. So the animation will have the same timing, just the effect on different frames - not exactly what is called for here.

I bring it up because *every single* animator on the tube project who has used noise modifier has asked for this option (including me!) So it seems like a good idea.

@Joshua Leung (aligorith) I think this is a bite sized thing I could do; I've got some of the relevant files open, care to mentor me towards making a patch for this?

Ok, I have successfully added offset!!! now I just need to figure out how to make a patch :D

Ok folks, I've made this patch:
I dunno if this is the right way to include it in the bug

Very nice, Bassam!! Thank you! I hope it get accepted. :-D

feel free to test and see if it does what you would like it to, and report here!

Joshua Leung (aligorith) closed this task as Resolved.Feb 10 2014, 4:37 AM

Committed as 5cf987c