5.7 KiB
5.7 KiB
78 — WBP_SplashScreen
Blueprint Spec — UE 5.5–5.7
Parent Class
UserWidget
Dependencies
BPC_LoadingScreen— Transition to loadingBPC_AudioManager— Splash audioBPC_InputManager— Skip inputGI_GameManager— Boot flow control (Phase 0)SS_SaveManager— Check for existing save
Purpose
Introductory splash screen sequence shown on game boot before the main menu or loading screen. Displays company logos, game title, engine badges, and legal notices in a timed sequential presentation. Supports skip-to-main-menu via input, accessibility features (slow mode), and conditional branching based on save state.
Enums
ESplashElementType
| Value | Description |
|---|---|
| CompanyLogo | Developer/publisher logo |
| EngineLogo | UE5 logo, power badges |
| GameTitle | Full game title card |
| LegalNotice | Copyright, ratings info |
| Warning | Health/safety warnings |
| AccessibilityNotice | Accessibility info |
Structs
FSplashElement
| Field | Type | Description |
|---|---|---|
| ElementType | ESplashElementType | What to show |
| DisplayDuration | Float | Seconds to display |
| FadeInTime | Float | Fade in duration |
| FadeOutTime | Float | Fade out duration |
| Texture | UTexture2D | Logo/image to show |
| TitleText | FText | Optional text overlay |
| SubtitleText | FText | Optional subtitle |
| bCanSkip | Bool | Allow skip this element |
Variables
| Name | Type | Description |
|---|---|---|
SplashSequence |
TArray<FSplashElement> | Ordered splash elements |
CurrentElementIndex |
Int32 | Active element |
bIsPlaying |
Bool | Sequence running |
bSkipped |
Bool | User skipped |
bSlowMode |
Bool | Accessibility slow mode |
CurrentTimer |
Float | Element timer |
bTransitionComplete |
Bool | Sequence done |
Functions
| Name | Inputs | Outputs | Description |
|---|---|---|---|
PlaySplashSequence |
— | — | Start boot splash |
ShowElement |
Element: FSplashElement | — | Display single element |
AdvanceToNext |
— | — | Move to next element |
SkipSplash |
— | — | End sequence early |
FadeInElement |
Duration: Float | — | Fade animation |
FadeOutElement |
Duration: Float | — | Fade animation |
HandleInput |
Action: FName | — | Skip/confirm binding |
OnSequenceComplete |
— | — | Splash finished |
SetSlowMode |
bEnabled: Bool | — | Accessibility mode |
CheckSaveState |
— | Bool | Has existing save |
Blueprint Flow
[PlaySplashSequence]
└─► Create splash sequence from configuration:
CompanyLogo (3s display, 1s fade in/out)
EngineLogo (2s display, 0.5s fade in/out)
GameTitle (4s display, 1.5s fade in/out)
LegalNotice (3s display, 1s fade in/out)
└─► bIsPlaying = true
└─► CurrentElementIndex = 0
└─► ShowElement(SplashSequence[0])
└─► Bind input actions:
BPC_InputManager -> "Confirm" -> SkipSplash()
BPC_InputManager -> "Pause" -> SkipSplash()
[ShowElement]
└─► Get Element = SplashSequence[CurrentElementIndex]
└─► Set visibility for appropriate canvas panel
└─► If Element.Type == CompanyLogo:
Set logo image, center
└─► Else if Element.Type == GameTitle:
Set title text, subtitle, large text block
└─► Else if Element.Type == LegalNotice:
Set legal text, small, bottom-aligned
└─► Play FadeInElement(Element.FadeInTime)
└─► Timer = 0
└─► Tick:
Timer += DeltaTime
If Timer >= Element.DisplayDuration:
AdvanceToNext()
[AdvanceToNext]
└─► Play FadeOutElement(CurrentElement.FadeOutTime)
└─► On fade complete:
Hide current element
CurrentElementIndex++
If CurrentElementIndex >= SplashSequence.Length:
OnSequenceComplete()
Else:
ShowElement(SplashSequence[CurrentElementIndex])
[SkipSplash]
└─► If bSkipped: return
└─► bSkipped = true
└─► Fade out current element (fast, 0.2 seconds)
└─► Clear all elements
└─► OnSequenceComplete()
[OnSequenceComplete]
└─► bIsPlaying = false
└─► CheckSaveState():
If save exists: Load main menu
If no save: Show main menu (new game focus)
If first boot ever: Show language/accessibility prompt
└─► Broadcast OnSplashComplete()
└─► Remove self from viewport
Event Dispatchers
| Name | Payload | Description |
|---|---|---|
OnSplashComplete |
bSkipped: Bool | Splash sequence done |
Communications With
| Target | Method | Why |
|---|---|---|
BPC_LoadingScreen |
Direct call | Load main menu |
BPC_AudioManager |
Direct call | Splash audio |
BPC_InputManager |
Event binding | Skip input |
GI_GameManager |
Direct call | Boot flow |
SS_SaveManager |
Direct call | Save detection |
Reuse Notes
- Fully configurable splash sequence via data
- Supports accessibility slow mode (doubles all durations)
- Skip input at any point
- First-boot branching for language/accessibility setup
- Handles both new game and existing save flows
- Legal notice compliance baked into sequence
- Can be reused for "press any key" or demo mode splash screens