[//]: # (Camera/ManualTestingChecklist.md) # Camera System - Manual Testing Checklist ## Тестовая среда - **Персонаж:** BP_MainCharacter с ShowDebugInfo = true - **Клавиши:** Tab (Toggle HUD), PageUp/PageDown (навигация), Home (Visual Debug) - **Требования:** CameraComponent инициализирован --- ## 1. Базовая инициализация ### 1.1 Система запуска - [ ] **Camera System** инициализируется без ошибок при старте уровня - [ ] **Debug HUD Page 5** отображается как "Camera System" - [ ] **Initial rotation** камеры установлена в (0°, 0°) - [ ] **IsCameraRotating()** возвращает false при отсутствии input ### 1.2 Интеграция с Input Device - [ ] **Input Device Reference** корректно устанавливается при инициализации - [ ] **Sensitivity switching** работает при смене устройства ввода - [ ] **No console errors** при инициализации системы --- ## 2. Управление мышью ### 2.1 Базовое вращение мышью - [ ] **Horizontal movement** мыши поворачивает камеру по Yaw - [ ] **Vertical movement** мыши поворачивает камеру по Pitch - [ ] **Smooth rotation** - нет рывков и заиканий - [ ] **Mouse sensitivity 100.0** - отзывчивая но не слишком быстрая ### 2.2 Ограничения вращения мышью - [ ] **Pitch limits** - камера не поворачивается выше +89° и ниже -89° - [ ] **Yaw freedom** - горизонтальное вращение без ограничений (360°+) - [ ] **Smooth clamping** - плавное достижение пределов без резких остановок --- ## 3. Управление геймпадом ### 3.1 Базовое вращение стиком - [ ] **Right stick horizontal** поворачивает камеру по Yaw - [ ] **Right stick vertical** поворачивает камеру по Pitch - [ ] **Gamepad sensitivity 150.0** - более высокая чувствительность чем мышь - [ ] **Smooth deadzones** - нет дрожания в центральном положении ### 3.2 Автоматическое переключение устройств - [ ] **Mouse movement** автоматически переключает на Mouse sensitivity - [ ] **Gamepad input** автоматически переключает на Gamepad sensitivity - [ ] **Seamless transition** - переключение без рывков камеры --- ## 4. Система сглаживания ### 4.1 Smooth interpolation - [ ] **SmoothingSpeed 20.0** - плавное движение камеры к цели - [ ] **Progressive acceleration** - камера ускоряется к target rotation - [ ] **Natural stop** - плавная остановка без overshooting ### 4.2 Responsiveness vs Smoothness - [ ] **Input lag** минимальный - камера реагирует мгновенно на input - [ ] **Visual smoothness** - движение камеры визуально плавное - [ ] **Consistent timing** - сглаживание работает стабильно при разных FPS --- ## 5. Debug HUD Integration ### 5.1 Camera Page (Page 5) - [ ] **Current Device** отображает "Keyboard & Mouse" или "Gamepad" - [ ] **Sensitivity** показывает текущее значение чувствительности (100.0 или 150.0) - [ ] **Pitch** отображает текущий угол наклона (-89° до +89°) - [ ] **Yaw** показывает текущий поворот (любые значения, включая >360°) - [ ] **Is Rotating** показывает "Yes" при активном input, "No" при покое - [ ] **Smoothing** отображает значение скорости сглаживания (20.0) - [ ] **Invert Y** показывает "No" (по умолчанию false) ### 5.2 Control hints - [ ] **Keyboard controls** показывают "PageUp/PageDown - Navigate" - [ ] **Gamepad controls** показывают "D-Pad Up/Down - Navigate" - [ ] **Dynamic switching** подсказок при смене устройства --- ## 6. Продвинутые функции ### 6.1 Y-axis inversion - [ ] **InvertYAxis = false** - стандартное поведение (mouse up = look up) - [ ] **Inversion calculation** - корректная инверсия при включении - [ ] **Both devices** - инверсия работает для мыши и геймпада ### 6.2 Edge cases - [ ] **Rapid input changes** - быстрые движения мыши обрабатываются корректно - [ ] **Extreme rotations** - Yaw может достигать больших значений (1000°+) - [ ] **Zero input** - IsCameraRotating() корректно возвращает false при InputMagnitude < 0.01 --- ## 7. Performance ### 7.1 Производительность - [ ] **No FPS drops** при активном вращении камеры - [ ] **Smooth 60+ FPS** во время интенсивного camera movement - [ ] **No memory leaks** при длительном использовании ### 7.2 System integration - [ ] **Main Character** - камера интегрирована без ошибок - [ ] **Debug HUD** - обновление camera page не влияет на производительность - [ ] **Input Device** - смена устройства не вызывает лагов --- ## 8. Функциональные триггеры ### 8.1 Навигация Debug HUD - [ ] **PageUp/PageDown** (keyboard) переключают страницы Debug HUD - [ ] **D-Pad Up/Down** (gamepad) переключают страницы Debug HUD - [ ] **Camera page** доступна и отображается корректно ### 8.2 Visual Debug - [ ] **F2** не влияет на camera system (нет связанного visual debug) - [ ] **F1 Toggle HUD** скрывает/показывает camera debug info --- ## Критерии прохождения - [ ] Все camera controls отзывчивые и плавные - [ ] Pitch limits строго соблюдаются (-89°/+89°) - [ ] Yaw rotation свободное (без ограничений) - [ ] Device detection и sensitivity switching работают автоматически - [ ] Debug HUD показывает актуальную информацию о camera state - [ ] Performance стабильная при любых camera movements - [ ] No console errors или warnings в camera system **Примечание:** Система полностью deterministic - одинаковые input sequence должны давать одинаковые результаты на разных запусках.