Commit Graph

410 Commits

Author SHA1 Message Date
Haoyu Qiu b56d1abc47 Fix crash when executing `AnimationTreePlayer.are_nodes_connected`
(cherry picked from commit 9d923764c9)
2022-08-01 22:07:04 +02:00
Rémi Verschelde afe8492241 Fix typos with codespell
Using codespell 2.2-dev from current git.

Fix a couple incorrect uses of gendered pronouns.
2022-06-19 14:06:55 +02:00
ScottVMariotte 0b60e924d9 Replaced loops_current with end_loop
(cherry picked from commit c526ee6683)
2022-05-05 15:47:01 +02:00
Haoyu Qiu 4ae0adbf2c Fix inversed ADD_GROUP parameters in AnimationNodeOneShot
(cherry picked from commit 6a3bf65657)
2022-03-22 08:57:18 +01:00
Wysocki Patryk db1105d4b3
Expose AnimationNodeOneShot::mix_mode as a property
Fixes #23458.

(cherry picked from commit f16c483c9d)
2022-01-25 18:56:36 +01:00
Rémi Verschelde 71066cd63b
Update copyright statements to 2022
Happy new year to the wonderful Godot community!

(cherry picked from commit a627cdafc5)
2022-01-13 16:00:37 +01:00
Florian Kothmeier 5185cd4f80
Fix AnimationNodeStateMachinePlayback start() on nonexistent node
(cherry picked from commit b6e7df56cb)
2021-10-04 15:22:16 +02:00
Haoyu Qiu 45b4304f10 Fix crash in Tween.follow_property
Check `p_object` for null before using it.
2021-09-22 13:38:21 +08:00
Espeute Clement a259112d6e
Fixed Animation Playback Track not seeking properly
Fixes #38093.

(cherry picked from commit aa72af4f46)
2021-09-21 17:15:00 +02:00
Silc 'Tokage' Renew fa45aa22cb
Fixed seeking behavior of property track with discrete interpolation
(cherry picked from commit 6613d9cf67)
2021-09-21 17:14:57 +02:00
Rémi Verschelde 22aab6be1c
Merge pull request #51796 from RandomShaper/dangling_obj_release_3.x
[3.x] Promote object validity checks to release builds
2021-09-21 11:48:11 +02:00
Pedro J. Estébanez 26edc6cd41 Promote object validity checks to release builds
Extra:
- Optimized the debug-only check about why the object is null to determine if it's because it has been deleted (the RC is enough; no need to check the ObjectDB).
- Because of the previous point. the debugger being attached is not required anymore for giving the "Object was deleted" error; from now, it only matters that it's a debug build.
- `is_instance_valid()` is now trustworthy. It will return `true` if, and only if, the last object assigned to a `Variant` is still alive (and not if a new object happened to be created at the same memory address of the old one).
- Replacements of `instance_validate()` are used where possible `Variant::is_invalid_object()` is introduced to help with that. (GDScript's `is_instance_valid()` is good.)
2021-09-21 10:39:04 +02:00
Silc 'Tokage' Renew a95b015968
fixed AnimationNodeTransition when xfade time is zero
(cherry picked from commit 02d8166427)
2021-09-20 13:19:41 +02:00
Haoyu Qiu 018f28bead
Make sure IK target is inside tree before using its transform
(cherry picked from commit 88e3ba83f0)
2021-09-14 13:41:30 +02:00
Haoyu Qiu 859922a5f0 Delete the node in AnimationTreePlayer.remove_node 2021-08-03 00:12:04 +08:00
Hugo Locurcio 10ef55ce23
Use bullet points in the editor instead of dashes where relevant 2021-07-28 19:47:11 +02:00
bowling-allie 86e5893755
Fixes BlendSpace2D BLEND_MODE_DISCRETE_CARRY.
When BlendSpace2D switches animations, it will now correctly
calculate the previous animation position and length and
apply is to the new animation.

(cherry picked from commit bcb1e2b79f)
2021-07-13 10:47:20 +02:00
Marcel Admiraal 5a58516231 Remove duplicate ERR_PRINTS macro 2021-06-16 11:56:25 +01:00
Rémi Verschelde ed28ce53bf
Merge pull request #47142 from jmb462/fix-tween-is_active-always-true-after-stop-and-start
[3.x] Fix Tween.is_active() always true after stop() and then start() (Fix #39760 & #39801)
2021-06-03 11:16:08 +02:00
TwistedTwigleg ec7b72e81d SkeletonIK: Fixed issue where bones become detached if multiple SkeletonIK nodes are used 2021-05-24 11:30:16 -04:00
Tokage 0454848f4d
fix unintentional object rotation by animation tree
(cherry picked from commit ddac0e95dc)
2021-05-09 17:48:45 +02:00
Pedro J. Estébanez 4da9a501f6 Add animation reset track feature
As a bonus, to have consistency between use Beziers and create insert tracks, use Beziers also gets a default via editor settings that is used when the confirmation dialog is disabled, instead of just falling back to creating non-Bezier tracks.
2021-05-09 09:40:16 +02:00
TwistedTwigleg c1bc87ed0d Fixes the SkeletonIK twisting issue by using the skeleton global pose without overrides 2021-05-06 20:11:21 -04:00
Rémi Verschelde 140350d767
Style: Enforce braces around if blocks and loops
Using clang-tidy's `readability-braces-around-statements`.
https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2021-05-05 15:02:01 +02:00
Rémi Verschelde a828398655
Style: Replaces uses of 0/NULL by nullptr (C++11)
Using clang-tidy's `modernize-use-nullptr`.
https://clang.llvm.org/extra/clang-tidy/checks/modernize-use-nullptr.html
2021-05-04 16:30:23 +02:00
Rémi Verschelde b5e1e05ef2
Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocks 2021-05-04 14:45:16 +02:00
Rémi Verschelde 64a63e0861
Style: clang-format: Disable AllowShortCaseLabelsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 3d15f04668
Style: clang-format: Disable AllowShortIfStatementsOnASingleLine 2021-05-04 14:45:15 +02:00
Rémi Verschelde 6e600cb3f0
Style: Set clang-format Standard to c++14 2021-05-04 14:45:15 +02:00
Rémi Verschelde e94161dada
SCons: Add explicit dependencies on thirdparty code in cloned env
Since we clone the environments to build thirdparty code, we don't get an
explicit dependency on the build objects produced by that environment.

So when we update thirdparty code, Godot code using it is not necessarily
rebuilt (I think it is for changed headers, but not for changed .c/.cpp files),
which can lead to an invalid compilation output (linking old Godot .o files
with a newer, potentially ABI breaking version of thirdparty code).

This was only seen as really problematic with bullet updates (leading to
crashes when rebuilding Godot after a bullet update without cleaning .o files),
but it's safer to fix it everywhere, even if it's a LOT of hacky boilerplate.

(cherry picked from commit c7b53c03ae)
2021-04-29 16:57:00 +02:00
TwistedTwigleg 51be345a17
Changed SkeletonIK3D to clear bone overrides when stopping
(cherry picked from commit 9ebdf812df)
2021-04-17 10:51:22 +02:00
TwistedTwigleg 9c33f091cd Godot 3.x backport: Fix for SkeletonIK not working correctly with 0 interpolation and incorrectly rotating with animation. Now the root bone rotates differently to ensure it always rotates correctly and works with BoneAttachment nodes. 2021-04-08 18:45:54 -04:00
TwistedTwigleg f50c8062dd
Fix for regression in SkeletonIK code
(cherry picked from commit c15e23396d)
2021-03-19 10:53:58 +01:00
jmb462 c695ef29b8 3.2 - Fix Tween.is_active() always true after stop() and then start()
Fix #39760 & #39801

These issues were resolved in master branch (and closed) but are still active in the 3.2 branch.
2021-03-18 22:01:59 +01:00
Kongfa Waroros e8d0089901
Check AnimationNode to update properties
(cherry picked from commit 981ca8045f)
2021-03-17 15:17:02 +01:00
TwistedTwigleg 71c6c85565 Changes to SkeletonIK:
* Removed the pointers to PhysicalBone in the code, as they were unused.
* Forward ported the SkeletonIK bone scaling fix I made from Godot 3.2 to Godot 4.0.
* Fixed issue where the root bone in the IK chain would not rotate correctly.
  * The issue turned out to be the update_chain function being called in solve. This would override the root bone transform incorrectly and that would cause it not to rotate after just a single solve. Removing the update_chain function fixes the issue and based on my testing there are no adverse effects.
  * While the old fix on this PR (prior to a force push) required a hack fix, this new fix does not!
* Removed the update_chain function. This change doesn't appear to have any adverse effects in any of the projects I tested (including with animations, Skeleton3D or otherwise, from AnimationPlayer nodes!)
* Fixed issue where the scale of the Skeleton node would change the position of the target, causing it not to work with skeletons that have a global scale of anything but 1.

(cherry picked from commit a622649876)
2021-03-12 11:29:03 +01:00
Christoffer Sundbom 3b63467783 Tween: Add null check for target object
Fixes #45399.

(cherry picked from commit 5b2100d85c)
2021-02-25 15:14:31 +01:00
nc bc86f3e27e improve error message when travel() is called on an AnimationNodeStateMachine when the state machine is not playing
(cherry picked from commit 0c968d603a)
2021-02-22 10:15:00 +01:00
Angad Kambli 1ca1b78a09 add checks for node type range in add_node function 2021-02-17 14:22:50 +05:30
muiroc 11fc3b8758 Use the blend parameter passed to blend_animation during graph processing
(cherry picked from commit 01bd1b33c7)
2021-02-05 09:26:50 +01:00
Rémi Verschelde 49646383f1
Update copyright statements to 2021
Happy new year to the wonderful Godot community!

2020 has been a tough year for most of us personally, but a good year for
Godot development nonetheless with a huge amount of work done towards Godot
4.0 and great improvements backported to the long-lived 3.2 branch.

We've had close to 400 contributors to engine code this year, authoring near
7,000 commit! (And that's only for the `master` branch and for the engine code,
there's a lot more when counting docs, demos and other first-party repos.)

Here's to a great year 2021 for all Godot users 🎆

(cherry picked from commit b5334d14f7)
2021-01-13 16:17:06 +01:00
Eoin O'Neill 650f7c6f35
StateMachinePlayback: Added missing bindings to `get_current_play_pos` and `get_current_length`.
This allows the user to query the AnimationNodeStateMachinePlayback's current
play position and total length of current animation state. These methods are currently
used in the editor plugin, but can also be useful for querying general playback state
information.

Added documentation for AnimationNodeStateMachinePlayback's `get_current_play_position`

(cherry picked from commit 674fb52f52)
2021-01-05 20:48:57 +01:00
Marcel Admiraal 79952c5435 Remove ChainTip copy constructor 2020-12-07 12:32:49 +00:00
Pedro J. Estébanez a45bf288e8
Fix premature end of animation playing backwards
(cherry picked from commit 826af5b28a)
2020-11-11 15:12:01 +01:00
Duroxxigar 11a07d071a
Added a more helpful error message when there is no current animation for the animation player
(cherry picked from commit 8bfeb9d6ae)
2020-10-19 16:09:58 +02:00
Rémi Verschelde 2d42625184
Revert "bug with Tween.is_active, fixes #39760"
This reverts commit 8ef40b9306.
2020-08-25 12:58:40 +02:00
ConorLPBoyle ba3f0fa971 Fixed reload_goal not being called when SkeletonIK3D::start is invoked with p_one_time = true
(cherry picked from commit fa4d9c9446)
2020-07-28 11:28:34 +02:00
Chistpohe LY 8ef40b9306 bug with Tween.is_active, fixes #39760
(cherry picked from commit d60617de10)
2020-07-24 10:31:56 +02:00
Rémi Verschelde 3a916152d8
Merge pull request #39803 from TwistedTwigleg/3.2.skeleton_ik_scale_fix
[3.2] Fixed SkeletonIK not working with scaled skeletons
2020-07-06 16:16:57 +02:00
Pedro J. Estébanez a235bab96c Ignore blend times for inexistent animations
(cherry picked from commit fdf1977e8f)
2020-07-03 15:34:30 +02:00