diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml
index 304caeef438f..c164fe43636f 100644
--- a/doc/classes/AnimationPlayer.xml
+++ b/doc/classes/AnimationPlayer.xml
@@ -15,6 +15,17 @@
https://godotengine.org/asset-library/asset/678
+
+
+
+
+
+
+
+
+ A virtual function for processing after key getting during playback.
+
+
diff --git a/doc/classes/AnimationTree.xml b/doc/classes/AnimationTree.xml
index 49bc4ee6af7a..3a3e8bb1fa02 100644
--- a/doc/classes/AnimationTree.xml
+++ b/doc/classes/AnimationTree.xml
@@ -12,6 +12,17 @@
https://godotengine.org/asset-library/asset/678
+
+
+
+
+
+
+
+
+ A virtual function for processing after key getting during playback.
+
+
diff --git a/scene/animation/animation_player.cpp b/scene/animation/animation_player.cpp
index e66eb8c1de7b..77d82990d1f5 100644
--- a/scene/animation/animation_player.cpp
+++ b/scene/animation/animation_player.cpp
@@ -451,6 +451,15 @@ static void _call_object(Object *p_object, const StringName &p_method, const Vec
}
}
+Variant AnimationPlayer::post_process_key_value(const Ref &p_anim, int p_track, Variant p_value, const Object *p_object, int p_object_idx) {
+ Variant res;
+ if (GDVIRTUAL_CALL(_post_process_key_value, p_anim, p_track, p_value, const_cast