add blueprints
This commit is contained in:
133
docs/blueprints/12-settings/104_BPC_AccessibilitySettings.md
Normal file
133
docs/blueprints/12-settings/104_BPC_AccessibilitySettings.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# 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
|
||||
Reference in New Issue
Block a user