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