diff --git a/scene/animation/animation_blend_space_1d.cpp b/scene/animation/animation_blend_space_1d.cpp index 4716a8fcec3..acbc892d478 100644 --- a/scene/animation/animation_blend_space_1d.cpp +++ b/scene/animation/animation_blend_space_1d.cpp @@ -380,7 +380,13 @@ AnimationNode::NodeTimeInfo AnimationNodeBlendSpace1D::_process(const AnimationM Ref na_c = static_cast>(blend_points[cur_closest].node); Ref na_n = static_cast>(blend_points[new_closest].node); if (na_c.is_valid() && na_n.is_valid()) { + na_n->process_state = process_state; + na_c->process_state = process_state; + na_n->set_backward(na_c->is_backward()); + + na_n = nullptr; + na_c = nullptr; } // See how much animation remains. pi.seeked = false; diff --git a/scene/animation/animation_blend_space_2d.cpp b/scene/animation/animation_blend_space_2d.cpp index 7399fea3171..ee1d4121d59 100644 --- a/scene/animation/animation_blend_space_2d.cpp +++ b/scene/animation/animation_blend_space_2d.cpp @@ -557,7 +557,13 @@ AnimationNode::NodeTimeInfo AnimationNodeBlendSpace2D::_process(const AnimationM Ref na_c = static_cast>(blend_points[cur_closest].node); Ref na_n = static_cast>(blend_points[new_closest].node); if (na_c.is_valid() && na_n.is_valid()) { + na_n->process_state = process_state; + na_c->process_state = process_state; + na_n->set_backward(na_c->is_backward()); + + na_n = nullptr; + na_c = nullptr; } // See how much animation remains. pi.seeked = false;