42 Commits

Author SHA1 Message Date
Martin Felis
86ea476881 Renamed AnimData to Pose. 2025-03-19 21:43:01 +01:00
Martin Felis
f52b19a8d2 Further cleanup and added comments. 2025-03-19 21:12:27 +01:00
Martin Felis
283306f225 Minor cleanup and added comments. 2025-03-18 22:20:50 +01:00
Martin Felis
2ea2c56bbb Refactored BlendTreeResources to be a subclass of AnimGraphResource.
The latter is used to abstract saving/loading for both BlendTrees and StateMachines.
2025-03-16 18:15:31 +01:00
Martin Felis
a1c4630ee7 Nodes can now be deleted in the blend tree editor. 2025-03-02 19:30:26 +01:00
Martin Felis
feb5f57a86 Refactored construction of AnimNodeResources and AnimGraphResources by using factory methods more consistently. 2025-03-02 12:45:55 +01:00
Martin Felis
5a6ac92a48 Using bits of the blueprints examples for the AnimGraphEditor. 2025-02-16 22:12:31 +01:00
Martin Felis
40f631c51a Fixed memory leak by introducing virtual node descriptors.
AnimNodeResources do not reference an actual node anymore. However, we still need descriptors to check whether connections are valid.

For this we have VirtualNodeDescriptors for which all sockets point to nullptr.
2025-02-16 14:22:13 +01:00
Martin Felis
4b378adc91 Minor cleanup. 2025-02-16 12:31:44 +01:00
Martin Felis
99d5a5eb0f Minor refactor. 2024-05-07 18:50:38 +02:00
Martin Felis
84fc49af30 Properly store and restore node positions in editor. 2024-05-01 12:50:16 +02:00
Martin Felis
44087d7a7c Removed legacy editor, started working on editing embedded graphs. 2024-04-30 18:40:54 +02:00
Martin Felis
5e34aaf3db Extremely basic blend tree editing. 2024-04-25 21:12:08 +02:00
Martin Felis
c267276be3 Fixed connection validation when one of the nodes is an embedded blend tree. 2024-04-24 21:38:11 +02:00
Martin Felis
53c0bff7a6 Minor cleanup. 2024-04-21 12:47:19 +02:00
Martin Felis
91e226945c Added basic connection validation and connection removal to BlendTreeResources. 2024-04-21 12:42:49 +02:00
Martin Felis
d95bc9fb9c Made BlendTreeResource::m_nodes and ::m_connections private.
This is a prerequisite to properly track Node input/output connections and to compute eval order in the BlendTreeResources.
2024-04-16 22:18:11 +02:00
Martin Felis
2d5337ed1d Reduced connection data block size.
Previously we allocated a block for each connection. However when an output is reused by multiple connections this lead to duplicates. It also obfuscated which block is actually being used.
2024-04-08 21:52:03 +02:00
Martin Felis
8694a11416 Removed even more unused files. 2024-04-05 00:18:07 +02:00
Martin Felis
cd56efca3d Only storing single socket in AnimGraphConnections and simplified wiring logic. 2024-04-04 19:36:20 +02:00
Martin Felis
28eca48a61 Added a test that checks socket propagation into an embedded BlendTree. 2024-04-01 17:59:25 +02:00
Martin Felis
76ea38f118 Added support of time updates for simple embedded graphs. 2024-04-01 12:33:23 +02:00
Martin Felis
0aebe44bd5 Started working on evaluating embedded blend trees. 2024-03-25 22:26:29 +01:00
Martin Felis
116bf7699b Added support of saving and loading of embedded blend tree resources. 2024-03-24 21:50:22 +01:00
Martin Felis
e687c9b613 Restored AnimGraphResourceTests. 2024-03-20 22:40:46 +01:00
Martin Felis
ccb9bc4e9b Working on unified BlendTree and StateMachine handling. 2024-03-17 22:06:27 +01:00
Martin Felis
c809fe0c8c Fixed various clang-tidy messages. 2023-04-21 10:04:04 +02:00
Martin Felis
c659909020 Fixed loading of graphs in the GraphEditor. 2023-04-21 10:04:04 +02:00
Martin Felis
9a1a82f681 Fixed loading of graphs in the GraphEditor. 2023-04-15 21:52:01 +02:00
Martin Felis
0a45497de9 Added LockTranslationNode. 2023-04-02 21:40:49 +02:00
Martin Felis
abf44a875a Added support for const node inputs. 2023-04-02 16:26:24 +02:00
Martin Felis
42303d5f47 Store the input values of nodes if they are non-zero. 2023-04-01 22:53:53 +02:00
Martin Felis
3d55b748e6 Refactored anim graph data usage and evaluation.
- Refactored NodeSocketAccessor to NodeDescriptor.
- Connections are wired up during AnimGraph instantiation.
  - Output and input sockets point to the same memory location.
  - No re-wiring needed during evaluation.
  - AnimGraph are pre-allocated (refactoring for less memory usage postponed).
- Evaluation of AnimGraph now possible from the editor.
2023-04-01 14:16:20 +02:00
Martin Felis
91607baa9d Initial step for connectivity refactor.
Instead of wiring up pointers with prepareNodeEval() and finishNodeEval() use for each connection a single memory block where outputs and inputs point to.
2023-03-30 23:50:07 +02:00
Martin Felis
08283d9bcf Evaluation of very simple graphs works. 2023-03-28 22:00:58 +02:00
Martin Felis
e38c0b4934 Started working on graph initialization in ATP Editor. 2023-03-26 23:39:11 +02:00
Martin Felis
68331467f0 Refactored graph evaluations. 2022-04-18 20:02:16 +02:00
Martin Felis
5e7a48b2eb WIP: graph evaluations. Fixed various memory issues, better tests. 2022-04-14 18:03:36 +02:00
Martin Felis
2da07ef961 Working on graph evaluations. WIP. 2022-04-13 15:48:39 +02:00
Martin Felis
eeef635c64 Initial works for actial animation sampling and graph evaluation. 2022-04-11 16:46:09 +02:00
Martin Felis
08ae84fcb4 New evaluation scheme.
- Animation Data are always referenced via a pointer in nodes.
- Animation Data storage pointers are injected from graph when node is evaluated.
- Node value outputs always stored in node.
- Node value inputs always referenced via pointer. References are created when instantiating the graph.
2022-04-01 13:19:54 +02:00
Martin Felis
6c0c0599f8 Removed old animation graph code. 2022-03-25 11:51:37 +01:00