133 lines
5.4 KiB
Markdown
133 lines
5.4 KiB
Markdown
# 72 — BPC_AccessibilitySettings
|
||
|
||
## Blueprint Spec — UE 5.5–5.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 |