Files
UE5-Modular-Game-Framework/docs/blueprints/12-settings/104_BPC_AccessibilitySettings.md
Lefteris Notas 411edea8ce add blueprints
2026-05-19 13:22:27 +03:00

133 lines
5.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 72 — BPC_AccessibilitySettings
## Blueprint Spec — UE 5.55.7
---
### Parent Class
`ActorComponent`
### Dependencies
- [`SS_SettingsManager`](71_SS_SettingsManager.md) — Reads accessibility settings
- [`WBP_AccessibilityUI`](../06-ui/46_WBP_AccessibilityUI.md) — UI integration
- [`BPC_TutorialSystem`](73_BPC_TutorialSystem.md) — Tutorial accessibility
- [`BPC_AudioManager`](../10-adaptive/66_BPC_AudioManager.md) — Audio accessibility
### Purpose
Applies accessibility-focused modifications to the game based on user settings including colorblind modes, subtitle configuration, screen shake reduction, high-contrast UI, text-to-speech, reduced motion, and audio cue visualizations. Operates as a local player component that reads from SS_SettingsManager and applies changes at runtime.
### Enums
**EColorBlindMode**
| Value | Description |
|-------|-------------|
| None | Default colors |
| Protanopia | Red-blind filter |
| Deuteranopia | Green-blind filter |
| Tritanopia | Blue-blind filter |
**ESubtitleSize**
| Value | Description |
|-------|-------------|
| Small | Default size |
| Medium | 150% size |
| Large | 200% size |
| ExtraLarge | 300% size |
**EScreenShakeLevel**
| Value | Description |
|-------|-------------|
| Full | All screen shakes enabled |
| Reduced | 50% intensity cap |
| Minimal | 25% intensity cap |
| Off | No screen shake |
### Variables
| Name | Type | Description |
|------|------|-------------|
| `ColorBlindMode` | EColorBlindMode | Current colorblind filter |
| `SubtitleSize` | ESubtitleSize | Subtitle text scale |
| `bHighContrastUI` | Bool | High contrast mode |
| `bTextToSpeech` | Bool | TTS for UI text |
| `bReducedMotions` | Bool | Disable UI animations |
| `bLargeText` | Bool | Enlarge all UI text |
| `ScreenShakeLevel` | EScreenShakeLevel | Camera shake intensity |
| `bVisualizeAudioCues` | Bool | Show audio direction indicators |
| `bAutoReadDialogue` | Bool | Auto-play dialogue subtitles |
| `bPauseOnDialogue` | Bool | Auto-pause during dialogue |
| `bDisableFlashEffects` | Bool | Prevent strobe/photosensitive effects |
### Functions
| Name | Inputs | Outputs | Description |
|------|--------|---------|-------------|
| `Initialize` | — | — | Read settings, apply initial state |
| `SetColorBlindMode` | Mode: EColorBlindMode | — | Apply colorblind filter |
| `SetSubtitleSize` | Size: ESubtitleSize | — | Update subtitle scale |
| `SetHighContrastUI` | bEnabled: Bool | — | Toggle high contrast |
| `SetTextToSpeech` | bEnabled: Bool | — | Toggle TTS |
| `SetReducedMotions` | bEnabled: Bool | — | Toggle reduced motion |
| `SetLargeText` | bEnabled: Bool | — | Toggle large text |
| `SetScreenShakeLevel` | Level: EScreenShakeLevel | — | Update shake intensity |
| `SetVisualizeAudioCues` | bEnabled: Bool | — | Toggle audio visualization |
| `SetDisableFlashEffects` | bEnabled: Bool | — | Disable flashing effects |
| `ApplyColorBlindCorrection` | — | — | Post-process color matrix |
| `ApplyHighContrastMaterials` | — | — | Override UI material |
| `DisableFlashInVFX` | — | — | Remove strobe from VFXManager |
| `HandleDialogueAutoRead` | DialogueText: FText | — | TTS for dialogue |
| `ProvideAudioDirectionIndicator` | SoundLocation: FVector | — | Show direction arrow |
| `ReadUITextAloud` | Text: FText | — | TTS for UI elements |
### Blueprint Flow
```
[Initialize]
└─► Read from SS_SettingsManager:
ColorBlindMode = GetSetting("ColorBlindMode")
SubtitleSize = GetSetting("SubtitleSize")
bHighContrastUI = GetSettingBool("HighContrastUI")
etc.
└─► ApplyColorBlindCorrection()
└─► ApplyHighContrastMaterials()
└─► Register callbacks for OnSettingChanged dispatcher
[ApplyColorBlindCorrection]
└─► Use UPostProcessComponent on player camera
└─► Set Color Grading LUT based on mode:
Protanopia: Shift red channel matrix
Deuteranopia: Shift green channel matrix
Tritanopia: Shift blue channel matrix
└─► Apply via PostProcessSettings.ColorGradingSettings
[ApplyHighContrastMaterials]
└─► Override all WBP widget materials with high-contrast versions
└─► Increase outline thickness on all interactive elements
└─► Increase font weight and contrast ratio
[DisableFlashInVFX]
└─► Call BPC_VFXManager.SetFearVFXEnabled(false) during flash sequences
└─► Remove strobe flicker from BPC_LightingManager fear-reactive lights
└─► Replace flash transitions with fade transitions
```
### Communications With
| Target | Method | Why |
|--------|--------|-----|
| [`SS_SettingsManager`](71_SS_SettingsManager.md) | Event | Settings changes |
| [`BPC_VFXManager`](../10-adaptive/67_BPC_VFXManager.md) | Get owner | Disable flash effects |
| [`BPC_LightingManager`](../10-adaptive/65_BPC_LightingManager.md) | Get owner | Disable flicker |
| [`BPC_AudioManager`](../10-adaptive/66_BPC_AudioManager.md) | Get owner | Audio cues |
| [`BPC_TutorialSystem`](73_BPC_TutorialSystem.md) | Direct call | Accessible tutorials |
### Reuse Notes
- Color blindness correction uses post-process color grading matrix
- Subtitle scaling modifies URichTextBlock font size globally
- High contrast mode uses alternate widget styles
- Screen shake reduction caps camera shake intensity in player controller
- Visual audio cues use world-space widget arrows pointing to sound origin
- Flash effect disable also affects DynamicEvent light flicker