From 810b1341cef475c28c97cc476f54e1199f5c3d2d Mon Sep 17 00:00:00 2001 From: Hugo Locurcio Date: Fri, 31 Jan 2020 17:56:03 +0100 Subject: [PATCH] doc: Add a short AnimationPlayer versus Tween comparison Many newcomers are confused about which one to choose for animating properties. This should help clarify the situation with regards to AnimationPlayer versus Tween. --- doc/classes/AnimationPlayer.xml | 1 + doc/classes/Tween.xml | 1 + 2 files changed, 2 insertions(+) diff --git a/doc/classes/AnimationPlayer.xml b/doc/classes/AnimationPlayer.xml index 8bc2c34c6d0..bb1754b810b 100644 --- a/doc/classes/AnimationPlayer.xml +++ b/doc/classes/AnimationPlayer.xml @@ -5,6 +5,7 @@ An animation player is used for general-purpose playback of [Animation] resources. It contains a dictionary of animations (referenced by name) and custom blend times between their transitions. Additionally, animations can be played and blended in different channels. + [AnimationPlayer] is more suited than [Tween] for animations where you know the final values in advance. For example, fading a screen in and out is more easily done with an [AnimationPlayer] node thanks to the animation tools provided by the editor. That particular example can also be implemented with a [Tween] node, but it requires doing everything by code. Updating the target properties of animations occurs at process time. diff --git a/doc/classes/Tween.xml b/doc/classes/Tween.xml index 9345cd059a1..97d436c7070 100644 --- a/doc/classes/Tween.xml +++ b/doc/classes/Tween.xml @@ -5,6 +5,7 @@ Tweens are useful for animations requiring a numerical property to be interpolated over a range of values. The name [i]tween[/i] comes from [i]in-betweening[/i], an animation technique where you specify [i]keyframes[/i] and the computer interpolates the frames that appear between them. + [Tween] is more suited than [AnimationPlayer] for animations where you don't know the final values in advance. For example, interpolating a dynamically-chosen camera zoom value is best done with a [Tween] node; it would be difficult to do the same thing with an [AnimationPlayer] node. Here is a brief usage example that causes a 2D node to move smoothly between two positions: [codeblock] var tween = get_node("Tween")