88 lines
2.8 KiB
Markdown
88 lines
2.8 KiB
Markdown
# BPC_ContextualTraversalSystem — Contextual Traversal System
|
||
|
||
**Parent Class:** `ActorComponent`
|
||
**Category:** Interaction
|
||
**Target UE Version:** 5.5–5.7
|
||
**Build Phase:** 2 — Interaction
|
||
|
||
---
|
||
|
||
## 1. Overview
|
||
|
||
`BPC_ContextualTraversalSystem` handles player traversal of environmental obstacles — vaulting, climbing, squeezing through gaps, sliding under obstacles. Uses motion warping and root motion for smooth traversal animations triggered by context-aware detection.
|
||
|
||
---
|
||
|
||
## 2. Enums
|
||
|
||
### `E_TraversalType`
|
||
|
||
| Value | Description |
|
||
|-------|-------------|
|
||
| `Vault` | Vault over low obstacles |
|
||
| `Mantle` | Climb up onto ledges |
|
||
| `Slide` | Slide under low barriers |
|
||
| `Squeeze` | Squeeze through narrow gaps |
|
||
| `LedgeGrab` | Grab and hang from ledges |
|
||
|
||
### `E_TraversalHeight`
|
||
|
||
| Value | Description |
|
||
|-------|-------------|
|
||
| `Low` | Below knee height (step up) |
|
||
| `Medium` | Waist height (vault) |
|
||
| `High` | Chest height (mantle) |
|
||
|
||
---
|
||
|
||
## 3. Variables
|
||
|
||
| Variable | Type | Description |
|
||
|----------|------|-------------|
|
||
| `DetectionRange` | `float` | Max distance to detect traversable surfaces |
|
||
| `DetectionHalfAngle` | `float` | Cone angle for forward detection |
|
||
| `VaultHeightThreshold` | `float` | Max height for vault vs mantle decision |
|
||
| `TraversalSpeed` | `float` | Speed multiplier during traversal anim |
|
||
| `bIsTraversing` | `bool` | Currently playing traversal animation |
|
||
| `CurrentTraversalType` | `E_TraversalType` | Active traversal type |
|
||
| `MotionWarpingTarget` | `FVector` | Target location for motion warping |
|
||
| `TraversalCooldown` | `float` | Min time between traversals |
|
||
|
||
---
|
||
|
||
## 4. Functions
|
||
|
||
| Function | Description |
|
||
|----------|-------------|
|
||
| `DetectTraversableObstacle` | Performs forward trace to detect vault/mantle points |
|
||
| `AttemptTraversal` | Initiates traversal to detected point. Returns bool |
|
||
| `ExecuteTraversal` | Plays traversal montage with motion warping |
|
||
| `OnTraversalComplete` | Callback when montage finishes |
|
||
| `CancelTraversal` | Interrupts traversal (damage/player input) |
|
||
| `IsTraversing` | Returns `bIsTraversing` |
|
||
|
||
---
|
||
|
||
## 5. Event Dispatchers
|
||
|
||
| Dispatcher | Payload | Description |
|
||
|------------|---------|-------------|
|
||
| `OnTraversalStarted` | `E_TraversalType Type`, `FVector Target` | Traversal animation begins |
|
||
| `OnTraversalComplete` | `E_TraversalType Type` | Player reaches target position |
|
||
| `OnTraversalFailed` | `FText Reason` | Traversal attempt blocked |
|
||
|
||
---
|
||
|
||
## 6. Dependencies & Communication
|
||
|
||
| System | Relationship |
|
||
|--------|--------------|
|
||
| `BPC_MovementStateSystem` | Movement mode override during traversal |
|
||
| `BPC_CameraStateLayer` | Camera FOV adjustment during traversal |
|
||
| `BPC_StressSystem` | Stress modifier for close-call traversals |
|
||
|
||
---
|
||
|
||
## 7. Reuse Notes
|
||
- Uses UE5 Motion Warping for accurate target placement
|
||
- Detection uses capsule trace at player height ranges |