Enhance narrative systems with detailed implementation guides and data-driven structures
- Updated BPC_NarrativeStateSystem with a comprehensive manual implementation guide, including class setup, variable initialization, and function breakdowns. - Expanded BPC_ObjectiveSystem documentation to include a manual implementation guide and detailed function descriptions. - Added a manual implementation guide for BPC_DialoguePlaybackSystem, outlining class setup and function nodes. - Introduced a manual implementation guide for BPC_DialogueChoiceSystem, detailing choice presentation and selection processes. - Enhanced BPC_BranchingConsequenceSystem documentation with a manual implementation guide for consequence evaluation. - Updated BPC_TrialScenarioSystem with a manual implementation guide for scenario management. - Expanded BPC_LoreUnlockSystem documentation to include a manual implementation guide for lore entry management. - Added a manual implementation guide for BP_NarrativeTriggerVolume, detailing trigger volume setup and action execution. - Enhanced BPC_EndingAccumulator documentation with a manual implementation guide for ending evaluation. - Updated BPC_HitReactionSystem with a manual implementation guide for hit reaction management. - Added a manual implementation guide for BPC_RecoilSystem, detailing recoil application and recovery processes. - Introduced DT_ProjectTags.csv to define gameplay tags for various systems, enhancing data-driven design capabilities.
This commit is contained in:
@@ -156,4 +156,45 @@ A level-placed trigger volume that detects player overlap and fires narrative ac
|
||||
### Reuse Notes
|
||||
This is the primary level-design tool for narrative gating. Designers place volumes, configure action lists, and set prerequisite flags — no blueprint editing required. Supports all narrative action types. The `CustomEvent` action type allows designers to bind custom level blueprint logic when no predefined action fits.
|
||||
|
||||
- Renamed from `47_BPC_NarrativeTriggerVolume` to `BP_NarrativeTriggerVolume` per Master naming convention.
|
||||
- Renamed from `47_BPC_NarrativeTriggerVolume` to `BP_NarrativeTriggerVolume` per Master naming convention.
|
||||
|
||||
---
|
||||
|
||||
## Manual Implementation Guide
|
||||
|
||||
### Class Setup
|
||||
1. Create Blueprint Class: Parent = `Actor`, Name = `BP_NarrativeTriggerVolume`
|
||||
2. Add `BoxComponent` as Root (name: `CollisionBox`)
|
||||
3. Set Collision Preset = `OverlapOnlyPawn`
|
||||
|
||||
### Function Node-by-Node
|
||||
|
||||
#### `Event ActorBeginOverlap(OtherActor)` → `void`
|
||||
```
|
||||
Step 1: If NOT bIsEnabled → Return
|
||||
Step 2: Cast OtherActor to Player Character → if fail, Return
|
||||
Step 3: Check RequiredFlags → if any missing, Return
|
||||
Step 4: Check ExclusiveFlags → if any set, Return
|
||||
Step 5: TriggerType == Once AND bHasTriggered? → Return
|
||||
Step 6: Cooldown active? → Return
|
||||
Step 7: Call ExecuteActions(TriggerActions)
|
||||
Step 8: Set bHasTriggered = true, LastTriggerTime = Now
|
||||
```
|
||||
|
||||
#### `ExecuteActions(Actions: Array<FTriggerActionEntry>)` → `void`
|
||||
```
|
||||
ForEach Actions → Switch on ActionType:
|
||||
SetFlag → NarrativeState.SetFlag(Tag, true)
|
||||
PlayDialogue → DialoguePlayback.PlaySequence(Asset)
|
||||
PlayCutscene → CutsceneBridge.PlayCutscene(Asset)
|
||||
ActivateObjective → ObjectiveSystem.ActivateObjective(Tag)
|
||||
StartTrial → TrialScenario.StartScenario(Asset)
|
||||
UnlockLore → LoreUnlock.UnlockLoreByTag(Tag)
|
||||
GrantItem → Inventory.AddItem(Asset, 1)
|
||||
```
|
||||
|
||||
### Build Checklist
|
||||
- [ ] Create BP_NarrativeTriggerVolume with BoxComponent
|
||||
- [ ] Define ETriggerActionType enum and FTriggerActionEntry struct
|
||||
- [ ] Bind ActorBeginOverlap → check conditions → ExecuteActions
|
||||
- [ ] Test: walk into volume → dialogue plays → flag sets → one-shot prevents re-fire
|
||||
Reference in New Issue
Block a user