[//]: # (Movement/ManualTestingChecklist.md) # Movement System - Manual Testing Checklist ## Тестовая среда - **Уровень:** TestLevel с BP_MainCharacter - **Требования:** MovementComponent инициализирован --- ## 1. Инициализация системы ### 1.1 Базовая инициализация - [ ] **InitializeMovementSystem()** выполняется без ошибок при запуске уровня - [ ] **IsInitialized flag** устанавливается в true после инициализации - [ ] **Angle conversion** - пороги корректно конвертируются из градусов в радианы --- ## 2. Константы движения ### 2.1 Default значения - [ ] **MaxSpeed = 600.0** - значение установлено по умолчанию - [ ] **Acceleration = 10.0** - значение установлено по умолчанию (уменьшено для плавности) - [ ] **Friction = 8.0** - значение установлено по умолчанию - [ ] **Gravity = 980.0** - значение установлено по умолчанию ### 2.2 Пороговые углы - [ ] **Walkable = 50.0°** - значение по умолчанию в градусах - [ ] **SteepSlope = 85.0°** - значение по умолчанию в градусах - [ ] **Wall = 95.0°** - значение по умолчанию в градусах --- ## 3. Базовое движение (Этап 7) ### 3.1 Управление клавиатурой - [ ] **W** - персонаж движется вперед (+X направление) - [ ] **S** - персонаж движется назад (-X направление) - [ ] **A** - персонаж движется влево (+Y направление) - [ ] **D** - персонаж движется вправо (-Y направление) - [ ] **Отсутствие input** - персонаж останавливается ### 3.2 Управление геймпадом - [ ] **Left Stick Up** - движение вперед - [ ] **Left Stick Down** - движение назад - [ ] **Left Stick Left** - движение влево - [ ] **Left Stick Right** - движение вправо - [ ] **Stick в центре** - персонаж останавливается ### 3.3 Физика движения - [ ] **Плавное ускорение** - персонаж набирает скорость постепенно при нажатии клавиш - [ ] **Плавное торможение** - персонаж останавливается плавно при отпускании клавиш - [ ] **MaxSpeed limit** - скорость не превышает 600.0 units/sec - [ ] **Диагональное движение** - скорость диагонального движения равна прямому (не быстрее) - [ ] **Стабильное поведение** - нет рывков, заиканий или неожиданных ускорений ### 3.4 Состояния движения - [ ] **Idle state** - MovementState = Idle когда персонаж стоит - [ ] **Walking state** - MovementState = Walking при движении - [ ] **InputMagnitude** - корректно отражает силу input (0-1) - [ ] **CurrentSpeed** - показывает текущую горизонтальную скорость --- ## 4. Debug HUD Integration ### 4.1 Movement Constants Page (Page 1) - [ ] **Константы** отображаются корректно: - Max Speed: 600 - Acceleration: 10 - Friction: 8 - Gravity: 980 - [ ] **Текущее состояние** отображается: - Current Velocity: X, Y, Z компоненты - Speed: горизонтальная скорость - Is Grounded: Yes (пока всегда true) - Surface Type: Walkable (пока всегда) - Movement State: Idle/Walking - Input Magnitude: 0.00-1.00 ### 4.2 Реальное время обновления - [ ] **Velocity** изменяется в реальном времени при движении - [ ] **Speed** корректно показывает magnitude горизонтальной скорости - [ ] **Movement State** переключается между Idle и Walking - [ ] **Input Magnitude** отражает силу нажатия (особенно на геймпаде) --- ## 5. Автотесты Integration ### 5.1 FT_BasicMovement - [ ] **Тест проходит** - инициализация, ускорение, торможение, состояния - [ ] **No console errors** при выполнении автотеста ### 5.2 FT_DiagonalMovement - [ ] **Тест проходит** - диагональное движение не быстрее прямого - [ ] **Input normalization** работает корректно --- ## 6. Performance ### 6.1 Производительность - [ ] **Stable 60+ FPS** при активном движении - [ ] **No memory leaks** при длительном использовании - [ ] **Smooth movement** без микро-заиканий ### 6.2 Отзывчивость - [ ] **Instant response** на нажатие клавиш (нет input lag) - [ ] **Smooth transitions** между состояниями движения - [ ] **Consistent timing** независимо от FPS --- ## Критерии прохождения - [ ] Все основные направления движения работают - [ ] Физика движения плавная и отзывчивая - [ ] MaxSpeed limit соблюдается - [ ] Диагональное движение не дает преимущества в скорости - [ ] Debug HUD показывает корректные данные движения - [ ] Автотесты проходят успешно - [ ] Performance стабильная **Примечание:** Этап 7 фокусируется на базовом движении по плоскости. Camera-relative движение и поворот персонажа будут в этапе 8.