tengri/Content/Camera/ManualTestingChecklist.md

140 lines
7.1 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

[//]: # (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 должны давать одинаковые результаты на разных запусках.