From 3410dd3a9e5350c3719a0e52ca56bd2b9811242d 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. (cherry picked from commit 810b1341cef475c28c97cc476f54e1199f5c3d2d) --- 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")