74 Commits

Author SHA1 Message Date
Martin Felis
6db99d126b WIP: Investigating crash on node connection. 2026-02-25 18:33:44 +01:00
Martin Felis
4a2ef2493d Fixed incomplete comment. 2026-02-23 21:25:13 +01:00
Martin Felis
d57fe50d5f Added BLTAnimationNodeTimeScale. 2026-02-22 00:56:53 +01:00
Martin Felis
3dd1ce42df Added initial support for blending of SyncTracks with differing numbers of intervals.
Not sure that the resulting blends are correct, but leave it for now.
2026-02-21 21:30:54 +01:00
Martin Felis
c7660c7b19 Replace SyncedAnimationGraph to BLTAnimationGraph. 2026-02-20 22:55:30 +01:00
Martin Felis
095f1e5d0c Animations now selectable using OptionButton. 2026-02-20 13:40:12 +01:00
Martin Felis
0198847fd1 Disconnection works again in blend tree editor. 2026-02-20 12:34:49 +01:00
Martin Felis
a098bc1171 Added test for synced blending of embedded blend tree. 2026-02-19 19:05:14 +01:00
Martin Felis
d01c6fb474 Minor editor fixes. 2026-02-19 19:03:56 +01:00
Martin Felis
06198d595f Added test for embedded blend tree evaluation. 2026-02-18 22:13:51 +01:00
Martin Felis
be6e021198 Restructured Animation Graph Editor to facilitate hierarchical graphs (i.e. embedded sub graphs). 2026-02-17 23:08:36 +01:00
Martin Felis
7255c99ef7 BLTAnimationNodeBlend2.sync is no more exposed as parameter, only as property. 2026-02-05 22:29:00 +01:00
Martin Felis
2cee55037b Renamed BLTAnimationNode::position to BLTAnimationNode::graph_offset and made it hidden in the editor by default. 2026-02-05 22:26:25 +01:00
Martin Felis
f3db8b67d0 Fixed compilation with latest master. 2026-02-05 21:55:18 +01:00
Martin Felis
14329e606e Properly initialize animation player when loading a scene. 2026-02-02 20:38:55 +01:00
Martin Felis
f07b54e42b Minor fixes and typos. 2026-02-02 18:40:32 +01:00
Martin Felis
00ea4b8b7e BlendTreeEditor starts to be usable. 2026-02-02 16:17:33 +01:00
Martin Felis
f1a42302a6 Nodes now properly keep their positions in the blend tree. 2026-02-01 10:39:37 +01:00
Martin Felis
a764222c02 Added missing parameter to BLTAnimationNode::get_input_index binding. 2026-02-01 10:16:18 +01:00
Martin Felis
a2295680d1 Ensure nodes that are added to the tree but not within the subtree of the root are still referenced after sorting. 2026-02-01 10:15:48 +01:00
Martin Felis
0554691e46 WIP: making BlendTree Editor usable. 2026-01-30 15:33:27 +01:00
Martin Felis
6330e34ea5 Renaming SyncedAnimationGraph -> Blendalot 2026-01-29 23:27:36 +01:00
Martin Felis
89c3c38757 Made BlendTree Editor more robust. 2026-01-29 23:21:38 +01:00
Martin Felis
50243eafba Minor additional work on the BlendTreeEditor. 2026-01-28 21:05:16 +01:00
Martin Felis
4c428a865a BlendTree nodes can now be removed. 2026-01-28 21:04:46 +01:00
Martin Felis
1e7dd4ba45 BlendTree connection can now be removed. 2026-01-25 00:05:32 +01:00
Martin Felis
d3fe4afc57 WIP: BlendTree editor. 2026-01-24 15:39:12 +01:00
Martin Felis
fd13c53e52 Exposed additional functions to GDScript to implement a GDScript based EditorPlugin. 2026-01-24 15:38:27 +01:00
Martin Felis
5d0bf10ce7 Prevent crash when trying to evaluate without an existing Skeleton3D. 2026-01-23 12:05:39 +01:00
Martin Felis
67acbb35b3 Started working on editor to create and test more complex graphs. 2026-01-18 23:27:59 +01:00
Martin Felis
625a3ae79f Started exposing more functions to GDScript and made BLTBlendTreeGraph part of BLTBlendTree such that return codes look nicer in Godot. 2026-01-18 23:02:06 +01:00
Martin Felis
0b6589f241 More distinctive naming to avoid name clashes with AnimationTree nodes. 2026-01-17 00:46:40 +01:00
Martin Felis
ecf3b0fef2 Substantial performance improvements by refactoring AnimationData allocations.
AnimationData is now a buffer and a hashmap with offsets of the TrackValues. During graph initialization all used TrackValues get registered and their offsets computed.

AnimationData should now be allocated by the AnimationDataAllocator. It takes care of pooling already allocated AnimationDatas and also has a buffer block that contains the default values making it fast to allocate a new AnimationData with the initial pose / default values.
2026-01-16 15:27:33 +01:00
Martin Felis
0e38a2ef65 Minor performance improvements. 2026-01-16 09:54:59 +01:00
Martin Felis
a5577eceea Added profiling statements to SyncedAnimationGraph. 2026-01-16 09:53:18 +01:00
Martin Felis
338a77d5e2 Renaming to Blendalot AnimGraph. 2026-01-13 21:08:50 +01:00
Martin Felis
2b7cf5bc66 Improved the demo. 2026-01-12 22:23:24 +01:00
Martin Felis
603df6c377 Some documentation extensions. 2026-01-12 22:03:22 +01:00
Martin Felis
47e9ebc7b0 Minor cleanup. 2026-01-12 21:39:16 +01:00
Martin Felis
c6f37c8ef1 Updated demo project. 2026-01-11 22:20:39 +01:00
Martin Felis
75b4df8c65 SyncTracks are now initialized from Markers, extended UnitTests and did some cleanup. 2026-01-11 21:35:51 +01:00
Martin Felis
3bb0725e3e Properly applying both translation and rotation to bones. 2025-12-31 20:30:28 +01:00
Martin Felis
69bb2d7980 Initial version with working synced blending. 2025-12-31 18:50:42 +01:00
Martin Felis
f1641f3ac3 Added SyncTrack class. 2025-12-31 17:16:19 +01:00
Martin Felis
810c6bd9d7 Access node parameter values directly instead of keeping a copy in SyncedAnimationGraph. 2025-12-31 16:39:29 +01:00
Martin Felis
1fca7cfe88 Initial support for animation graph parameters editable in the editor. 2025-12-31 13:47:45 +01:00
Martin Felis
05c1bae346 Preparation of demo project to actually run SyncedBlendTrees. 2025-12-31 13:39:38 +01:00
Martin Felis
ae2e2787cd Minor code cleanup. 2025-12-29 16:02:06 +01:00
Martin Felis
8a47bc5508 Minor documentation improvement. 2025-12-29 15:55:29 +01:00
Martin Felis
537712c806 Added saving and loading blend tree resources. 2025-12-29 15:25:10 +01:00