### Godot version

v4.2.rc.custom_build [d6a1db2b0]

### System information

Godot v4.2.rc (d6a1db2b0) - Windows 10.0.22621 - Vulkan (Forward+) - dedicated NVIDIA GeForce RTX 3090 Ti (NVIDIA; 31.0.15.4592) - AMD Ryzen 9 7950X 16-Core Processor (32 Threads)

### Issue description

`AnimatedValuesBackup::get_data()` can crash as the internal data map can have nullptr values if any of the tracks were METHOD or ANIMATION types, as `AnimatedValuesBackup::get_cache_copy()` defines that these types of tracks do not get valid copies.

The resulting crash is therefore a null pointer exception.

### Steps to reproduce

1. Open a project with these type of animation tracks.
2. Save the project.

### Minimal reproduction project

https://github.com/godotengine/godot-demo-projects/tree/master/3d/platformer
_animation_set_cache_update(); 
	notify_property_list_changed();
}
void AnimationMixer::get_animation_list(List<StringName> *p_animations) const {
	List<String> anims;
	for (const KeyValue<StringName, AnimationData> &E : animation_set) {
		anims.push_back(E.key);
	}
	anims.sort();
	for (const String &E : anims) {
		p_animations->push_back(E);
	}
}
Ref<Animation> AnimationMixer::get_animation(const StringName &p_name) const {
	ERR_FAIL_COND_V_MSG(!animation_set.has(p_name), Ref<Animation>(), vformat("Animation not found: \"%s\".", p_name));
	const AnimationData &anim_data = animation_set[p_name];
	return anim_data.animation;
}
bool AnimationMixer::has_animation(const StringName &p_name) const {
	return animation_set.has(p_name);
}
StringName AnimationMixer::find_animation(const Ref<Animation> &p_animation) const {
	for (const KeyValue<StringName, AnimationData> &E : animation_set) {
		if (E.value.animation == p_animation) {
			return E.key;
		}
	}
	return StringName();
}
void AnimationMixer::_set_process(bool p_process, bool p_force) {