diff --git a/scene/animation/animation_mixer.cpp b/scene/animation/animation_mixer.cpp index f375b2eb83c2..dbd790003a81 100644 --- a/scene/animation/animation_mixer.cpp +++ b/scene/animation/animation_mixer.cpp @@ -2143,14 +2143,22 @@ void AnimatedValuesBackup::set_data(const HashMap &E : p_data) { - data.insert(E.key, get_cache_copy(E.value)); + AnimationMixer::TrackCache *track = get_cache_copy(E.value); + if (!track) { + continue; // Some types of tracks do not get a copy and must be ignored. + } + + data.insert(E.key, track); } } HashMap AnimatedValuesBackup::get_data() const { HashMap ret; for (const KeyValue &E : data) { - ret.insert(E.key, get_cache_copy(E.value)); + AnimationMixer::TrackCache *track = get_cache_copy(E.value); + ERR_CONTINUE(!track); // Backup shouldn't contain tracks that cannot be copied, this is a mistake. + + ret.insert(E.key, track); } return ret; }