52 lines
1.5 KiB
Markdown
52 lines
1.5 KiB
Markdown
# DA_HapticProfile — Data Asset
|
|
|
|
**Parent Class:** `UDataAsset`
|
|
**Dependencies:** [`BPC_HapticsController`](../12-settings/)
|
|
**Purpose:** Defines haptic feedback profiles for controller vibration and force feedback effects tied to gameplay events.
|
|
|
|
---
|
|
|
|
## Variables / Structure
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `ProfileTag` | `FGameplayTag` | Unique haptic profile identifier |
|
|
| `EventType` | `EHapticEvent` | Damage, Heartbeat, Explosion, Footstep, WeaponFire, AmbientPulse |
|
|
| `IntensityCurve` | `UCurveFloat*` | Vibration intensity over time |
|
|
| `Duration` | `float` | Total haptic effect duration (seconds) |
|
|
| `MotorMask` | `EHapticMotor` | Left, Right, Both |
|
|
| `Priority` | `int32` | Higher priority overrides lower during conflicts |
|
|
| `bCanInterrupt` | `bool` | Can this effect be interrupted by higher priority |
|
|
| `PlatformMinIntensity` | `float` | Minimum intensity per platform capability |
|
|
|
|
---
|
|
|
|
## Gameplay Tags
|
|
- Namespace: `Haptic.<Event>` (e.g., `Haptic.Damage.Heavy`, `Haptic.Heartbeat`)
|
|
|
|
---
|
|
|
|
## Validation Rules
|
|
- `ProfileTag` must be unique
|
|
- `Duration` must be > 0
|
|
- `IntensityCurve` must be valid
|
|
|
|
---
|
|
|
|
## Example Data
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| ProfileTag | `Haptic.Damage.Critical` |
|
|
| EventType | Damage |
|
|
| Duration | 0.5 |
|
|
| MotorMask | Both |
|
|
| Priority | 10 |
|
|
|
|
---
|
|
|
|
## Consumed By
|
|
- [`BPC_HapticsController`](../12-settings/)
|
|
|
|
## Reuse Notes
|
|
- Haptic profiles are platform-agnostic; translation handled by PlatformServiceAbstraction |