Skip to content

Commit

Permalink
Merge pull request #51448 from SaracenOne/animation_tree_parallel_sta…
Browse files Browse the repository at this point in the history
…te_machine_fix

Allocate unique `track_blends` vector for animation states
  • Loading branch information
YuriSizov authored May 18, 2023
2 parents 2dc3294 + 18c792f commit 5bb7d58
Show file tree
Hide file tree
Showing 2 changed files with 3 additions and 3 deletions.
4 changes: 2 additions & 2 deletions scene/animation/animation_tree.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ void AnimationNode::blend_animation(const StringName &p_animation, double p_time

AnimationState anim_state;
anim_state.blend = p_blend;
anim_state.track_blends = &blends;
anim_state.track_blends = blends;
anim_state.delta = p_delta;
anim_state.time = p_time;
anim_state.animation = animation;
Expand Down Expand Up @@ -1124,7 +1124,7 @@ void AnimationTree::_process_graph(double p_delta) {
ERR_CONTINUE(!state.track_map.has(path));
int blend_idx = state.track_map[path];
ERR_CONTINUE(blend_idx < 0 || blend_idx >= state.track_count);
real_t blend = (*as.track_blends)[blend_idx] * weight;
real_t blend = (as.track_blends)[blend_idx] * weight;

Animation::TrackType ttype = a->track_get_type(i);
if (ttype != Animation::TYPE_POSITION_3D && ttype != Animation::TYPE_ROTATION_3D && ttype != Animation::TYPE_SCALE_3D && track->type != ttype) {
Expand Down
2 changes: 1 addition & 1 deletion scene/animation/animation_tree.h
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ class AnimationNode : public Resource {
Ref<Animation> animation;
double time = 0.0;
double delta = 0.0;
const Vector<real_t> *track_blends = nullptr;
Vector<real_t> track_blends;
real_t blend = 0.0;
bool seeked = false;
bool is_external_seeking = false;
Expand Down

0 comments on commit 5bb7d58

Please sign in to comment.