- Created Save/Load & Death Loop asset sheet detailing checkpoint, death handling, and respawn systems. - Added UI widget creation sheets for pause menu, settings menu, inventory, journal viewer, objective display, notification toast, screen effect controller, accessibility UI, diegetic HUD frame, menu flow controller, and credits screen. - Implemented HUD controller and interaction prompt display assets with detailed wiring instructions. - Established narrative systems asset sheet including components for narrative state, objectives, dialogue playback, and branching consequences. - Developed weapons, AI, and adaptive systems asset creation sheet outlining weapon base, enemy AI components, and adaptive gameplay mechanics. - Compiled meta, settings, and polish asset creation sheet covering progress tracking, achievement systems, accessibility settings, and various polish components. - Defined input actions and mapping contexts for enhanced input system, including gameplay actions and context priorities. - Created state management assets including enums, structs, data asset, and state manager component for action gating and state transitions.
3.6 KiB
3.6 KiB
Interaction Systems — Asset Creation Sheet (8 assets)
UE5 Path:
Content/Framework/Interaction/
BPC_InteractionDetector (Component)
Parent: ActorComponent → Attach to player pawn
| Variable | Type | Default |
|---|---|---|
InteractionRange |
Float | 300.0 |
InteractionChannel |
TraceChannel | Visibility |
HoldDuration |
Float | 0.5 |
CurrentFocusedActor |
Actor | None |
Key Logic:
Tick → LineTraceByChannel(Camera Forward * Range)
├─ Hit actor implements I_Interactable?
│ True → if different from CurrentFocused → Call OnFocusBegin on new, OnFocusEnd on old
│ False → Clear focus
├─ If holding interact → accumulate hold timer
│ Timer >= HoldDuration → trigger OnInteract
└─ Fire dispatchers: OnFocusBegin, OnFocusEnd, OnHoldProgress
Dispatchers: OnInteractionDetected(Actor, PromptText), OnFocusLost, OnHoldProgress(Float)
I_HidingSpot (Interface)
Create: Right-click → Blueprint → Blueprint Interface → Name: I_HidingSpot
| Function | Inputs | Outputs |
|---|---|---|
CanPlayerHide |
Player (Actor) |
Boolean, BlockReason (Text) |
OnPlayerEnter |
Player (Actor) |
— |
OnPlayerExit |
Player (Actor) |
— |
GetEntryTransform |
— | Transform |
GetPeekTransforms |
— | Array<Transform> |
IsOccupied |
— | Boolean |
GetHidingSpotType |
— | GameplayTag |
BPC_DiegeticDisplay (Component)
Parent: ActorComponent → Attach to wristwatch/helmet actor
| Variable | Type | Default |
|---|---|---|
DisplayWidgetClass |
WBP_DiegeticHUDFrame |
Assign |
RenderTarget |
TextureRenderTarget2D |
512x512 |
bIsActive |
Boolean | false |
BP_DoorActor (Actor)
Parent: Actor → Add StaticMesh (door frame) + StaticMesh (door panel)
| Variable | Type | Default |
|---|---|---|
DoorState |
GameplayTag | Framework.Interaction.Door.Closed |
bIsLocked |
Boolean | false |
RequiredKeyTag |
GameplayTag | Empty |
OpenAngle |
Float | 90.0 |
OpenSpeed |
Float | 3.0 |
Implements: I_Interactable, I_Lockable, I_Toggleable, I_Persistable
BP_PuzzleDeviceActor (Actor)
Parent: Actor → Base class for all puzzle devices
| Variable | Type | Default |
|---|---|---|
PuzzleData |
DA_PuzzleData |
Assign |
CurrentStep |
Integer | 0 |
bIsSolved |
Boolean | false |
ActivationSequence |
Array<Actor> |
Linked devices |
BPC_ContextualTraversalSystem (Component)
Attach to: Player pawn — works with GASP Motion Warping
| Variable | Type | Default |
|---|---|---|
TraversalTraceDistance |
Float | 200.0 |
VaultHeight |
Float | 120.0 |
MantleHeight |
Float | 200.0 |
BPC_PhysicsDragSystem (Component)
Attach to: Player pawn
| Variable | Type | Default |
|---|---|---|
DragForce |
Float | 500.0 |
HoldDistance |
Float | 200.0 |
HeldActor |
Actor | None |
BPC_UsableWorldObjectSystem (Component)
Attach to: Player pawn
| Variable | Type | Default |
|---|---|---|
CurrentUsable |
Actor | None |
bIsUsing |
Boolean | false |
Test These
- Walk up to door → prompt "Open Door [E]" → press E → door opens
- Locked door → prompt "Locked — Requires Key Card" → can't open
- Run toward low wall → auto-vault (ContextualTraversal)
- Grab physics object → drags in front of player → release throws