add architecture
This commit is contained in:
282
docs/architecture/animation-catalog.md
Normal file
282
docs/architecture/animation-catalog.md
Normal file
@@ -0,0 +1,282 @@
|
||||
# Animation Requirements Catalog — Modular Game Framework
|
||||
|
||||
**For: Animator / Technical Animator | UE 5.5–5.7 | GASP-Based**
|
||||
|
||||
This catalog lists every animation asset needed across all 135 blueprint systems, organized by system category, with trigger, type, body region, and GASP integration notes.
|
||||
|
||||
---
|
||||
|
||||
## How to Use This Catalog
|
||||
|
||||
1. **Montages** = Root motion or in-place split into sections with notifies
|
||||
2. **BlendSpaces** = Parameter-driven blending (speed, direction, strafe angle)
|
||||
3. **PoseAssets** = Single-frame poses for IK targets or overlay blending
|
||||
4. **IK Rigs** = Procedural arm/leg positioning
|
||||
|
||||
**GASP Integration Rule:** All full-body locomotion animations route through [`ABP_GASP`](../CONTEXT.md:9). Systems notify GASP via dispatchers; GASP reads state variables and selects the correct animation.
|
||||
|
||||
---
|
||||
|
||||
## 1. Locomotion System (GASP Core — Extended, Not Replaced)
|
||||
|
||||
| Trigger | Asset Type | Body | Notes |
|
||||
|---------|-----------|------|-------|
|
||||
| `Idle` → `Walking` → `Jogging` → `Sprinting` | **BlendSpace** | Full | GASP core locomotion blend. Speed + direction + strafe angle as params. Extended by framework: extra sprint variant for exhaustion, injured walk variant |
|
||||
| `Crouching` + moving | **BlendSpace** | Full | Crouch locomotion. Speed as param. Separate from standing blendspace |
|
||||
| `Prone` / `Crawling` | **BlendSpace** or **Montage** | Full | Prone crawl. Slow. Forward only initially, with strafe variants |
|
||||
| `Jump Start` / `Jump Loop` / `Jump Land` | **Montage** (3 sections) | Full | Jump with velocity-based land (soft/hard). Motion matching picks jump type |
|
||||
| `Fall Loop` | **BlendSpace** | Full | Falling animation based on vertical velocity |
|
||||
| `Land Soft` / `Land Hard` / `Land Roll` | **Montage** | Full | Velocity threshold determines land type. `OnLanded` dispatcher drives selection |
|
||||
| `Turn In Place` (90°, 180°) | **Montage** | Full | Root motion turn. Triggered by GASP when exceeding rotation threshold |
|
||||
| `Start Walk` / `Stop Walk` | **BlendSpace** (inertialization) | Full | GASP handles via motion matching — no separate asset needed |
|
||||
|
||||
---
|
||||
|
||||
## 2. Player Vital States
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_HealthSystem` (08) | `OnDeath` | **Montage** (4 sections) | Full | `E_DeathAnimationStage`: PreDeath (stagger), DeathAnim (fall), PostDeath (dark), RespawnTransition (fade-up). Directional death variants (front/back/left/right) |
|
||||
| `BPC_HealthSystem` (08) | `OnDamageTaken` (minor) | **Montage** (upper overlay) | Upper | Flinch reaction, brief |
|
||||
| `BPC_StaminaSystem` (09) | `OnExhaustionStateChanged` → Exhausted | **Montage** (loop) | Upper | Heavy breathing + hunched posture. `ABP_GASP` reads `bExhausted` |
|
||||
| `BPC_StaminaSystem` (09) | Exhausted → Sprint attempt | **Montage** | Full | Failed sprint start — stumble |
|
||||
| `BPC_StressSystem` (10) | `OnStressTierChanged` → Panicked | **PoseAsset** | Full | Shaky hands, rapid breathing chest rise. Blend weight scales with stress |
|
||||
| `BPC_StressSystem` (10) | `OnStressTierChanged` → Catatonic | **Montage** | Full | Freeze in place, stumble, collapse |
|
||||
| `BPC_StressSystem` (10) | `OnHallucinationTriggered` | **Montage** (upper) | Upper | Flinch at hallucination, head whip |
|
||||
|
||||
---
|
||||
|
||||
## 3. Hiding & Stealth
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_HidingSystem` (12) | `EnterHideSpot` (Locker) | **Montage** | Full | Open locker, step in, close door. Notify: `OnAnimationHideEnterComplete` |
|
||||
| `BPC_HidingSystem` (12) | `EnterHideSpot` (BehindCover) | **Montage** | Full | Crouch behind cover, settle |
|
||||
| `BPC_HidingSystem` (12) | `EnterHideSpot` (Under) | **Montage** | Full | Crawl under bed/table |
|
||||
| `BPC_HidingSystem` (12) | `EnterHideSpot` (InShadow) | **Montage** | Full | Step into shadow, blend with darkness |
|
||||
| `BPC_HidingSystem` (12) | `EnterHideSpot` (TallGrass) | **BlendSpace** (crouch) | Full | Crouch-walk through vegetation (locomotion, not one-shot) |
|
||||
| `BPC_HidingSystem` (12) | `ExitHideSpot` (all types) | **Montage** | Full | Reverse of enter. `bForceExit` skips animation |
|
||||
| `BPC_HidingSystem` (12) | `ExitHideSpot` (forced — enemy discovered) | **Montage** | Full | Burst out stumbling |
|
||||
| `BPC_HidingSystem` (12) | `StartPeek` (Left/Right/Over) | **PoseAsset** (blend) | Upper | Lean/peek pose. Not full-body — camera shifts |
|
||||
| `BPC_HidingSystem` (12) | `HoldBreath Start` / `HoldBreath End` | **Montage** (upper) | Upper | Hand over mouth, exhale |
|
||||
|
||||
---
|
||||
|
||||
## 4. Interaction & World Manipulation
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BP_DoorActor` (19) | `Open` / `Close` | **Timeline** (world) | — | Door mesh rotation — not a character anim |
|
||||
| `BP_ItemPickup` (25) | `BeingPickedUp` | **Montage** | Arms | Reach down, grab item, pocket. Notify: `OnPickupAnimationComplete` |
|
||||
| `BP_ItemPickup` (25) | `Idle Bob` / `Rotate` | **Timeline** (world) | — | Item floating bobbing/rotating — not character |
|
||||
| `BPC_ContextualTraversalSystem` (21) | `Vault` | **Montage** (root motion) | Full | Hands on obstacle, vault over. Motion Warping to obstacle edge |
|
||||
| `BPC_ContextualTraversalSystem` (21) | `Mantle` | **Montage** (root motion) | Full | Grab ledge, pull up, step over. Motion Warping to ledge top |
|
||||
| `BPC_ContextualTraversalSystem` (21) | `Slide` | **Montage** (root motion) | Full | Slide under low obstacle |
|
||||
| `BPC_ContextualTraversalSystem` (21) | `Squeeze` | **Montage** (root motion) | Full | Side-step through narrow gap |
|
||||
| `BPC_ContextualTraversalSystem` (21) | `LedgeGrab` / `LedgeHang` | **Montage** (loop) + **PoseAsset** | Full | Hanging from ledge. Motion Warping to ledge edge |
|
||||
| `BPC_PhysicsDragSystem` (22) | `GrabObject` | **PoseAsset** (IK) | Arms | Hand IK target to grab socket |
|
||||
| `BPC_PhysicsDragSystem` (22) | `DragObject` (moving) | **BlendSpace** (upper overlay) | Upper | Walking while dragging. IK hand stays locked |
|
||||
| `BPC_UsableWorldObjectSystem` (23) | `UseLever` / `UsePanel` / `UseValve` | **Montage** (upper) | Upper | Hand reaches to interaction point. IK to target socket |
|
||||
|
||||
---
|
||||
|
||||
## 5. Weapon & Combat — General
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BP_WeaponBase` (69) | `Equip` (from holster) | **Montage** | Upper | Draw weapon animation. `E_EquipAnimationType.Equip` |
|
||||
| `BP_WeaponBase` (69) | `Holster` (to holster) | **Montage** | Upper | Holster animation. `E_EquipAnimationType.Holster` |
|
||||
| `BP_WeaponBase` (69) | `Unequip` (drop/switch) | **Montage** | Upper | Reverse of equip |
|
||||
| `BPC_EquipmentSlotSystem` (30) | `InstantEquip` | None | — | No animation — weapon appears instantly |
|
||||
|
||||
---
|
||||
|
||||
## 6. Firearm Combat
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_FirearmSystem` (74) | `Fire` (Pistol) | **Montage** (single) | Upper | Recoil + slide cycle. Notify: `OnAmmoConsumed` |
|
||||
| `BPC_FirearmSystem` (74) | `Fire` (Shotgun) | **Montage** | Upper | Pump action. Heavier recoil |
|
||||
| `BPC_FirearmSystem` (74) | `Fire` (Rifle Auto) | **Montage** (loop) | Upper | Automatic fire loop until trigger released |
|
||||
| `BPC_ReloadSystem` (78) | `TacticalReload` (ammo > 0) | **Montage** | Upper | Mag out, mag in. Notify: `OnMagOut`, `OnMagIn`, `OnReloadComplete` |
|
||||
| `BPC_ReloadSystem` (78) | `EmptyReload` (ammo = 0) | **Montage** | Upper | Mag out, mag in, bolt cycle. Longer. Same notifies |
|
||||
| `BPC_ReloadSystem` (78) | `ReloadInterrupt` | **Blend** | Upper | Blend back to idle from any reload notify point |
|
||||
| `BPC_FirearmSystem` (74) | `ChamberCheck` | **Montage** (upper) | Upper | Quick chamber check animation |
|
||||
| `BPC_RecoilSystem` (77) | `Recoil` (per shot) | **Procedural** (spring arm) | — | Camera recoil + hand animation via spring arm offset. Not a montage |
|
||||
|
||||
---
|
||||
|
||||
## 7. Melee Combat
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_MeleeSystem` (76) | `LightAttack` (Combo 1/2/3) | **Montage** | Upper | 3-hit combo. Sections: Combo_1, Combo_2, Combo_3. Notify: `Notify_Windup`, `Notify_Active`, `Notify_Recovery`, `Notify_CanCombo` |
|
||||
| `BPC_MeleeSystem` (76) | `HeavyAttack` | **Montage** | Upper | Slow windup, high damage. `E_AttackType.HeavyAttack` |
|
||||
| `BPC_MeleeSystem` (76) | `ChargeAttack` | **Montage** | Upper | Hold to charge, release to strike. Charge duration tracked |
|
||||
| `BPC_MeleeSystem` (76) | `SprintAttack` | **Montage** | Upper | Running melee attack |
|
||||
| `BPC_MeleeSystem` (76) | `Block Start` / `Block Loop` / `Block End` | **Montage** (loop) | Upper | Block stance loop. Owner movement speed reduced |
|
||||
| `BPC_MeleeSystem` (76) | `Parry` | **Montage** | Upper | Quick parry deflection. Active window via `Notify_ParryWindow` |
|
||||
| `BPC_MeleeSystem` (76) | `ParryRiposte` | **Montage** | Upper | Counter-attack after successful parry |
|
||||
| `BPC_ShieldDefenseSystem` (79) | `ShieldRaise` / `ShieldLower` | **Montage** | Upper | Raise/lower shield |
|
||||
| `BPC_ShieldDefenseSystem` (79) | `Block Impact` (shield hit) | **Montage** (additive) | Upper | Additive shake on shield hit |
|
||||
|
||||
---
|
||||
|
||||
## 8. Hit Reactions & Damage
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_HitReactionSystem` (75) | `OnDamageTaken` (Light) | **Montage** (additive) | Full | Flinch. Directional: front/back/left/right |
|
||||
| `BPC_HitReactionSystem` (75) | `OnDamageTaken` (Heavy) | **Montage** | Full | Stagger backward. Directional |
|
||||
| `BPC_HitReactionSystem` (75) | `OnDamageTaken` (Knockdown) | **Montage** | Full | Fall to ground |
|
||||
| `BPC_HitReactionSystem` (75) | `GetUp` (from knockdown) | **Montage** | Full | Stand up from ground |
|
||||
| `BPC_HitReactionSystem` (75) | `Stagger Loop` | **PoseAsset** (loop) | Full | Dazed swaying while standing |
|
||||
| `BPC_DamageReceptionSystem` (72) | `Death` (instant, no death loop) | **Montage** | Full | Ragdoll-triggered death |
|
||||
|
||||
---
|
||||
|
||||
## 9. Death & Respawn
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_DeathHandlingSystem` (39) | `DeathAnim` (standard) | **Montage** | Full | See HealthSystem death — same asset, called via `E_DeathAnimationStage.DeathAnim` |
|
||||
| `BPC_DeathHandlingSystem` (39) | `PreDeath` (camera lock) | **PoseAsset** (freeze) | Full | Freeze frame-like pose on killing blow |
|
||||
| `BPC_DeathHandlingSystem` (39) | `RespawnTransition` | **PostProcess** (fade) | — | Screen fade-up — no skeletal anim |
|
||||
| `BPC_AltDeathSpaceSystem` (38) | `EnterAltDeathSpace` | **Montage** | Full | Being pulled into void/portal |
|
||||
| `BPC_AltDeathSpaceSystem` (38) | `Void Walk` | **BlendSpace** | Full | Walking in alt death space — slow, floating feel |
|
||||
| `BPC_AltDeathSpaceSystem` (38) | `ExitAltDeathSpace` | **Montage** | Full | Emerging from void/portal back to world |
|
||||
| `BPC_AltDeathSpaceSystem` (38) | `Void Idle` | **PoseAsset** | Full | Floating idle in void |
|
||||
|
||||
---
|
||||
|
||||
## 10. Narrative & Dialogue
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_DialoguePlaybackSystem` (60) | `OnLineStarted` | None | — | VO audio only. Lip-sync handled by audio waveform, not animation |
|
||||
| `BPC_DialoguePlaybackSystem` (60) | `Dialogue Idle` | **PoseAsset** (upper) | Upper | Subtle hand gestures, head nods during dialogue. Blend by line intensity |
|
||||
| `BPC_CutsceneBridge` (64) | Cutscene animation | **Level Sequence** | Full | All cutscene animation authored in Sequencer, not as montages |
|
||||
| `BPC_CutsceneBridge` (64) | `Transition` (Fade/HardCut/Letterbox) | **PostProcess** (UWidget) | — | Black bars, fade overlay — UI animation |
|
||||
| `BPC_NarrativeStateSystem` (58) | `OnMilestoneReached` (major) | None | — | May trigger cutscene or audio stinger |
|
||||
|
||||
---
|
||||
|
||||
## 11. AI Enemy
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BP_EnemyBase` (80) | `Patrol Walk` | **BlendSpace** | Full | Slow patrol locomotion. Speed + direction params |
|
||||
| `BP_EnemyBase` (80) | `Search Walk` | **BlendSpace** | Full | Faster search locomotion |
|
||||
| `BP_EnemyBase` (80) | `Combat Strafe` | **BlendSpace** | Full | Strafing combat locomotion. Direction angle param |
|
||||
| `BP_EnemyBase` (80) | `Flee Sprint` | **BlendSpace** | Full | Sprinting away |
|
||||
| `BP_EnemyBase` (80) | `Attack` (melee) | **Montage** | Upper | Enemy-specific attack montage |
|
||||
| `BP_EnemyBase` (80) | `Attack` (ranged) | **Montage** | Upper | Enemy-specific ranged attack |
|
||||
| `BP_EnemyBase` (80) | `Hit Reaction` (light/heavy) | **Montage** | Full | Enemy hit reactions — same as player but different skeleton |
|
||||
| `BP_EnemyBase` (80) | `Death` | **Montage** → **Ragdoll** | Full | Death animation blending to ragdoll |
|
||||
| `BPC_AlertSystem` (82) | `Suspicious` (head turn) | **Montage** (additive) | Upper | Head snap toward sound. Body turn |
|
||||
| `BPC_AlertSystem` (82) | `Alerted` (weapon raise) | **Montage** | Full | Raise weapon, enter combat stance |
|
||||
| `BPC_AlertSystem` (82) | `Combat → Search` (weapon lower) | **Montage** | Full | Lower weapon, start searching |
|
||||
| `BPC_BehaviourVariantSelector` (88) | Variant-specific attacks | **Montage** | Upper | Chooses from multiple variant attack sets |
|
||||
| `BPC_FearSystem` (90) | `Fearful` (enemy) | **PoseAsset** | Full | Cowering, whimpering pose |
|
||||
|
||||
---
|
||||
|
||||
## 12. Embodiment & IK
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_EmbodimentSystem` (13) | `CheckWallProximity` | **IK Rig** (arms) | Arms | Arm IK offset when near walls. Notifies `ABP_Arms` |
|
||||
| `BPC_EmbodimentSystem` (13) | `SetVisibilityMode` (ArmsOnly/FullBody/Hidden) | Mesh visibility toggle | — | Not an animation — mesh component visibility |
|
||||
| `BPC_EmbodimentSystem` (13) | `OnOverlayChanged` (blood/water/dirt) | Material parameter | — | Overlay material swap on body mesh |
|
||||
| `BPC_ConsumableSystem` (28) | `UseConsumable` (bandage, syringe) | **Montage** | Upper | Use item animation. IK hand to item |
|
||||
|
||||
---
|
||||
|
||||
## 13. Atmosphere & Environment (Non-Character)
|
||||
|
||||
| System | Trigger | Asset Type | Notes |
|
||||
|--------|---------|-----------|-------|
|
||||
| `BPC_LightEventController` (96) | `OnLightEvent` | **Timeline** (light intensity/color) | Light flicker, dim, color shift via timeline |
|
||||
| `BPC_AudioAtmosphereController` (95) | `OnAtmosphereChanged` | Audio fade (not anim) | Sound only |
|
||||
| `BPC_MemoryDriftSystem` (97) | Memory distortion active | **PostProcess** | Screen distortion — not skeletal |
|
||||
| `BPC_ScareEventSystem` (101) | `OnScareTriggered` | **Camera Shake** | Camera whip/shake |
|
||||
|
||||
---
|
||||
|
||||
## 14. UI Widget Animations (Non-Skeletal)
|
||||
|
||||
| System | Trigger | Animation Type |
|
||||
|--------|---------|---------------|
|
||||
| All `WBP_` widgets | Open/Close/Show/Hide | `UWidgetAnimation` (fade, slide, pulse, scale) |
|
||||
| `WBP_ScreenEffectController` (56) | Damage vignette, stress vignette | `UWidgetAnimation` (pulse, fade, color shift) |
|
||||
| `WBP_NotificationToast` (53) | Show/Hide | `UWidgetAnimation` (slide in, auto-dismiss) |
|
||||
| `WBP_InteractionPromptDisplay` (48) | Show/Hide | `UWidgetAnimation` (fade in/out) |
|
||||
|
||||
---
|
||||
|
||||
## Summary — Asset Count by Type
|
||||
|
||||
| Asset Type | Count (Approx) | Systems Served |
|
||||
|-----------|----------------|----------------|
|
||||
| **BlendSpaces** (locomotion) | 8–12 | Movement, AI, Hiding |
|
||||
| **Montages** (action/reaction) | 40–55 | Weapons, Melee, Hiding, Death, Traversal, HitReaction, Enemy |
|
||||
| **PoseAssets** | 8–12 | Stress, Peek, Embodiment, Idle |
|
||||
| **IK Rigs** | 2–4 | Embodiment, Physics Drag |
|
||||
| **Timelines** (non-skeletal) | 8–12 | Doors, Pickups, Lights, UI |
|
||||
| **Procedural** (recoil, camera) | 2–4 | Recoil, Camera Shake |
|
||||
| **Level Sequences** (cutscenes) | Per-content | Cutscene Bridge |
|
||||
|
||||
**Grand Total: ~70–100 skeletal animation assets + per-cutscene Level Sequences**
|
||||
|
||||
---
|
||||
|
||||
## GASP Animation Notify Contract
|
||||
|
||||
The following animation notifies must be present in montages for the framework to function:
|
||||
|
||||
| Notify Name | Used By | Purpose |
|
||||
|-------------|---------|---------|
|
||||
| `Notify_Windup` | `BPC_MeleeSystem` | Begin melee hit detection window |
|
||||
| `Notify_Active` | `BPC_MeleeSystem` | Enable hit collision overlap |
|
||||
| `Notify_Recovery` | `BPC_MeleeSystem` | Disable hit collision, start combo window |
|
||||
| `Notify_CanCombo` | `BPC_MeleeSystem` | Window during which next combo input is accepted |
|
||||
| `Notify_ParryWindow` | `BPC_MeleeSystem` | Parry-active frames |
|
||||
| `Notify_OnAnimationHideEnterComplete` | `BPC_HidingSystem` | Hide spot enter animation finished |
|
||||
| `Notify_OnAnimationHideExitComplete` | `BPC_HidingSystem` | Hide spot exit animation finished |
|
||||
| `Notify_OnMagOut` | `BPC_ReloadSystem` | Magazine removed from weapon |
|
||||
| `Notify_OnMagIn` | `BPC_ReloadSystem` | Magazine inserted into weapon |
|
||||
| `Notify_OnReloadComplete` | `BPC_ReloadSystem` | Reload finished, ammo refilled |
|
||||
| `Notify_OnPickupAnimationComplete` | `BP_ItemPickup` | Pickup animation finished, item collected |
|
||||
| `Notify_OnAmmoConsumed` | `BPC_FirearmSystem` | Ammo consumed during fire animation |
|
||||
| `Notify_TraversalEnd` | `BPC_ContextualTraversalSystem` | Traversal animation complete, return to locomotion |
|
||||
|
||||
---
|
||||
|
||||
## Priority Order for Animation Production
|
||||
|
||||
1. **GASP Locomotion Base** (Idle, Walk, Jog, Sprint, Crouch, Jump, Land, Turn) — required for any movement
|
||||
2. **Hiding Enter/Exit** (Locker, BehindCover, Under) — core stealth mechanic
|
||||
3. **Traversal** (Vault, Mantle, Slide, Squeeze, LedgeGrab) — level navigation
|
||||
4. **Weapon Equip/Holster** (Pistol, Shotgun, Rifle, Melee, Shield) — combat foundation
|
||||
5. **Weapon Fire/Reload/Melee** — combat moment-to-moment
|
||||
6. **Hit Reactions** (Light/Heavy/Knockdown per direction) — combat feedback
|
||||
7. **Death & Respawn** — game loop completion
|
||||
8. **Interaction** (Pickup, Lever, Valve, Panel) — world interaction
|
||||
9. **Stress/Fear/Exhaustion Poses** — atmosphere and tension
|
||||
10. **AI Locomotion + Combat** — enemy behaviors
|
||||
11. **Alt Death Space** — optional deep feature
|
||||
|
||||
---
|
||||
|
||||
*Animation Catalog v1.0 — Aligned with Modular Game Framework Blueprint Specs. Handoff-ready for Animator.*
|
||||
## 16. New States — Sitting, Injured, Heart Rate (Breathing)
|
||||
|
||||
| System | Trigger | Asset Type | Body | Notes |
|
||||
|--------|---------|-----------|------|-------|
|
||||
| `BPC_StateManager` (NEW) | `Sitting` (entered via world interaction point) | **Montage** | Full | Sit down transition. Loop pose for idle sitting. Camera limited to head freelook |
|
||||
| `BPC_StateManager` (NEW) | `StandUp` (from Sitting) | **Montage** | Full | Stand up transition |
|
||||
| `BPC_StateManager` (NEW) | `Injured` (health ≤ 30%) | **BlendSpace** (locomotion overlay) | Full | Limping walk animation. Reduced speed. One arm favoring (visible on overlay) |
|
||||
| `BPC_StateManager` (NEW) | `Injured` idle | **PoseAsset** | Full | Injured idle stance — favoring one side, shallow breathing |
|
||||
| `BPC_StateManager` (NEW) | Heart rate breathing | **Blend** (additive on torso) | Upper | Breathing amplitude increases with `ABP_GASP.HeartRate` parameter. 60 BPM = shallow, 150+ BPM = heavy chest heaving |
|
||||
| `BPC_StateManager` (NEW) | Heart rate — Erratic | **Blend** (additive, random variation) | Upper | Irregular breathing rhythm when `E_PlayerVitalSignals.Erratic`. Random amplitude jumps |
|
||||
| `BPC_StateManager` (NEW) | `E_OverlayState.Injured` | **PoseAsset** (upper) | Upper | Injured arm lowered, favoring — applied via overlay system to GASP |
|
||||
Reference in New Issue
Block a user