Commit graph

81 commits

Author SHA1 Message Date
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
Haoyu Qiu
fc3b845c07 Add dedicated macros for property name extraction
* Replace case-by-case extraction with PNAME & GNAME
* Fix group handling when group hint begins with property name
* Exclude properties that are PROPERTY_USAGE_NO_EDITOR
* Extract missing ADD_ARRAY*, ADD_SUBGROUP* macros
2022-05-19 14:08:47 +08:00
reduz
746dddc067 Replace most uses of Map by HashMap
* Map is unnecessary and inefficient in almost every case.
* Replaced by the new HashMap.
* Renamed Map to RBMap and Set to RBSet for cases that still make sense
  (order matters) but use is discouraged.

There were very few cases where replacing by HashMap was undesired because
keeping the key order was intended.
I tried to keep those (as RBMap) as much as possible, but might have missed
some. Review appreciated!
2022-05-16 10:37:48 +02:00
Silc 'Tokage' Renew
4d4ffa3a2c Implement global rest 2022-04-18 02:11:19 +09:00
Rémi Verschelde
45ec0e31c3 Remove last editor code dependencies in template build
SConstruct change also makes it possible to outright delete the `editor`
folder in a `tools=no` build, which we use in CI to ensure no invalid
cross-dependencies are added.
2022-03-28 21:13:01 +02:00
Rémi Verschelde
0f5455230c
Use switch consistently in _notification (scene folder) 2022-02-15 18:44:55 +01:00
Anilforextra
adbe948bda String: Add contains(). 2022-02-04 01:28:02 +05:45
Rémi Verschelde
fe52458154
Update copyright statements to 2022
Happy new year to the wonderful Godot community!
2022-01-03 21:27:34 +01:00
Nathan Franke
49403cbfa0
Replace String comparisons with "", String() to is_empty()
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
2021-12-09 04:48:38 -06:00
Lightning_A
e078f970db Rename remove() to remove_at() when removing by index 2021-11-23 18:58:57 -07:00
Hugo Locurcio
c012fbc8b2
Rename PROPERTY_USAGE_NOEDITOR to PROPERTY_USAGE_NO_EDITOR
This is consistent with other constants that include `NO`,
such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03 23:06:17 +01:00
Silc 'Tokage' Renew
653e2a550c Fixed animation insertion in SkeletonEditor 2021-10-23 16:50:00 +09:00
TwistedTwigleg
0cedc04769 Fix for SkeletonModification3Ds to work with the new bone pose changes, fixed global_pose_to_local_pose function 2021-10-16 16:34:31 -04:00
Silc 'Tokage' Renew
8e9897b6de get rid set_bone_pose and fix some function in SkeletonEditor 2021-10-15 02:41:17 +09:00
reduz
2dc823273e Remove REST transform influence in skeleton bones
* Animations and Skeletons are now pose-only.
* Rest transform is kept as reference (when it exists) and for IK
* Improves 3D model compatibility (non uniform transforms will properly work, as well as all animations coming from Autodesk products).
2021-10-13 14:51:29 -03:00
reduz
ec19ed3723 Remove animation 3D transform track, replace by loc/rot/scale tracks.
* `Animation.TYPE_TRANSFORM3D` track is gone.
* Added POSITION_3D, ROTATION_3D, SCALE_3D tracks.
* GLTF2, Collada, FBX importers will only import the track types found.
* Skeleton3D bone poses are now Pos/Rot/Scale, pose matrix removed.
* AnimationPlayer and AnimationTree animate these tracks separately, only when found.
* Removed BakeReset code, is useless with these changes.

This is the first in a series of commits designed to make the animation system in Godot more useful, which includes:

* Better compatibility with Autodesk products
* Better reusability of animations across models (including retargeting).
* Proper animation compression.
* etc.

*Note* GLTF2 animation saving went broken with this PR, needs to be fixed in a subsequent one.
2021-10-12 20:08:42 -03:00
Rémi Verschelde
5ae569560d
Fix missing argument names in bindings
While at it, tweak some boolean setters to use `p_enabled` for the bool.

Also renames `draw_minimap()` to `set_draw_minimap()`.
2021-10-09 00:20:10 +02:00
Silc Renew
f2e9867e9f Implemented SkeletonEditorGizmo
Co-authored-by: Lyuma <xn.lyuma@gmail.com>
2021-10-07 01:07:46 +09:00
laws65
59ff3fda7f Prevent being able to set bone's parent as itself 2021-09-23 11:30:45 +09:30
Silc 'Tokage' Renew
48aa2d5494 Fixed regression of skinning with skeleton 2021-09-07 23:59:29 +09:00