54 Commits

Author SHA1 Message Date
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
Martin Felis
46f940a67c Added Blend2 node (no syncing, yet). 2025-12-27 16:27:54 +01:00
Martin Felis
56fde580c3 WIP: Blend2 node and blending of AnimationData. 2025-12-22 00:37:27 +01:00
Martin Felis
f4eea6d2d4 Minor cleanup. 2025-12-21 18:12:34 +01:00
Martin Felis
e09995c3fa Initial support of actual blend tree evaluation. 2025-12-19 10:53:19 +01:00
Martin Felis
ea2cb6b8e8 Extended documentation of animation syncing. 2025-12-19 10:52:41 +01:00
Martin Felis
1384d4a156 WIP: blend tree setup and evaluation tests. 2025-12-13 22:38:45 +01:00
Martin Felis
9a79abf4d6 WIP: blend tree setup and node sorting. 2025-12-12 10:44:18 +01:00
Martin Felis
0d916c98dd WIP: blend tree evaluation setup and tests 2025-12-10 09:22:33 +01:00
Martin Felis
5880dde6ec WIP: refactored test to use a fixture, started working on Blend Tree evaluation. 2025-12-08 22:47:00 +01:00
Martin Felis
33fae3458b WIP: reworking ownership of evaluation data during Blend Tree evaluation. 2025-12-07 22:09:28 +01:00
Martin Felis
1732ecb8bd Added simple unit test that uses an AnimationSamplerNode and a procedural animation. 2025-12-05 17:20:35 +01:00
Martin Felis
757c5ee51c Using AnimationSamplerNode for evaluation.
Known issues:
- It seems that only rotations are applied.
- Memory is likely not properly freed.
2025-12-03 22:43:24 +01:00
Martin Felis
f5893df6b0 Removed unused animation_tree reference. 2025-12-03 21:58:44 +01:00
Martin Felis
b754bc061f Removed code that needed private access to AnimationMixer. 2025-12-03 21:09:25 +01:00
Martin Felis
f232c5f51a Expanded design documents. 2025-11-28 14:45:48 +01:00
Martin Felis
d61c7926fa Further expanded design documents. 2025-11-28 14:25:58 +01:00
Martin Felis
bc3eee9537 Expanded design documents. 2025-11-28 00:07:45 +01:00
Martin Felis
5dfd44d52a WIP 2025-11-23 18:14:02 +01:00
Martin Felis
1b2a0e98d3 Added design ramblings. 2025-11-23 18:13:58 +01:00
Martin Felis
6f8a580e26 WIP 2025-11-22 16:45:05 +01:00