Commit graph

100 commits

Author SHA1 Message Date
detomon
9ab84887aa Improve performance of global bone pose calculation in Skeleton3D 2024-10-12 11:13:22 +02:00
Nazarii
1ba168fcbc Use local vector for skeleton 2024-10-02 20:38:40 +03:00
demolke
0468bea899 Add per-bone meta to Skeleton3D
Individual bones are not represented as `Node`s in Godot, in order to support meta functionality for them the skeleton has to carry the information similarly to how other per-bone properties are handled.
- Also adds support for GLTF import/export
2024-09-16 16:26:15 +02:00
Rémi Verschelde
b1088047a0
Merge pull request #95124 from kleonc/skeleton2d_fix_set_get_always_returning_true
Fix `Skeleton2D.{_set|_get}` always returning true
2024-08-19 14:34:09 +02:00
A Thousand Ships
602a348ab1
Make Skeleton3D bone simulator an internal child 2024-08-07 11:38:16 +02:00
kleonc
115cd47fd6 Fix Skeleton2D.{_set|_get} always returning true 2024-08-04 18:44:07 +02:00
Silc Lizard (Tokage) Renew
9c1f23c3db Re-add Skeleton3D::animate_physical_bones 2024-07-14 14:24:25 +09:00
Silc Lizard (Tokage) Renew
793f3832e5 Rework migration of animate_physical_bones to compatibility 2024-06-25 18:54:59 +09:00
Silc Lizard (Tokage) Renew
5774d57496 Optimize update flag by SkeletonModifier 2024-06-23 17:01:01 +09:00
Silc Lizard (Tokage) Renew
a57f9f863d Add get_concatenated_bone_names() to Skeleton3D for Modifier's hint 2024-06-10 10:19:36 +09:00
Dario
e54b928974 Replace List with LocalVector on Skeleton3D's bone transform update. 2024-05-20 11:58:36 -03:00
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
kobewi
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
A Thousand Ships
a0dbdcc3ab
Replace find with contains/has where applicable
* Replaces `find(...) != -1` with `contains` for `String`
* Replaces `find(...) == -1` with `!contains` for `String`
* Replaces `find(...) != -1` with `has` for containers
* Replaces `find(...) == -1` with `!has` for containers
2024-05-08 12:37:42 +02:00
A Thousand Ships
955d5affa8
Reduce and prevent unnecessary random-access to List
Random-access access to `List` when iterating is `O(n^2)` (`O(n)` when
accessing a single element)

* Removed subscript operator, in favor of a more explicit `get`
* Added conversion from `Iterator` to `ConstIterator`
* Remade existing operations into other solutions when applicable
2024-05-04 16:08:55 +02:00
Rémi Verschelde
84013a31ea
Merge pull request #91122 from TokageItLab/simulator-memdel
Modify allocation process of the PhysicalBoneSimulator in Skeleton3D
2024-05-04 11:52:22 +02:00
Silc Lizard (Tokage) Renew
a22923daf7 Static allocation bones copy for SkeletonModifier
Co-authored-by: SlugFiller <5435495+SlugFiller@users.noreply.github.com>
2024-05-04 11:16:26 +09:00
Silc Lizard (Tokage) Renew
4900dddb88 Modify allocation process of the PhysicalBoneSimulator in Skeleton3D 2024-05-03 06:00:10 +09:00
Silc Lizard (Tokage) Renew
78a5ef4158 replace bone_pose_updated to skeleton_updated signal 2024-04-13 05:48:42 +09:00
Kusok
c0cc9d2b5e Fix deprecated=no build 2024-04-06 23:13:38 +08:00
Silc Lizard (Tokage) Renew
bf3ef56c2f Remove unavailable property binding reset_on_save from Skeleton3D 2024-04-05 08:47:50 +09:00
Silc Lizard (Tokage) Renew
04dd299cba Skeleton3D: Add SkeletonModifier / Deprecate Override / Separate PB 2024-04-05 01:28:26 +09:00
smix8
35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
Zi Ye
995bc8d049 Make Skeleton3D::add_bone return the new bone index right away, instead of requiring an additional call to get_bone_count. 2024-02-25 05:24:48 -06:00
nikitalita
3fbbc3bbd6 Fix Skeleton3D deprecated format missing pose 2024-02-05 23:36:31 -08:00
Yuri Sizov
36f5050c34 Merge pull request #87050 from nikitalita/convert-3.x-skeletons
Skeleton3D: Convert 3.x skeletons
2024-01-22 20:38:51 +01:00
nikitalita
bcad569ed9 Skeleton3D: Convert 3.x skeletons 2024-01-19 17:43:09 -08:00
kobewi
0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
kobewi
de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
Ninni Pipping
dcd2b883eb Use NULL instead of COND checks when appropriate
Restricted to scene
2023-06-10 08:56:30 +02:00
Lyuma
c567d46a2f Skeleton3D: Only reset rest_dirty after ALL bone transforms have finished update 2023-06-08 19:23:14 -07:00
detomon
ea80213eee Fix adding bones with the same name after calling Skeleton3D.clear_bones() 2023-06-05 11:55:09 +02:00
Artyom Lunchenkov
f645eee62e Improve Skeleton3D::find_bone() performance 2023-05-23 21:02:46 +06:00
Lyuma
565803ce3d Fix get_bone_pose_global_no_override() 2023-05-18 03:14:45 -07:00
Juan Linietsky
98c655ec8d Refactor Node Processing
* Node processing works on the concept of process groups.
* A node group can be inherited, run on main thread, or a sub-thread.
* Groups can be ordered.
* Process priority is now present for physics.

This is the first steps towards implementing https://github.com/godotengine/godot-proposals/issues/6424.
No threading or thread guards exist yet in most of the scene code other than Node. That will have to be added later.
2023-05-09 19:17:51 +02:00
Lyuma
fd25bb50ab Remove SkeletonModificationStack3D, and Skeleton3D api cleanup
Removes all 3D modification resources. SkeletonIK3D is a node and still supported.
Remove deprecated Skeleton3D functionality for 4.0, so we can add it back in 4.x.
Remove local_pose_override feature from Skeleton3D and BoneAttachment3D.
Expose Skeleton3D::get_version() so IK scripts/extensions can cache bones.

Note: This change only affects 3D. SkeletonModification2D will work as before.
2023-01-12 12:04:53 -08:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Adam Scott
ea33001b95 Add safety-checks before some servers free() 2022-12-29 16:23:38 -05:00
Silc Renew
ac1db40614 Improve BoneRenamer to avoid conflicting with original bone name 2022-11-16 16:36:33 +09:00
hare_ware
913f57f695 Fix Skeleton3D falsely assuming all physical bones will be children of their first bone 2022-10-31 06:59:42 -04:00
Tomasz Chabora
882a4f8906 Port remaining connections to callable_mp 2022-09-18 13:08:54 +02:00
Silc Renew
28b11e216a Clean-up/change some Skeleton3D API 2022-08-30 23:03:12 +09:00
benbot
9c1bcdcf1a removes unused skeleton functions and stray comments in RigidDynamicBody3D 2022-08-24 16:49:39 -04:00
Rémi Verschelde
1f61d47766
Merge pull request #64339 from YuriSizov/core-multilevel-validate-property 2022-08-22 21:39:48 +02:00
Yuri Sizov
1a24c9e14b Make _validate_property a multilevel method 2022-08-22 18:35:11 +03:00
Silc Renew
b27fe6452d add init bone poses 2022-08-18 18:41:37 +09:00
Silc Renew
dde235ad82 add position track normalization & post process key value for retarget 2022-07-26 18:48:08 +09:00
Silc Renew
f3af3aedfe add rest fixer to importer retarget 2022-07-16 19:53:11 +09:00
baihan
da7eb96804 Fix physical bone is not animated in running project. 2022-06-19 09:46:34 +08:00
Aaron Record
900c676b02 Use range iterators for RBSet in most cases 2022-05-19 12:09:16 +02:00