This runbook covers TODOS.phase-72.72.13.1.11: a camera shake intensity slider
for motion sensitivity, with a 0-100 percent range and a default of 100 percent.
Runtime Surface#
The camera shake intensity profile lives in V2UI:
- C++ header:
V2/ue/Source/V2UI/Public/V2CameraShakeIntensitySlider.h - C++ source:
V2/ue/Source/V2UI/Private/V2CameraShakeIntensitySlider.cpp - automation spec:
V2/ue/Source/V2Tests/Private/UI/CameraShakeIntensitySlider.spec.cpp - contract:
V2/ue/Content/V2/UI/Accessibility/CameraShakeIntensitySlider_V2_Contract.json - focused checker:
V2/ue/Tools/check-v2-camera-shake-intensity-slider.py
FV2CameraShakeIntensitySlider::BuildDefaultProfile returns
Accessibility.CameraShakeIntensity.V2 for the
Settings.Accessibility.CameraShakeIntensity settings row.
Slider Policy#
The default Accessibility settings screen exposes Camera shake as a slider:
- minimum: 0 percent;
- maximum: 100 percent;
- step: 5 percent;
- default: 100 percent.
The setting is stored on FV2UIAccessibilitySettings as
CameraShakeIntensityPercent. Normalize clamps and rounds the value to the
nearest supported step, and GetCameraShakeIntensityMultiplier resolves it to a
0.0-1.0 multiplier.
Runtime Resolution#
FV2CameraShakeIntensityProfile::ResolveShakeIntensity scales authored camera
shake intensity without amplification. A slider value of 0 percent resolves to
zero shake and disables camera shake playback. The resolution is marked
gameplay-deterministic and frame-data inert through
doesNotAffectHitStopFrameData so hit stop, frame data, and ranked simulation
are unaffected.
Required source coverage includes CombatHit, EnvironmentalImpact, VehicleImpact, Cinematic, and UIImpact shake sources.
Verification#
Run these checks after changing camera shake intensity slider behavior:
python3 V2/ue/Tools/check-v2-camera-shake-intensity-slider.py
python3 V2/ue/Tools/check-v2-settings-ui.py
python3 V2/ue/Tools/check-v2-ui-module.py
python3 V2/ue/Tools/check-v2-ci-workflow.py
python3 V2/tools/validate-v2-docs.py
python3 -m py_compile V2/ue/Tools/check-v2-camera-shake-intensity-slider.py V2/ue/Tools/check-v2-settings-ui.py V2/ue/Tools/check-v2-ci-workflow.py
python3 -m json.tool V2/ue/Content/V2/UI/Accessibility/CameraShakeIntensitySlider_V2_Contract.json
python3 -m json.tool V2/ue/Content/V2/UI/Settings/SettingsScreen_V2_Contract.json
Automation test name:
V2.UI.Accessibility.CameraShakeIntensitySlider.AssetContract.
Horde Gates#
camera-shake-intensity-slider-sourcecamera-shake-intensity-slider-rangecamera-shake-intensity-slider-defaultcamera-shake-intensity-slider-settings-rowcamera-shake-intensity-slider-resolutioncamera-shake-intensity-slider-automationcamera-shake-intensity-slider-ci-wired