Modify Curve node apply mode Weighted Moving Average, how does it work?

I took a screen snip of the node and blend mode in question. I have a blendshape in my skeletal mesh and would like to use this node to control my BS. It works fine with the default apply mode Blend.

My understanding of the WMA mode is that if I put a value 1 into the BS pin and 0.5 into the alpha, it would be 0.5 at the first frame, 0.75 at the second frame, 0.875 at the third frame, etc. Eventually, the weight should be infinitely close to 1. This would be an easy way to get a simple fade-in effect.
However, my test result is, when I use WMA mode, it doesn’t work at all. No matter the BS and alpha value, the BS simply doesn’t change.

My question is just how does it work? What’s it for? Can I get a simple example illustrating the function of this apply mode?

Well, I kind of figured out how to get it working… Hook a WMA Modify Curve after a Blend Modify Curve and set both pin values to 1, set the WMA alpha to 0.5 and the Blend alpha to 1.

But I still don’t understand why does this work…

Hi I just encountered this and even aftet a year though it still doesn’t work. It is for example used in the Face AR Example where they use it to “denoise” the ARKit input but no matter what WMA param you set it doesn’t do anything. Is this intended? If so can anyone confirm that this changed and why since 4.20?

Between 4.20 and 4.25 nearly all animation internal aspects have been changed. Including most of the animation UI.

If they added the node in, at some point or another it was doing something.

It’s still doing something but not in a way that is shown in nearly all motion capture tutorials from epic, either new or old.

The question is then, how would one currently apply Weighted Moving Average curve modifier on all curves (not per curve) coming from a pose either Live Link one or any other basically.

bump~ ! trying to figure this out now with MetaHumans

Do you have any news about this? Thank you

Hi! Just figured this out, or at least one way of using it, if anyone’s still looking to do this. I’m using it with faceware animation data, but could work with anything. You need data for the current and previous frames to compare between, so in the event graph I first set the “current” data to the “previous” data, and then take the new incoming values as the “current” data. Then, go into the animGraph and make two modify curves. On the first one plug in all of the previous data values and set the apply mode to blend. On the second one, use the current curves, and set the apply mode to weighted moving avereage. Plug the modify curve with the previous data into the source of the one with the current data, and plug that into your output. Play with the alpha on the current data modify blend curve: value of 1 will be exactly the current frame, taking the alpha closer to 0 will give you more smoothed out values. I’m using a value of around .8 for facial motion capture to get smoother values. Hope this helps! :slight_smile: