Tween
Category: Core
Smoothly animates a node’s properties over time.
Properties
Signals
- tween_all_completed ( )
Emitted when all processes in a tween end.
- tween_completed ( object, NodePath key )
Emitted when a tween ends.
- tween_started ( object, NodePath key )
Emitted when a tween starts.
Emitted at each step of the animation.
enum TweenProcessMode:
- TWEEN_PROCESS_PHYSICS = 0 — The tween updates with the callback.
- TWEEN_PROCESS_IDLE = 1 — The tween updates with the
_process
callback.
enum TransitionType:
- TRANS_LINEAR = 0 — The animation is interpolated linearly.
- TRANS_SINE = 1 — The animation is interpolated using a sine function.
- TRANS_QUINT = 2 — The animation is interpolated with a quintic (to the power of 5) function.
- TRANS_QUAD = 4 — The animation is interpolated with a quadratic (to the power of 2) function.
- TRANS_EXPO = 5 — The animation is interpolated with an exponential (to the power of x) function.
- TRANS_ELASTIC = 6 — The animation is interpolated with elasticity, wiggling around the edges.
- TRANS_CUBIC = 7 — The animation is interpolated with a cubic (to the power of 3) function.
- TRANS_CIRC = 8 — The animation is interpolated with a function using square roots.
- TRANS_BOUNCE = 9 — The animation is interpolated by bouncing at the end.
- TRANS_BACK = 10 — The animation is interpolated backing out at ends.
enum EaseType:
- EASE_IN = 0 — The interpolation starts slowly and speeds up towards the end.
- EASE_OUT = 1 — The interpolation starts quickly and slows down towards the end.
- EASE_IN_OUT = 2 — A combination of EASE_IN and EASE_OUT. The interpolation is slowest at both ends.
- EASE_OUT_IN = 3 — A combination of EASE_IN and EASE_OUT. The interpolation is fastest at both ends.
Description
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.
Here is a brief usage example that causes a 2D node to move smoothly between two positions:
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 constant, and refers to the way the timing of the animation is handled (see http://easings.net/
for some examples). The second accepts an EaseType constant, and controls the where 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 constants with EASE_IN_OUT, and use the one that looks best.
- playback_process_mode
The tween’s animation process thread. See TweenProcessMode. Default value: .
- float playback_speed
- repeat
If true
, the tween loops.
Method Descriptions
- bool follow_method ( object, String method, initial_val, Object target, target_method, float duration, trans_type, EaseType ease_type, delay=0 )
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 for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information
- bool follow_property ( object, NodePath property, initial_val, Object target, target_property, float duration, trans_type, EaseType ease_type, delay=0 )
Follows property
of object
and applies it on target_property
of target
, beginning from initial_val
for seconds, delay
seconds later.
Use TransitionType for trans_type
and for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information
- float get_runtime ( ) const
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.
- interpolate_deferred_callback ( Object object, duration, String callback, arg1=null, Variant arg2=null, arg3=null, Variant arg4=null, arg5=null )
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.
- interpolate_method ( Object object, method, Variant initial_val, final_val, float duration, trans_type, EaseType ease_type, delay=0 )
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 for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information
- bool interpolate_property ( object, NodePath property, initial_val, Variant final_val, duration, TransitionType trans_type, ease_type, float delay=0 )
Animates property
of object
from initial_val
to final_val
for seconds, delay
seconds later. Setting the initial value to null
uses the current value of the property.
Use 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
- is_active ( ) const
Returns true
if any tweens are currently running. Note that 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.
- remove_all ( )
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.
- reset_all ( )
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.
- resume_all ( )
Continues animating all stopped tweens.
- bool seek ( time )
Sets the interpolation to the given time
in seconds.
- void set_active ( bool active )
Activates/deactivates the tween. See also and resume_all.
- start ( )
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.
- stop_all ( )
Stops animating all tweens.
- bool targeting_method ( object, String method, initial, String initial_method, final_val, float duration, trans_type, EaseType ease_type, delay=0 )
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 for ease_type
parameters. These values control the timing and direction of the interpolation. See the class description for more information
- bool targeting_property ( object, NodePath property, initial, NodePath initial_val, final_val, float duration, trans_type, EaseType ease_type, delay=0 )
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 and 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.