diff --git a/AGENTS.md b/AGENTS.md index 251599d..fb59eae 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -229,6 +229,8 @@ The editor/game mode executable adds its own ECS modules: | EditorUISystem | ImGui property panels and scene management | | ProceduralTextureSystem | Runtime procedural texture generation | | ProceduralMaterialSystem | Runtime procedural material creation | +| AnimationTreeRegistry | Global named animation tree definitions | +| AnimationTreeSystem | Runtime evaluation of registry-referenced animation trees | #### PlayerControllerSystem @@ -276,6 +278,14 @@ One-shot actions (`E`, `F`, `I`, `Escape`) are still matched by `keysym.sym`. The spawner uses the entity's `TransformComponent` for spawn position/rotation. When the spawner itself moves/rotates/scales in the editor, the spawned character is updated to match; when the spawner is stationary, the character is left alone so it can move on its own. Spawned characters are created without `EditorMarkerComponent` and removed from the editor UI cache so they remain visible but are not selectable/editable in the editor. Registry changes that bump the character version trigger an immediate respawn. Scene serialization stores plain `spawnDistance`/`despawnDistance` values for readability while the component keeps squared values for comparisons. +#### AnimationTreeComponent + +- `treeName` - Name of the animation tree in `AnimationTreeRegistry`. +- `enabled` - Whether the tree is evaluated. +- `useRootMotion` - Whether root motion from the animation drives the character's linear velocity. + +The actual tree definition (node hierarchy, state machines, animations) lives in the `AnimationTreeRegistry`, persisted to `animation_tree.json`. Trees are authored in the registry editor (**Tools -> Animation Tree Registry**), where each entry can also select a skeleton source from the `Characters` resource group (one representative mesh per skeleton) to populate animation-name dropdowns. Old scenes and prefabs that stored the tree inline or referenced an `AnimationTreeTemplate` are migrated automatically on load. + ### Physics System Uses Jolt Physics with custom wrapper (legacy - `src/physics/physics.h`, current - `src/features/editScene/physics/physics.h`):