Commit Graph

909 Commits

Author SHA1 Message Date
Micky cd2032a90b Optimise Object's `get_argument_options` 2024-02-29 18:00:54 +01:00
A Thousand Ships 92814bafb7
[Animation] Improvements to `Tween` memory management
Using `ObjectID` instead of manually breaking reference cycles.
2024-02-26 18:58:03 +01:00
Rémi Verschelde 3ce9ae71fc
Merge pull request #84906 from /fix-some-defvals 2024-02-23 11:29:22 +01:00
Raul Santos 5ba92e5a57
Fix some DEFVALs to use the right type
- Use `StringName()` in DEFVAL for StringNames.
- Use `Variant()` in DEFVAL for Variants.
2024-02-23 01:50:18 +01:00
Rémi Verschelde 9c626b6236
Merge pull request #88661 from TokageItLab/fix-dominant-conv
Force non-numeric ValueTrack to use Discrete with Dominant
2024-02-22 14:39:21 +01:00
Silc Lizard (Tokage) Renew 8423574a24 Force non-numeric ValueTrack use Discrete with Dominant 2024-02-22 21:43:35 +09:00
Rémi Verschelde efa4d0aabf
Merge pull request #86321 from jsjtxietian/fix-blendnode-crash
Fix `blend_node` crash with invalid AnimationNode reference
2024-02-22 11:22:56 +01:00
jsjtxietian 65c8af53a1 Fix blend_node crash with invalid p_node 2024-02-22 12:56:21 +08:00
Travis Lange ae97cf2ff0
Fix AnimationMixer breaking animations with redundant check
Also change `Node::get_node_and_resource` to prevent it from printing an
error from `Node::get_node`, and just returns nullptr. This is what the
redundant check was trying to prevent.

Fixes #88428.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-02-19 16:50:19 +01:00
Silc Lizard (Tokage) Renew 772a753960 Fix some animation state corruptions on activate and reset on save 2024-02-19 13:04:22 +09:00
Rémi Verschelde da26ef2d3e
Merge pull request #88492 from TokageItLab/dominant-anim
Make `ANIMATION_CALLBACK_MODE_DISCRETE_DOMINANT` be default for AnimationPlayer
2024-02-19 01:25:10 +01:00
Silc Lizard (Tokage) Renew 3d6d5a6a36 Make CallbackModeDiscrete.Dominant be default for AnimationPlayer 2024-02-18 20:02:20 +09:00
Silc Lizard (Tokage) Renew c9fc29ae86 Fix some condition for BezierTrack to distinguish between ValueTrack 2024-02-18 19:42:46 +09:00
Rémi Verschelde 21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
Silc Lizard (Tokage) Renew 4659090543 Make consistent the retrieval of audio tracks 2024-02-18 00:15:33 +09:00
Silc Lizard (Tokage) Renew bc20fdf16f Add CallbackModeDiscrete to AnimationMixer 2024-02-17 18:25:56 +09:00
Rémi Verschelde b6ef996eb7
Merge pull request #86608 from TokageItLab/add-warn-setting-anim
Add some options to Project Settings to silence warnings in AnimationMixer caching
2024-02-17 00:22:52 +01:00
Rémi Verschelde e45cc1781b
Merge pull request #82306 from KoBeWi/tween_literally_anything
Add `set_custom_interpolator()` to PropertyTweener
2024-02-17 00:22:45 +01:00
Silc Lizard (Tokage) Renew dc4b7bc364 Add option to silence some warnings in AnimationMixer caching 2024-02-14 14:48:02 +09:00
kobewi 154b4a51f2 Improve AnimationMixer warnings 2024-02-12 16:24:23 +01:00
Rémi Verschelde 2853b579a6
Merge pull request #86884 from Mickeon/autocompletion-AnimationNodeStateMachine
Add Autocompletion for AnimationNodeStateMachine & AnimationNodeBlendTree
2024-02-12 13:33:44 +01:00
Silc Lizard (Tokage) Renew 85d66cb4e8 Add capture() and play_with_capture() as substitute of update capture 2024-02-12 17:02:05 +09:00
Rémi Verschelde 4966b22fc5
Merge pull request #88110 from RedMser/fix-compat-bindings
Fix wrongly named compat binding
2024-02-09 12:36:16 +01:00
RedMser d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
RedMser 1715f96434 Fix wrongly named compat binding 2024-02-08 20:05:05 +01:00
A Thousand Ships 15369fdb1d
Remove unnecessary `this->` expressions 2024-01-29 09:59:18 +01:00
Rémi Verschelde 2a861ab5a2
Merge pull request #87459 from jsjtxietian/tween-from
Fix passing int to tween's `from` with float property will be forced to interpolate as int
2024-01-26 11:45:25 +01:00
Yuri Sizov 0eb11e52ea Merge pull request #86221 from TokageItLab/fix-blend-left
Make default `blend_left` consider current blend amount
2024-01-22 20:38:42 +01:00
jsjtxietian 3c596094ab Fix pass int to tween's from with float property will be forced to interpolate as int 2024-01-22 10:47:52 +08:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Silc Lizard (Tokage) Renew f8da9460c1 Make default blend_left consider current blend amount 2024-01-09 05:07:27 +09:00
Silc Lizard (Tokage) Renew a51958a2a0 Remove Object pointer/solve types conflict in AnimationTrackCache
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-01-08 21:48:19 +09:00
Rémi Verschelde 6226388bac
Merge pull request #86874 from AThousandShips/no_3d_fix
Fix some build errors with `disable_3d=yes`
2024-01-08 11:59:31 +01:00
A Thousand Ships c6a1ae7875
Fix some build errors with `disable_3d=Yes`
* Some tests were incorrectly included
* SCU builds with animation
* Animation `switch`
2024-01-07 00:44:33 +01:00
Micky e5c1da1c61 Add Autocompletion for AnimationNodeStateMachine & BlendTree 2024-01-06 17:03:46 +01:00
Muller-Castro 96a95cb974 Add const lvalue ref to container parameters 2024-01-05 14:49:57 -03:00
Micky 787f61d70b Add autocompletion for AnimationLibrary's & AnimationMixer 2024-01-04 21:11:36 +01:00
Rémi Verschelde 4acfe4aa3c
Merge pull request #86729 from Mickeon/autocompletion-for-all
Fix missing autocompletion for inheriting classes
2024-01-03 10:14:37 +01:00
Micky ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
Silc Lizard (Tokage) Renew b438e28509 Fix discrete key retrieval method after start 2024-01-03 02:29:00 +09:00
Yuri Sizov 3fef8910c7 Merge pull request #85575 from TokageItLab/Make-unstore-library
Make unstore AnimationLibrary if AnimationTree is assigned AnimationPlayer
2023-12-16 17:49:43 +01:00
Haoyu Qiu 7946e84187 Make AnimationTree reference AnimationPlayer instead of AnimationMixer 2023-12-16 00:40:44 +08:00
Rémi Verschelde e1d4b3cc07
Merge pull request #85794 from TokageItLab/stablemixer
Remove differences of the code between old AnimationTree and AnimationMixer
2023-12-12 00:33:01 +01:00
Alistair Leslie-Hughes ea84effb84 Replace memory allocation point of ValueTrack correctly in AnimationMixer
When a animation track doesn't have an keys, it's possible that we leak memory due the ERR_CONTINUE_MSG macro usage.

By checking the error condition first, we avoid a allocation and thus the leak.
2023-12-12 07:33:35 +11:00
Silc Lizard (Tokage) Renew 5acf6b4ca6 Remove differences of the code between old AnimationTree and Mixer 2023-12-06 02:29:29 +09:00
Rémi Verschelde 1d520f5d11
Merge pull request #85681 from KoBeWi/continue_but_not_now
Fix Tween loop initial value
2023-12-04 23:21:34 +01:00
Rémi Verschelde b8ba602e8c
Merge pull request #85569 from TokageItLab/fix-seek-diecrete
Fix AnimationPlayer seeking for Discrete keys
2023-12-04 23:19:58 +01:00
Rémi Verschelde 6b21a185e2
Merge pull request #85428 from jsjtxietian/prevent-nullptr-crash-in-AnimationMixer--restore
Prevent a crash when calling `AnimationMixer::restore` with an invalid resource
2023-12-04 23:14:29 +01:00
kobewi 20aecefd9b Fix Tween loop initial value 2023-12-02 20:20:50 +01:00
Silc Lizard (Tokage) Renew 7ed7ea53e6 Fix AnimationPlayer seeking for Discrete keys 2023-12-01 05:26:21 +09:00
Silc Lizard (Tokage) Renew c380b1296a Make unstore AnimationLibrary if AnimationTree is assigned Player 2023-12-01 04:50:58 +09:00
Rémi Verschelde a363269479
AnimationMixer: Validate ObjectID before blend in case the object was freed
Works around #85365, but it's likely only a partial fix.
The proper fix would be to remove the Object pointer from the TrackCache
and always go back to the ObjectID before doing operations like this.
2023-11-28 12:27:23 +01:00
Rémi Verschelde a008a85443
Merge pull request #85411 from TokageItLab/fix-animpbtrack-stop
Make AnimationPlaybackTrack keep state when stopping
2023-11-28 08:28:25 +01:00
jsjtxietian 937411e152 Prevent a crash when calling AnimationMixer::restore when an invalid reference 2023-11-28 12:54:06 +08:00
Silc Lizard (Tokage) Renew d3a429962f Make AnimationPlaybakTrack keep state when stopping 2023-11-27 12:14:25 +09:00
Silc Lizard (Tokage) Renew c36200b9a1 Check the seek process immediately after playback as a special case 2023-11-26 07:32:34 +09:00
Yuri Sizov 671c04f89f Fix a crash when trying to restore uncopyable animation tracks 2023-11-24 14:20:30 +01:00
Pedro J. Estébanez fbb931df8c Perform safe copies in AnimatedValuesBackup::get_cache_copy() 2023-11-24 11:38:59 +01:00
kobewi 1c0a0f5fdd Fix TrackCache memory crash 2023-11-23 20:26:03 +01:00
Rémi Verschelde bb63963486
Merge pull request #85254 from TokageItLab/bind-reset-animedit
Bind `_reset`/`_restore` in AnimationMixer
2023-11-23 15:35:15 +01:00
Silc Lizard (Tokage) Renew f66224dd2d Bind `_reset`/`_restore` in AnimationMixer 2023-11-23 22:47:52 +09:00
Silc Lizard (Tokage) Renew 9c3104292d Clear seeked/started flag after seeking/advancing in AnimationPlayer 2023-11-22 23:40:53 +09:00
Rémi Verschelde 6ae6cc0bf5
Merge pull request #84815 from TokageItLab/array-animation
Rework blending method in `Variant` animation for `Int`/`Array`/`String`
2023-11-16 14:52:00 +01:00
Silc Lizard (Tokage) Renew 80c9533810 Rework blending method in Variant animation for Int/Array/String 2023-11-16 21:37:18 +09:00
Alistair Leslie-Hughes 5b6f641e99 Fix sizeof usage for Variant pointers in alloca
Coverity report this as a non portable usage of sizeof
2023-11-16 07:13:14 +11:00
Silc Lizard (Tokage) Renew f853d675e8 Fix ValueTrack with Resource is leaking 2023-11-16 02:12:39 +09:00
Rémi Verschelde 7c7d9e2169
Merge pull request #83781 from martinfelis/fix-animationplayer-ready-autoplay
Ensure AnimationPlayer evaluate animations when autoplay is enabled and node becomes ready
2023-11-14 11:27:44 +01:00
Martin Felis f04ec34b78 Ensure AnimationPlayer evaluate animations when autoplay is enabled and node becomes ready.
Fixes #83326.

The issue was introduced in the refactoring done in 1b95827d3e.
2023-11-14 08:30:40 +01:00
Rémi Verschelde 0e6160a00f
Merge pull request #81525 from KoBeWi/tweening_the_impossible
Check if property exists before tweening
2023-11-09 20:03:53 +01:00
kobewi 8d71095622 Fix RESET not effective when saving inactive scene 2023-11-03 12:58:56 +01:00
Silc Lizard (Tokage) Renew a33884943f Add PackedArray to the list of enforcing Discrete for AnimationMixer 2023-11-03 09:35:17 +09:00
Raul Santos ae9ac5c76e
Remove AnimationMixer bindings only bound in the editor 2023-10-16 17:56:14 +02:00
Wilson E. Alvarez 4c8497092a
Show AnimationMixer warning for non-numeric types only when relevant 2023-10-15 20:53:33 -04:00
kobewi 58f4984d60 Add set_custom_interpolator() to PropertyTweener 2023-10-12 16:41:51 +02:00
Rémi Verschelde 1e55eeb91d
Merge pull request #83030 from TokageItLab/patch-misc-blending
AnimationMixer: Fix non-numeric misc type (`Resource`, `Dictionary` & etc.) values cannot be blended with `UpdateMode.UPDATE_CONTINUOUS`
2023-10-09 15:40:14 +02:00
Rémi Verschelde a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
Rémi Verschelde 35ede42d1d
Merge pull request #82695 from maiself/object-less-callables-fixes
Fixes to allow object-less callables throughout Godot
2023-10-09 15:32:38 +02:00
Silc 'Tokage' Renew c4743baba1 Patch fix for AnimationMixer: misc type values cannot be blended 2023-10-09 17:26:57 +09:00
A Thousand Ships f18aa00e85 Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-10-08 17:23:33 +02:00
Mai Lavelle 5e15586ec2 Fixes to allow object-less callables throughout Godot
This fixes #81887
2023-10-06 16:31:35 -04:00
Rémi Verschelde 249e724835
Merge pull request #82898 from TokageItLab/fix-unwanted-start-in-animation-player
Fix `AnimationPlayer::play()` process unwanted start between the same animations
2023-10-06 12:53:09 +02:00
Rémi Verschelde 373c4b22d3
Fix various typos with codespell
Using 2.2.7.dev5+g2af65969.
2023-10-06 12:52:22 +02:00
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