Change NodeOneShot
fading to uses self delta instead of input delta
#101792
+15
−10
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
use_self_delta_to_fade
to NodeOneShot to fade finished animation #101788Predict the time scale from the delta difference so that the fading time does not depend on the input AnimationNode's delta.
This breaks compatibility a bit because it changes the behavior of the existing fading time scaled by the downstream time scale. However, since the scaling is specific to NodeOneShot, this should bring it closer to the behavior of other AnimationNodes.
It is possible that a strange state may be produced if the timescale is changed during a fade, but since NodeTransiton and StateMachine should have the same problem, I judge that it is not a problem. The case where the timescale is changed during a transition in AtEnd with a fade is quite niche, IMO.
The problem of the fade time and end time being out of sync as in #87009, should no longer occur, but the fade duration will change, as explained below.