Smoothly animates a node's properties over time.
Tweens are useful for animations requiring a numerical property to be interpolated over a range of values. The name tween comes from in-betweening, an animation technique where you specify keyframes 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 makes a 2D node move smoothly between two positions:
var tween = get_node("Tween") tween.interpolate_property($Node2D, "position", Vector2(0, 0), Vector2(100, 100), 1, Tween.TRANS_LINEAR, Tween.EASE_IN_OUT) tween.start()
Many methods require a property name, such as "position"
above. You can find the correct property name by hovering over the property in the Inspector. You can also provide the components of a property directly by using "property:component"
(eg. position:x
), where it would only apply to that particular component.
Many of the methods accept trans_type
and ease_type
. The first accepts an TransitionType constant, and refers to the way the timing of the animation is handled (see easings.net for some examples). The second accepts an EaseType constant, and controls where the trans_type
is applied to the interpolation (in the beginning, the end, or both). If you don't know which transition and easing to pick, you can try different TransitionType constants with EASE_IN_OUT, and use the one that looks best.
Tween easing and transition types cheatsheet
TweenProcessMode | playback_process_mode | 1 |
float | playback_speed | 1.0 |
bool | repeat | false |
bool | follow_method ( Object object, String method, Variant initial_val, Object target, String target_method, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
bool | follow_property ( Object object, NodePath property, Variant initial_val, Object target, NodePath target_property, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
float | get_runtime ( ) const |
bool | interpolate_callback ( Object object, float duration, String callback, Variant arg1=null, Variant arg2=null, Variant arg3=null, Variant arg4=null, Variant arg5=null ) |
bool | interpolate_deferred_callback ( Object object, float duration, String callback, Variant arg1=null, Variant arg2=null, Variant arg3=null, Variant arg4=null, Variant arg5=null ) |
bool | interpolate_method ( Object object, String method, Variant initial_val, Variant final_val, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
bool | interpolate_property ( Object object, NodePath property, Variant initial_val, Variant final_val, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
bool | is_active ( ) const |
bool | remove ( Object object, String key="" ) |
bool | remove_all ( ) |
bool | reset ( Object object, String key="" ) |
bool | reset_all ( ) |
bool | resume ( Object object, String key="" ) |
bool | resume_all ( ) |
bool | seek ( float time ) |
void | set_active ( bool active ) |
bool | start ( ) |
bool | stop ( Object object, String key="" ) |
bool | stop_all ( ) |
bool | targeting_method ( Object object, String method, Object initial, String initial_method, Variant final_val, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
bool | targeting_property ( Object object, NodePath property, Object initial, NodePath initial_val, Variant final_val, float duration, TransitionType trans_type=0, EaseType ease_type=2, float delay=0 ) |
float | tell ( ) const |
Emitted when all processes in a tween end.
Emitted when a tween ends.
Emitted when a tween starts.
Emitted at each step of the animation.
enum TweenProcessMode:
_physics_process
callback._process
callback.enum TransitionType:
enum EaseType:
Default | 1 |
Setter | set_tween_process_mode(value) |
Getter | get_tween_process_mode() |
The tween's animation process thread. See TweenProcessMode.
Default | 1.0 |
Setter | set_speed_scale(value) |
Getter | get_speed_scale() |
The tween's speed multiplier. For example, set it to 1.0
for normal speed, 2.0
for two times normal speed, or 0.5
for half of the normal speed. A value of 0
pauses the animation, but see also set_active or stop_all for this.
Default | false |
Setter | set_repeat(value) |
Getter | is_repeat() |
If true
, the tween loops.
Follows method
of object
and applies the returned value on target_method
of target
, beginning from initial_val
for duration
seconds, delay
later. Methods are called with consecutive values.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Follows property
of object
and applies it on target_property
of target
, beginning from initial_val
for duration
seconds, delay
seconds later.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Returns the total time needed for all tweens to end. If you have two tweens, one lasting 10 seconds and the other 20 seconds, it would return 20 seconds, as by that time all tweens would have finished.
Calls callback
of object
after duration
. arg1
-arg5
are arguments to be passed to the callback.
Calls callback
of object
after duration
on the main thread (similar to Object.call_deferred). arg1
-arg5
are arguments to be passed to the callback.
Animates method
of object
from initial_val
to final_val
for duration
seconds, delay
seconds later. Methods are called with consecutive values.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Animates property
of object
from initial_val
to final_val
for duration
seconds, delay
seconds later. Setting the initial value to null
uses the current value of the property.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Returns true
if any tweens are currently running.
Note: This method doesn't consider tweens that have ended.
Stops animation and removes a tween, given its object and property/method pair. By default, all tweens are removed, unless key
is specified.
Stops animation and removes all tweens.
Resets a tween to its initial value (the one given, not the one before the tween), given its object and property/method pair. By default, all tweens are removed, unless key
is specified.
Resets all tweens to their initial values (the ones given, not those before the tween).
Continues animating a stopped tween, given its object and property/method pair. By default, all tweens are resumed, unless key
is specified.
Continues animating all stopped tweens.
Sets the interpolation to the given time
in seconds.
Activates/deactivates the tween. See also stop_all and resume_all.
Starts the tween. You can define animations both before and after this.
Stops a tween, given its object and property/method pair. By default, all tweens are stopped, unless key
is specified.
Stops animating all tweens.
Animates method
of object
from the value returned by initial_method
to final_val
for duration
seconds, delay
seconds later. Methods are animated by calling them with consecutive values.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Animates property
of object
from the current value of the initial_val
property of initial
to final_val
for duration
seconds, delay
seconds later.
Use TransitionType for trans_type
and EaseType for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information.
Returns the current time of the tween.
© 2014–2020 Juan Linietsky, Ariel Manzur, Godot Engine contributors
Licensed under the MIT License.
https://docs.godotengine.org/en/3.2/classes/class_tween.html