54 lines
1.7 KiB
Markdown
54 lines
1.7 KiB
Markdown
# DA_BehaviourVariant — Data Asset
|
|
|
|
**Parent Class:** `UDataAsset`
|
|
**Dependencies:** [`BPC_BehaviourVariantSelector`](../09-ai/)
|
|
**Purpose:** Defines AI behaviour variants — patrol patterns, aggression levels, flee thresholds, and combat tactics.
|
|
|
|
---
|
|
|
|
## Variables / Structure
|
|
|
|
| Field | Type | Description |
|
|
|-------|------|-------------|
|
|
| `VariantTag` | `FGameplayTag` | Unique behaviour variant identifier |
|
|
| `AggressionLevel` | `float` | 0.0 (passive) to 1.0 (hyper-aggressive) |
|
|
| `FleeHealthThreshold` | `float` | Health % below which AI flees |
|
|
| `CombatTactic` | `ECombatTactic` | Flank, Rush, Ambush, Ranged, HitAndRun |
|
|
| `PatrolSpeed` | `float` | Walk speed during patrol (cm/s) |
|
|
| `ChaseSpeed` | `float` | Run speed during chase |
|
|
| `DetectionModifier` | `float` | Multiplier for perception ranges |
|
|
| `ReinforcementCallRadius` | `float` | Distance to call nearby allies |
|
|
| `bCanUseCover` | `bool` | AI can use cover points |
|
|
| `PreferredWeaponType` | `EWeaponType` | Melee, Ranged, Throwable |
|
|
|
|
---
|
|
|
|
## Gameplay Tags
|
|
- Namespace: `Behaviour.<Type>` (e.g., `Behaviour.Aggressive`, `Behaviour.Stealthy`)
|
|
|
|
---
|
|
|
|
## Validation Rules
|
|
- `VariantTag` must be unique
|
|
- `AggressionLevel` must be 0.0-1.0
|
|
|
|
---
|
|
|
|
## Example Data
|
|
|
|
| Field | Value |
|
|
|-------|-------|
|
|
| VariantTag | `Behaviour.Aggressive.Hunter` |
|
|
| AggressionLevel | 0.8 |
|
|
| FleeHealthThreshold | 0.15 |
|
|
| CombatTactic | Flank |
|
|
|
|
---
|
|
|
|
## Consumed By
|
|
- [`BPC_BehaviourVariantSelector`](../09-ai/)
|
|
- [`AI_BaseAgentController`](../09-ai/AI_BaseAgentController.md)
|
|
|
|
## Reuse Notes
|
|
- Behaviour variants are data-driven; new tactics added without code
|
|
- Variant selection is influenced by difficulty, fear, and narrative state |