add blueprints
This commit is contained in:
52
docs/blueprints/08-weapons/77_BPC_RecoilSystem.md
Normal file
52
docs/blueprints/08-weapons/77_BPC_RecoilSystem.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# BPC_RecoilSystem — Actor Component
|
||||
|
||||
**File:** [`Content/Framework/Weapons/BPC_RecoilSystem`](Content/Framework/Weapons/BPC_RecoilSystem.uasset)
|
||||
**Parent Class:** `UActorComponent`
|
||||
**Dependencies:** [`DA_WeaponData`](49_BP_WeaponBase.md), [`BPC_FirearmSystem`](BPC_FirearmSystem.md), [`BPC_CameraStateLayer`](../02-player/14_BPC_CameraStateLayer.md)
|
||||
|
||||
**Purpose:** Handles procedural recoil: camera kick, recovery curve, and ADS recoil reduction. Works with `BPC_FirearmSystem` to apply per-weapon recoil patterns.
|
||||
|
||||
---
|
||||
|
||||
## Variables
|
||||
|
||||
| Name | Type | Description |
|
||||
|------|------|-------------|
|
||||
| `RecoilPattern` | CurveVector | Per-weapon kick pattern (X=pitch, Y=yaw) |
|
||||
| `RecoverySpeed` | Float | How fast camera returns to rest |
|
||||
| `ADSRecoilMultiplier` | Float | Recoil reduction while aiming (0.3-0.7) |
|
||||
| `CurrentRecoilOffset` | Vector2D | Accumulated recoil offset |
|
||||
| `bIsRecovering` | Bool | Recovery in progress |
|
||||
|
||||
## Functions / Events
|
||||
|
||||
| Name | Inputs | Outputs | What it does |
|
||||
|------|--------|---------|--------------|
|
||||
| `ApplyRecoil` | ShotCount: Integer, bADS: Bool | — | Applies recoil kick based on weapon pattern |
|
||||
| `ResetRecoil` | — | — | Clears accumulated offset |
|
||||
| `TickRecovery` | DeltaTime: Float | — | Lerps CurrentRecoilOffset back toward zero |
|
||||
| `SetRecoilPattern` | Pattern: CurveVector | — | Loads per-weapon recoil data from DA_WeaponData |
|
||||
|
||||
## Blueprint Flow
|
||||
|
||||
```
|
||||
[FirearmSystem fires] -> ApplyRecoil(shotCount, bADS)
|
||||
-> Look up RecoilPattern value at shotCount index
|
||||
-> Apply ADSRecoilMultiplier if bADS
|
||||
-> Add to CurrentRecoilOffset
|
||||
-> Push offset to BPC_CameraStateLayer
|
||||
-> Start recovery timer on tick
|
||||
```
|
||||
|
||||
## Communications With
|
||||
|
||||
| Target System | Method | Why |
|
||||
|---------------|--------|-----|
|
||||
| `BPC_FirearmSystem` | Direct call from ApplyRecoilRequest | Receives fire events |
|
||||
| `BPC_CameraStateLayer` | Direct ApplyFOVModifier | Camera kick application |
|
||||
|
||||
## Reuse Notes
|
||||
|
||||
- RecoilPattern is a CurveVector from DA_WeaponData — swap per weapon
|
||||
- For hitscan weapons, call ApplyRecoil on every shot. For projectile, call on fire release
|
||||
- Recovery runs on tick when bIsRecovering; disable tick at rest for performance
|
||||
Reference in New Issue
Block a user