Commit graph

827 commits

Author SHA1 Message Date
Silc 'Tokage' Renew
d46c962f18 Fix AnimationPlayer::play() process unwanted start 2023-10-06 15:47:54 +09:00
Aaron Franke
dcc7612823
Tweak AnimationPlayer speed scale property hint to make dragging useful 2023-10-01 13:23:31 -05:00
Silc Lizard (Tokage) Renew
599f0dbf97 Fix GroupedStateMachine reset 2023-09-30 10:37:46 +09:00
Silc Lizard (Tokage) Renew
1b95827d3e Implement AnimationManager the base class of AnimationPlayer/Tree 2023-09-29 08:23:57 +09:00
Yuri Sizov
b351cffddf Fix theme access and improve UX in AnimationTree editor 2023-09-23 21:47:27 +02:00
Rémi Verschelde
3e233e1f24
Fix various typos with codespell
Using 2.2.6.dev193+g907e5380.
2023-09-18 09:53:39 +02:00
A Thousand Ships
a29416e332 [Scene,Main] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 12:53:06 +02:00
kobewi
bf9d971215 Check if property exists before tweening 2023-09-11 12:59:43 +02:00
Hendrik Brucker
5afe78bd9c Clean up/refactor GraphNode and make it more flexible
Split GraphNode into GraphElement and GraphNode, add custom
titlebar, and adjust theming.
2023-09-07 17:29:06 +02:00
kobewi
598d9972c8 Prevent errors if Tween callback's object is freed 2023-08-29 14:50:53 +02:00
Rémi Verschelde
0511f9d9a7
Merge pull request #80708 from garychia/anim_seek
Ensure methods skipped by `AnimationPlayer::seek` are not called
2023-08-17 15:44:03 +02:00
Chia-Hsiang Cheng
125ae78a89 Ensure methods skipped by AnimationPlayer::seek are not called 2023-08-17 17:35:54 +08:00
Rémi Verschelde
c5a7462a00
Merge pull request #80702 from KoBeWi/lagging_animation
Fix initial value with delay in PropertyTweener
2023-08-17 11:28:15 +02:00
kobewi
1660575bd8 Fix initial value with delay in PropertyTweener 2023-08-17 10:28:26 +02:00
Chia-Hsiang Cheng
ef5d0b1c06 Avoid emitting signals if the animation is not ready to be processed 2023-08-07 18:21:28 +08:00
kobewi
dbecf8bd1a Improve and clarify paused Tweens 2023-07-25 13:29:30 +02:00
Yuri Sizov
752b89dc36 Merge pull request #79403 from TokageItLab/fix-negative-timescale-transition
Fix `AnimationNodeTransition` with negative time scale
2023-07-24 19:32:37 +02:00
Yuri Sizov
6a30f64dc8 Merge pull request #79595 from TokageItLab/rbmap-animblendtree
Make `AnimationNodeBlendTree` use `RBMap` insteads `HashMap`
2023-07-21 17:15:42 +02:00
Silc Lizard (Tokage) Renew
a3cdacdc4e Make AnimationNodeBlendTree use RBMap insteads HashMap 2023-07-18 17:57:53 +09:00
kobewi
de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Silc Lizard (Tokage) Renew
1ac2bdd97b Fix NodeTransition with negative time scale 2023-07-13 08:38:53 +09:00
Silc Lizard (Tokage) Renew
fc40ba21cd Fix infinity loop state can't break 2023-07-07 16:12:37 +09:00
Ninni Pipping
0c16082e1e Use get_node_or_null when null checks are present
Avoids duplicate or unnecessary errors
2023-06-10 13:22:56 +02:00
Ninni Pipping
dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
lawnjelly
b69c8b4791 Single Compilation Unit build.
Adds support for simple SCU build (DEV_ENABLED only).
This speeds up compilation by compiling multiple cpp files within a single translation unit.
2023-06-06 15:36:51 +01:00
Silc Lizard (Tokage) Renew
c9c8205644 Implement NodeSub2 to AnimationTree & improve mathematical Nodes 2023-05-27 13:19:54 +09:00
kobewi
87a6145135 Fix AnimationPlayer cumulative speed_scale 2023-05-26 07:11:29 +02:00
Rémi Verschelde
7a176459b1
Merge pull request #76899 from rakkarage/spring-tween
Add TRANS_SPRING to Tween
2023-05-22 13:48:47 +02:00
SaracenOne
18c792fe42 Allocate unique track_blends vector for animation states.
Quick fix for a bug which occurs when blending the result of multiple instanced state machines outputting the same animation, but using filter tracks.
2023-05-18 20:02:43 +01:00
Rakka Rage
780e21bcac Add TRANS_SPRING to Tween 2023-05-17 17:54:37 -04:00
Rémi Verschelde
437041a983
Merge pull request #77141 from TokageItLab/optimize-tween-division
Optimize Tween calculations by caching some divisions
2023-05-17 11:25:30 +02:00
Silc Lizard (Tokage) Renew
e09c3d8126 Optimize Tween calculations by caching some divisions 2023-05-17 07:03:45 +09:00
Rémi Verschelde
88f5b8d687
Merge pull request #74190 from TokageItLab/respect-fade-abort-oneshot
Fix NodeOneShot doesn't respect fade-out when aborting and improvement
2023-05-15 13:43:20 +02:00
Silc Lizard (Tokage) Renew
238bc9fe1f Fix NodeOneShot doesn't respect fade-out when aborting and improvement 2023-05-15 18:51:45 +09:00
Rémi Verschelde
3e6a731904
Merge pull request #76418 from reduz/method-bind-validated-call
Add ValidatedCall to MethodBind
2023-05-08 13:52:42 +02:00
Juan Linietsky
1c93606e47 Add ValidatedCall to MethodBind
* This should optimize GDScript function calling _enormously_.
* It also should simplify the GDScript VM considerably.

NOTE: GDExtension calling performance has most likely been affected until going via ptrcall is fixed.
2023-04-30 20:01:26 +02:00
Yuri Sizov
0562decf34 Unexpose AnimationTrackEditPlugin as not implemented 2023-04-25 11:38:17 +02:00
Silc Renew
fac8a918f9 Expose interpolation methods for 3D track in Animation class 2023-04-25 01:45:14 +09:00
Rémi Verschelde
13544fb508
Merge pull request #75759 from TokageItLab/reimplement-grouped-statemachine
Rework for nested `AnimationNodeStateMachine`
2023-04-24 16:44:21 +02:00
Silc Renew
991e6e90ba Rework StateMachine and nested StateMachine process
Breaking compatibility: If a StateMachineTransition is connected to a nested StateMachine prior to this, it is removed. Also, there was a feature to connect another StateMachine as the End of a StateMachine, which is also removed to avoid reference confusion. It was like a GoTo Statement, also further passing the same reference to the blending process, causing the blending calculation to break or causing some StateMachines to not work.
2023-04-18 19:06:51 +09:00
yedpodtrzitko
c01d2902d9 optimize blend position search 2023-04-08 18:49:06 +07:00
kobewi
20f03884f2 Various Tween code improvements 2023-04-03 15:40:02 +02:00
John Pennycook
4cb2085543 Add get_loops_left() function to Tween
Implements godotengine/godot-proposals#5141.

Adds a new get_loops_left() function to Tween, allowing developers to
reason about how many times a tweening sequence will repeat and whether
to expect finished or loop_finished as the next signal.

Co-authored-by: Tomek <kobewi4e@gmail.com>
2023-03-20 20:49:31 -07:00
kobewi
45f4d59fa4 Check for type mismatch in PropertyTweener.from() 2023-02-28 17:16:56 +01:00
Silc Renew
ae5dadc8d1 Refactor NodeTransition/OneShot to handle seek/filter correctly 2023-02-13 10:04:51 +09:00
kobewi
17fe5c2b23 Fix tween_method() type validation 2023-02-12 22:08:25 +01:00
Rémi Verschelde
9075d5e932
Merge pull request #73120 from TokageItLab/fix-transition-reset-fade
Fix remaining fade doesn't clear when reset in AnimationNodeTransition
2023-02-11 22:03:35 +01:00
Silc Renew
7bf83a8603 Fix NodeOneShot fade-out doesn't blend animations correctly 2023-02-12 04:32:40 +09:00
Silc Renew
2a0beb1ef3 Fix remaining fade doesn't clear when reset in AnimationNodeTransition 2023-02-12 04:12:15 +09:00
Rémi Verschelde
cac4cda89b
Merge pull request #73024 from TokageItLab/fix-transtition-first-frame
Fix broken first frame of `NodeTransition`/`NodeOneShot` when xfade is 0
2023-02-10 15:08:34 +01:00
Haoyu Qiu
26581ca574 Add some missing translatable editor strings 2023-02-10 16:55:50 +08:00
Silc Renew
836d62f0c6 Fix broken first frame of NodeTransition/NodeOneShot when xfade is 0 2023-02-10 13:57:11 +09:00
Silc Renew
7b18ad7d98 Add root motion accumulator to fix broken RootMotionView 2023-02-10 01:22:00 +09:00
Markus Sauermann
826e54fa73 Some code simplifications
1. `number_width` isn't used later
2. `return_type` is used only once
3. AudioServer::get_singleton()->get_channel_count() always returns a channel_count of 1 or larger
4. negative `aa->backward` conditional
5. `current_canvas` == `find_world_2d()->get_canvas()`
6. identical if `render_shadows`
2023-02-07 14:30:16 +01:00
Rémi Verschelde
3f02cf7ced
Merge pull request #72722 from TokageItLab/animtree-map
Fix AnimationNodeTransition initialization and AnimationNode remapping method
2023-02-07 08:36:00 +01:00
Silc Renew
fff3ae1d89 Fix NodeTransition initialization and AnimationNode remapping method 2023-02-05 06:24:14 +09:00
Silc Renew
b9b8130432 Fixed animation audio to play considering time when seeking 2023-02-05 03:57:52 +09:00
Rémi Verschelde
1d61150f8f
Merge pull request #72509 from TokageItLab/seekcon
Consistent with NodeTimeSeek parameters OtherNodes
2023-02-02 16:27:19 +01:00
Silc Renew
2a39b5bcde Remove meaningless rename_parameter in AnimationTree 2023-02-01 23:14:36 +09:00
Silc Renew
6782edd5a4 Consistent with NodeTimeSeek parameters OtherNodes 2023-02-01 20:58:36 +09:00
Rémi Verschelde
d8e71dc51a
Merge pull request #72450 from TokageItLab/optional-restart
Make restart in NodeStateMachine / NodeTransition optional
2023-02-01 07:24:05 +01:00
Silc Renew
4525181c2d Make restart in NodeStateMachine / NodeTransition optional 2023-02-01 03:57:11 +09:00
Rémi Verschelde
92a6586fb6
Merge pull request #72396 from TokageItLab/bs1dconsist
Consistent with NodeBlendSpace1D option NodeBlendSpace2D
2023-01-31 15:55:53 +01:00
SaracenOne
eff3828896 Force update AnimationTree player cache when AnimationPlayer changes. 2023-01-31 11:32:05 +00:00
Rémi Verschelde
73c1fa9826
Merge pull request #72383 from MewPurPur/correct-tween-errors
Fix error messages for {}Tweener.new()
2023-01-30 20:27:06 +01:00
Silc Renew
a0c4f849e0 Consistent with NodeBlendSpace1D option NodeBlendSpace2D
Co-authored-by: Skrapion <rick@firefang.com>
2023-01-31 02:14:55 +09:00
VolTer
5313bc90f6 Fix error messages of {}Tweener.new() 2023-01-30 17:58:20 +01:00
Rémi Verschelde
551f5191e5
Merge pull request #72388 from TokageItLab/transition-reset-each
Allow the Reset option of NodeTransition to be set for each Input
2023-01-30 17:35:00 +01:00
Silc Renew
2dd3abd0c5 Allow the Reset option of NodeTransition to be set for each Input 2023-01-31 00:40:45 +09:00
Silc Renew
f8d529a232 Allow seek() without assigned animation in AnimationPlayer 2023-01-30 23:54:20 +09:00
Rémi Verschelde
38f8411ed8
Merge pull request #71964 from bruvzg/mat_key
Fix unsafe murmur3 hash use for the default material keys, expose alpha hash transparency mode for default materials and Label3D and Sprite3D.
2023-01-30 10:03:49 +01:00
Silc Renew
d27005f80e Remove the max input limit & cleanup AnimationNodeTransition API 2023-01-30 03:52:55 +09:00
Silc Renew
fa198c482e Fix AnimatedSprite play() don't redraw immediately 2023-01-29 08:00:42 +09:00
Silc Renew
75330887d7 Implement blending audio feature to AnimationTree 2023-01-28 20:08:29 +09:00
Rémi Verschelde
91c0ed5e33
Merge pull request #71907 from TokageItLab/change-animated-sprite-api
Make `AnimatedSprite`'s playback API consistent with `AnimationPlayer`
2023-01-27 10:32:23 +01:00
Silc Renew
d33fdfcdad Fix AnimationTree MethodTrack discards all process 2023-01-27 17:44:25 +09:00
Silc Renew
9ef2fb3cd4 Make AnimTree/Player processes adopt to GDVIRTUAL 2023-01-26 23:22:57 +09:00
Silc Renew
4e56c2b0b0 Fix spamming audio preview and cleanup process in AnimationPlayer/Tree 2023-01-26 14:09:25 +09:00
Silc Renew
17bf6238fc Make AnimatedSprite's playback API consistent with AnimationPlayer 2023-01-26 12:40:19 +09:00
SaracenOne
02a82c9531 Add indicator for state machine transition fade progress and position of state transitioning from. 2023-01-25 10:17:55 +00:00
Aaron Franke
2bc0bcbd26
PropertyUsage: Rename "DO_NOT_SHARE_ON_DUPLICATE" to "ALWAYS_DUPLICATE" 2023-01-24 16:05:07 -06:00
bruvzg
1c774a6083
Fix unsafe murmur3 hash use for the default material keys, expose alpha hash transparency mode for default materials and Label3D and Sprite3D. 2023-01-24 12:24:53 +02:00
Rémi Verschelde
285e6ed9a5
Merge pull request #71840 from TokageItLab/fix-travel-reset
Fix weird behavior of teleporting to self-state when `reset_on_teleport` is `false` in StateMachine
2023-01-22 11:08:57 +01:00
Rémi Verschelde
c0f35a8db1
Merge pull request #71839 from TokageItLab/expose-fading-from-statemachine
Expose `fading_from` from StateMachine
2023-01-22 11:08:34 +01:00
Rémi Verschelde
813d7c417b
Merge pull request #71823 from TokageItLab/fix-bezier-init
Fix wrong BezierTrack init value
2023-01-22 11:08:09 +01:00
Silc Renew
a6d8afc90c Fix weird behavior of teleporting to self-state when reset is false 2023-01-22 16:16:48 +09:00
Silc Renew
8b04f58604 Expose fading_from_node from StateMachine 2023-01-22 15:50:53 +09:00
Silc Renew
451cb5577d Fix wrong BezierTrack init value 2023-01-22 06:52:40 +09:00
kobewi
615c517034 Use range iterators in LocalVector loops 2023-01-21 18:44:42 +01:00
Silc Renew
3bb298b78a Fix max limit of AnimationNodeTransition input count in the inspector 2023-01-21 14:57:36 +09:00
Rémi Verschelde
d919d77367
Merge pull request #71418 from TokageItLab/restart-anim-tree
Allow AnimationStateMachine / AnimationNode to restart when transitioning to the same state
2023-01-19 21:52:35 +01:00
Rémi Verschelde
a202f5104f
Merge pull request #71264 from TokageItLab/improve-statemachine
Add next/reset function to `AnimationStateMachine`
2023-01-19 21:52:05 +01:00
Silc Renew
e480262c53 Allow AnimationNodes to restart when transitioning to the same state 2023-01-19 03:10:59 +09:00
Silc Renew
8bfaf098c7 Add next/reset function to AnimationStateMachine 2023-01-19 03:10:45 +09:00
Silc Renew
d16004f297 Add p_keep_state to AnimationPlayer::stop() 2023-01-19 01:05:46 +09:00
kobewi
1260cb0bfb Improve empty Tween error message 2023-01-16 10:30:21 +01:00
kobewi
b58111588a Add EditorUndoRedoManager singleton 2023-01-16 01:11:52 +01:00
Tomasz Chabora
4668a186db Reset animation on playback stop 2023-01-13 13:41:37 +01:00
kobewi
f64dd732b8 Improve some Tween internals 2023-01-11 14:08:14 +01:00
kobewi
da9396881e Split pause() from AnimationPlayer's stop() 2023-01-11 14:03:31 +01:00