- 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.
4.9 KiB
WBP_PauseMenu / WBP_SettingsMenu / WBP_InventoryMenu
WBP_JournalDocumentViewer / WBP_ObjectiveDisplay
WBP_NotificationToast / WBP_ScreenEffectController
WBP_AccessibilityUI / WBP_DiegeticHUDFrame
WBP_MenuFlowController / WBP_CreditsScreen
UI Widget Assets — Quick Creation Sheet (11 widgets)
UE5 Path:
Content/Framework/UI/Parent Class:UserWidget
WBP_PauseMenu
Canvas: Vertical Box (centered) → Resume, Settings, Save, Load, Quit to Menu, Quit to Desktop
Key Logic:
Event Construct:
└─ Set Input Mode: UI + ShowCursor
btn_Resume.OnClicked:
└─ Call SS_UIManager.PopWidget() → Set Input Mode: Game
WBP_SettingsMenu
Canvas: Tab buttons (Audio, Video, Controls, Gameplay, Accessibility) + settings panels
Key Logic:
Audio Tab → Volume sliders → SS_AudioManager.SetBusVolume(Category, Volume)
Video Tab → Resolution dropdown, Fullscreen toggle, Quality presets
Controls Tab → Key rebinding list → SS_EnhancedInputManager.RebindKey(Action, Key)
Gameplay Tab → Difficulty, subtitle toggle, aim assist
Accessibility Tab → WBP_AccessibilityUI embedded
On Apply → SaveSettings → SS_SettingsSystem.ApplyAndSave()
On Back → If dirty → "Save changes?" dialog
WBP_InventoryMenu
Canvas: Grid panel (8 columns) + item detail panel on right + weight bar at bottom
Key Logic:
Event Construct:
├─ Get Pawn → BPC_InventorySystem → Bind OnInventoryChanged → RefreshGrid
└─ Bind OnWeightChanged → UpdateWeightBar
RefreshGrid:
├─ Clear Grid children
└─ For each slot → Create WBP_InventorySlot widget → Add to Grid
OnSlotClicked(SlotIndex):
├─ If dragging → SwapSlots
├─ If right-click → ShowContextMenu (Use, Equip, Drop, Examine)
└─ Show item detail in right panel
WBP_JournalDocumentViewer
Canvas: ScrollBox with document entries + detail view on right
Key Logic:
Construct → BPC_DocumentArchiveSystem → GetAllDocuments()
└─ For each doc → create list item → on click → show full text + image
WBP_ObjectiveDisplay
Canvas: Vertical Box (top-right) — list of active objectives
Key Logic:
Bind GS_CoreGameState.OnObjectiveTagsChanged → Refresh
└─ For each ActiveObjectiveTag → lookup DA_ObjectiveData → show title + progress
WBP_NotificationToast
Canvas: Border (top-center, slides in/out) → Icon + Title + Subtitle
Key Logic:
ShowToast(Title, Subtitle, Icon, Duration):
├─ Set text
├─ Play SlideIn animation
└─ Delay(Duration) → Play SlideOut → Remove from parent
WBP_ScreenEffectController
Canvas: Full-screen overlay images (vignette, blood, healing, flash)
Key Logic:
PlayEffect(EffectType, Intensity, Duration):
├─ Switch EffectType
│ Damage → Show red vignette, fade to Intensity
│ Healing → Show green edge glow
│ Death → Show black fade
│ Flash → Show white screen
└─ Timeline: fade in, hold, fade out
Bind BPC_HealthSystem.OnHealthChanged → if damage → PlayEffect(Damage)
WBP_AccessibilityUI
Canvas: Toggles and sliders for accessibility options
Controls:
- Subtitles: On/Off + size slider
- Colorblind Mode: Off/Protanopia/Deuteranopia/Tritanopia
- Controller Remap: Per-platform button mapping
- Difficulty: Story/Easy/Normal/Hard/Nightmare
- Aim Assist: Off/Low/Medium/High
On change → call SS_SettingsSystem.SaveAccessibilitySettings()
WBP_DiegeticHUDFrame
Canvas: Empty container that renders to a material on the player's wristwatch/helmet
Key Logic:
- This widget renders to a RenderTarget
- The render target is assigned to the wristwatch mesh material
- Contents show mini-HUD: health dots, ammo count, compass
WBP_MenuFlowController
Not visual — state machine that manages menu transitions.
States: MainMenu → NewGame → Loading → InGame → Pause → Settings → Death → Credits
Key Logic:
PushMenu(MenuWidget):
├─ If current menu → hide
├─ Create new menu → add to viewport
└─ Store in MenuStack
PopMenu():
├─ Remove top menu from viewport
└─ Restore previous menu
OnBackPressed:
├─ If menu stack has entries → PopMenu
└─ If game and no stack → Show PauseMenu
WBP_CreditsScreen
Canvas: ScrollBox — auto-scrolling credits text
Key Logic:
Event Construct:
└─ Start Timeline → scroll credits text from bottom to top over 60 seconds
OnSkip (any key press):
└─ Jump to end → show "Thanks for Playing" → auto-transition to MainMenu
Test All Widgets
- Each widget displays in isolation (right-click → Run Widget)
- Pause menu toggles cursor correctly
- Settings save and persist across sessions
- Inventory grid updates when items change
- Notification toast animates in/out
- Screen effects don't block input