Система Передвижения - Документация¶
Обзор¶
Система передвижения в PolyQuest предоставляет полноценный 3D CharacterController с физикой, камерой, системой прыжков и бега.
Компоненты Системы¶
CharacterBody3D¶
Основной контроллер персонажа с физикой столкновений:
Скорость ходьбы: 5.0 единиц/секунду
Скорость бега: 10.0 единиц/секунду
Прыжок: 6.0 единиц/секунду
Гравитация: 9.8 единиц/секунду²
Форма коллизии: CapsuleShape3D (радиус 0.4, высота 1.6)
Camera3D¶
Камера от первого лица:
Позиция: 1.6 единиц над центром персонажа
Вращение: Следует за мышью
Чувствительность: 0.15
Ограничения: -80° до 80° по вертикали
Управление¶
Движение¶
W/S/A/D: Движение вперед/назад/влево/вправо
Shift: Бег (удвоенная скорость)
E: Прыжок
Камера¶
Мышь: Осмотр вокруг
ESC: Переключение захвата
Настройки Движения¶
Переменные¶
var walk_speed: float = 5.0 # Скорость ходьбы
var run_speed: float = 10.0 # Скорость бега
var jump_velocity: float = 8.0 # Сила прыжка
var gravity: float = 9.8 # Сила гравитации
Кнопки Управления¶
var move_forward: String = "up" # Движение вперед
var move_backward: String = "down" # Движение назад
var move_left: String = "left" # Движение влево
var move_right: String = "right" # Движение вправо
var jump_action: String = "ui_accept" # Прыжок (E)
var run_action: String = "shift" # Бег (Shift)
Физические Характеристики¶
Формулы Движения¶
Гравитация:
V = V0 - g*t(равноускоренное движение)Бег: При нажатии Shift скорость удваивается
Прыжок: Возможен только при контакте с землей (
is_on_floor())
Коллизия¶
Форма: CapsuleShape3D
Радиус: 0.4 единицы
Высота: 1.6 единицы
Центр: 0.8 единицы
Особенности¶
Прыжки¶
Прыжок возможен только при контакте с землей
Высота прыжка зависит от силы прыжка и массы персонажа
Автоматическое приземление при столкновении с объектами
Бег¶
При нажатии Shift персонаж бежит с удвоенной скоростью
Бег не влияет на прыжки и гравитацию
Энергозатраты не учитываются (можно бегать бесконечно)
Камера¶
Плавное вращение за мышью
Ограничение угла наклона для предотвращения переворота
Автоматическое обновление направления движения
Интеграция с Системой Предметов¶
При нахождении в радиусе действия предмета появляется подсказка
Клавиша E используется для подбора предметов
Инвентарь отображается в правом верхнем углу
Настройка¶
Скорость Движения¶
Измените переменные walk_speed и run_speed в CharacterBody3D.gd для изменения скорости персонажа.
Высота Прыжка¶
Отрегулируйте jump_velocity для изменения высоты прыжка.
Сила Гравитации¶
Измените gravity для настройки скорости падения.
Масса Персонажа¶
Измените mass для настройки влияния гравитации на персонажа.
Чувствительность Мыши¶
Измените значение в event.relative.x * 0.15 для настройки чувствительности камеры.
Решение Проблем¶
Персонаж Застревает¶
Проверьте коллизию с окружающими объектами
Убедитесь, что CapsuleShape3D правильно настроен
Камера Не Работает¶
Проверьте настройки ввода в project.godot
Убедитесь, что Camera3D правильно привязана к персонажу
Прыжки Не Работают¶
Проверьте значение
is_on_floor()Убедитесь, что
jump_velocityположительное
Бег Не Работает¶
Проверьте, что клавиша Shift правильно настроена в InputMap
Убедитесь, что переменная
run_speedбольшеwalk_speed
Будущие Улучшения¶
Возможные Добавления¶
Система энергии для бега
Разные типы поверхностей (лед, грязь)
Система усталости
Плавание и подводное движение
Система настроек управления (переназначение клавиш)