Document Batch 4C Pass 9 enemy AI archaeology: missing chase and attack implementation.

Records empty enemy EventGraphs, stock AIController possession, orphan attack montage, and separates GetASC defect from chase/attack failure.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-07-16 21:46:08 -07:00
co-authored by Cursor
parent e50c8032ef
commit 53315574a4
8 changed files with 354 additions and 216 deletions
@@ -2,32 +2,27 @@
**Status: Draft**
- **Scope:** Animation Blueprints, Montages, AnimNotify Blueprints, and ability-callback wiring for the five playable characters (Batch 4A Pass 8). Builds on Pass 6 montage seeds.
- **Inspection method:** AssetTools deps/referencers/tags; BlueprintTools list_graphs/variables/events + `read_graph_dsl` on notify `Received_Notify` and AnimBP EventGraphs; character ability paths correlated from Pass 6 (not re-walked).
- **Evidence classifications used:** Observed Implementation, Documented Intent, Observed Runtime Behavior, Inferred, Unknown.
- **Tool or visibility limitations:** Montage `Notifies` array unreadable via ObjectTools; asset-registry `AnimNotifyList` tag often empty for BP notifies; `read_graph_dsl` empty on AnimGraph/state/transition graphs; notify trigger times/section names not exposed; no dedicated Montage toolset. Notify presence recovered via dependency/referencer graphs + notify BP bodies.
- **Last updated:** 2026-07-16
- **Current phase:** Phase 1 — Static Architecture
- **Last completed pass:** Pass 8 (Batch 4A)
- **Next pass expected to contribute:** Pass 7 (GAS) or Pass 4/9 when authorized — not auto-started
- **Scope:** Animation Blueprints, Montages, AnimNotify Blueprints for playable characters (Pass 8) plus enemy AnimBP/montage findings required by Pass 9 combat archaeology.
- **Last completed pass:** Pass 9 (Batch 4C) — enemy animation seed
- **Next pass expected to contribute:** Pass 4 / Pass 10 when authorized
## Draft tracking
### Completed sections
- Per-character AnimBP architecture table
- Per-character AnimBP architecture table (playables)
- Per-ability Montage + notify tables
- AnimNotify/callback inventory (`AN_Ability_001004`, `AN_AttackComplete`)
- Resolved UseAbility* callers (montage notifies → BPI)
- Resolved UseAbility* callers
- Pass 6 reclassification table
- Cleanup via `AN_AttackComplete``SetIsAttacking`
- Networking/authority static notes for multicast montage + notify gameplay
- Networking/authority static notes
- Wizard / Gunslinger animation dependency confirmation
- **Pass 9:** `ABP_Skeleton` locomotion/Death; `Anim_SkeletonAttackMontage` orphan; `SetIsDead(false)` every Update
### Pending sections
- Exact notify trigger times / track indices (Requires Manual Editor Inspection)
- Montage section names / blend / root-motion flags (MCP unreadable)
- Transition-rule DSL for every AnimBP (partial reconstruction via VariableGet nodes on Paladin)
- Weapon collision enable/disable notify states (none found on inspected montages)
- Montage section names / blend / root-motion flags
- ABP_Skeleton Death transition rule pin details
### Evidence still required
- Manual editor confirmation of notify timing windows
@@ -173,3 +168,18 @@ Play rate: Multicast path uses rate **1** (Pass 6 / Amazonian agent). Start posi
12. **CurrentlyAttacking clear:** Via `AN_AttackComplete` for notify-driven attacks; interrupt cleanup Unknown.
13. **Death anims:** ABP Death state from `IsDead`; destruction/respawn remain character `PlayerDeath` (not notify-driven).
14. **Client-only gameplay timing:** Damage Authority-gated; presentation may diverge — Requires Runtime Inspection.
---
## Pass 9 — Enemy animation dependencies
| Character | AnimBP | Skeleton | Relevant state machines | Montage slots | Ability callbacks | Death path | Confidence |
|---|---|---|---|---|---|---|---|
| Skeleton enemy | `/Game/_Main/Animations/Enemies/Skeleton/ABP_Skeleton` | UE4_Mannequin_Skeleton (deps) | Locomotion: Idle/Walk/Run, Death | None used by combat | GetEnemyREF cache only | Death state + `Anim_Monster_Dead_1..4`; **`SetIsDead(false)` every Update** | High |
| Asset | Notify/callback | Character | Ability | Receiver | Downstream | Connection status |
|---|---|---|---|---|---|---|
| `Anim_SkeletonAttackMontage` | Unknown (unplayed) | Skeleton | Attack | None | None | **Present but Unreferenced** (0 referencers) |
| `ABP_Skeleton` Update | SetIsDead(false) | Skeleton | Death | Self | Blocks death flag | **Connected but Incomplete** |
No enemy AnimNotify → ApplyDamage path observed. Full enemy AI: `09-EnemyAI-StaticAnalysis.md`.