Skip to content

Commit

Permalink
Merge pull request #79403 from TokageItLab/fix-negative-timescale-tra…
Browse files Browse the repository at this point in the history
…nsition

Fix `AnimationNodeTransition` with negative time scale
  • Loading branch information
YuriSizov committed Jul 24, 2023
2 parents fb2c3ae + 1ac2bdd commit 752b89d
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions scene/animation/animation_blend_tree.cpp
Expand Up @@ -1010,6 +1010,7 @@ double AnimationNodeTransition::_process(double p_time, bool p_seek, bool p_is_e
}

double rem = 0.0;
double abs_time = Math::abs(p_time);

if (sync) {
for (int i = 0; i < get_input_count(); i++) {
Expand All @@ -1024,9 +1025,9 @@ double AnimationNodeTransition::_process(double p_time, bool p_seek, bool p_is_e
rem = blend_input(cur_current_index, p_time, p_seek, p_is_external_seeking, 1.0, FILTER_IGNORE, true, p_test_only);

if (p_seek) {
cur_time = p_time;
cur_time = abs_time;
} else {
cur_time += p_time;
cur_time += abs_time;
}

if (input_data[cur_current_index].auto_advance && rem <= xfade_time) {
Expand Down Expand Up @@ -1058,10 +1059,10 @@ double AnimationNodeTransition::_process(double p_time, bool p_seek, bool p_is_e

blend_input(cur_prev_index, p_time, use_blend && p_seek, p_is_external_seeking, blend, FILTER_IGNORE, true, p_test_only);
if (p_seek) {
cur_time = p_time;
cur_time = abs_time;
} else {
cur_time += p_time;
cur_prev_xfading -= p_time;
cur_time += abs_time;
cur_prev_xfading -= abs_time;
if (cur_prev_xfading < 0) {
set_parameter(prev_index, -1);
}
Expand Down

0 comments on commit 752b89d

Please sign in to comment.