### Godot version

4.0 RC1

### System information

Any

### Issue description

RootMotionView does not process rotations correctly. 

This problem was pointed out in #58061 and #66510 in the past, but was closed with some fixes and a recommendation to solve it by keeping the current rotation on the script side.

However, for RootMotionView, that work around is not available since it cannot detect the firing of the animation and therefore the current rotation cannot be retained.

As a result, if a moving to forward animation is played after a rotation animation, the moving direction will be strange.

https://user-images.githubusercontent.com/61938263/217674951-16148b54-2667-4506-a5df-644d4ad64e5d.mp4


### Steps to reproduce

A moving to forward animation is played after a rotation animation.

### Minimal reproduction project

[rootrot2.zip](https://github.com/godotengine/godot/files/10690681/rootrot2.zip)

Vector3 root_motion_position = Vector3(0, 0, 0);
	Quaternion root_motion_rotation = Quaternion(0, 0, 0, 1);
	Vector3 root_motion_scale = Vector3(0, 0, 0);
	friend class AnimationNode;
	bool properties_dirty = true;
	void _tree_changed();
	void _animation_node_renamed(const ObjectID &p_oid, const String &p_old_name, const String &p_new_name);
	void _animation_node_removed(const ObjectID &p_oid, const StringName &p_node);
	void _update_properties();
	List<PropertyInfo> properties;
	HashMap<StringName, HashMap<StringName, StringName>> property_parent_map;
	HashMap<ObjectID, StringName> property_reference_map;
	HashMap<StringName, Pair<Variant, bool>> property_map; 
	struct Activity {
		uint64_t last_pass = 0;
		real_t activity = 0.0;
	};
	HashMap<StringName, Vector<Activity>> input_activity_map;
	HashMap<StringName, Vector<Activity> *> input_activity_map_get;
	void _update_properties_for_node(const String &p_base_path, Ref<AnimationNode> node);
	ObjectID last_animation_player;
protected:
	bool _set(const StringName &p_name, const Variant &p_value);
	bool _get(const StringName &p_name, Variant &r_ret) const;
	void _get_property_list(List<PropertyInfo> *p_list) const;
	void _notification(int p_what);
	static void _bind_methods();
	GDVIRTUAL5RC(Variant, _post_process_key_value, Ref<Animation>, int, Variant, Object *, int);
	Variant post_process_key_value(const Ref<Animation> &p_anim, int p_track, Variant p_value, const Object *p_object, int p_object_idx = -1);
	virtual Variant _post_process_key_value(const Ref<Animation> &p_anim, int p_track, Variant p_value, const Object *p_object, int p_object_idx = -1);