When the “Update Rate Optimization” function is turned on, use the “Rewind Debugger” to record the calculation results of the curve: when the value should change rapidly, it takes more time to get the correct result.
It really just looks like its smoothing out the values on an Async basis (the reason the gap is not constant has to be async).
What is the end goal?
What is it you expect it to do?
Any changes below .5 milliseconds arent going to be visible or perceptible to anything but the animation system.
(Basically its just about enough time for the animation to f up royally and twitch, but as a player if there is no after-effect / motion blur from movement you wouldn’t be able to pick out the issue).
You could try to make the transiltions a bit longer. More frames (fps) to interpolate gives it a bit less of a chance of hanging up the smoothing process.
Overall, if you expect to go from 0 to 1 in a single frame, then the rate smoothing has to be off…
These Curve Are Generated By Animation Data Modifiter. Every time the animation is updated, I need to get the original value corresponding to the time of the currently playing animation, not the smoothed result.
What I don’t understand is that it originally takes 1 frame to go from 1 to 0, but after the optimization is turned on, it takes about 30 of frames to smooth to 0. Turning on the optimization will skip 3 frames to update the animation logic once, logically speaking, the curve value must reach 0 at the third frame.
You may actually need the value at the current time right now, but im willing to be that eventually you’ll need the value at a custom time.
So you may as well break into the source, extract the function / keep it open to peek at it, and code up a costum function to get your value out at the time you query for.
Expose it to BP or what not (it’s always faster to just use c++) and that should get what you need - while going around this possible bug, if you query the animation directly.
It turns out this was actually a bug in the Engine.
They fixed it a few months after this post was created, therefore it only was released in 5.4. This is the commit with the fix.
It’s a simple bug actually haha. Unfortunately for our project we can’t update from 5.3 so easily, and having a custom engine version is kinda hard inside a company…
Anyways, if you package your own projects and use the source version, simply use 5.4 or perform the changes based on the github commit link.