2
0
mirror of https://github.com/godotengine/godot.git synced 2024-12-15 10:12:40 +08:00

Merge pull request from SaracenOne/animation_tree_parallel_state_machine_fix

Allocate unique `track_blends` vector for animation states
This commit is contained in:
Yuri Sizov 2023-05-18 21:54:35 +02:00 committed by GitHub
commit 5bb7d585a5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 3 additions and 3 deletions

View File

@ -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;
@ -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) {

View File

@ -68,7 +68,7 @@ public:
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;