Перейти к основному содержимому

Игровые контролы

Игровые контролы превращают объект в то, чем управляет посетитель: ходьба, полёт или перемещение по карте с видом сверху.

Добавляются они как триггер, а не как шаг. Поставьте триггер игрового управления на объект — и весь контроллер окажется в его настройках, а его ветви (простой, движение, прыжок, бег) позволят реагировать на то, что делает персонаж.

Контроллер живёт столько же, сколько объект. Выключите объект — и его нет; включите снова — и он вернулся.

Для персонажа нужны три вещи

Управляемый объект (этот триггер), что-то твёрдое, на чём стоять (пол с rigid body и коллайдером) и камера — или ничего, и она будет предоставлена.

Движение

НастройкаЧем управляет
Режимходьба, полёт или вид сверху
Где «вперёд»куда смотрит камера или собственные оси сцены
Скорость · множитель бегаметры в секунду и насколько быстрее с зажатым Shift
Ускорение · торможениесколько времени уходит на разгон и на сброс скорости
Поворот по движениюразворачивается ли объект лицом туда, куда идёт, и как быстро
Раскладка клавишWASD, стрелки или и то и другое
Высота прыжкав метрах — ноль означает, что прыжка нет
Управление в воздухесколько управляемости сохраняется в прыжке
Высота сбросападение ниже этой отметки возвращает персонажа на старт
Идти по кликуидти к точке, по которой нажали
Чем поворачивать видмышью, клавишами или и тем и другим
Ускорение — это время, а не скорость

«Полсекунды» означает, что контроллер прикладывает усилие, закрывающее разницу за полсекунды. Склоны, толчки и масса спорят с этим усилием, и именно поэтому движение ощущается физическим.

Ноль означает как можно быстрее — что не совсем мгновенно, потому что у персонажа всё равно есть масса.

Тело

Контроллер даёт вашему объекту капсулу и двигает его силами, так что он нормально сталкивается с миром, а не проскальзывает сквозь него.

НастройкаЧем управляет
Формакапсула или сфера
Радиус · высотав метрах
Смещениедвигает капсулу относительно объекта
Массаи насколько сильно он толкает, и насколько его трудно сдвинуть
Показать помощникрисует капсулу в редакторе

Уже сделали своё rigid body? Контроллер не трогает его, а просто управляет им, беря его массу. В противном случае он создаст тело за вас.

Твёрдыми считаются только объявленные тела

Ваши полы и стены останавливают персонажа, когда у них есть rigid body и коллайдер. Обычная декоративная геометрия — это декорация, и персонаж проходит сквозь неё. → Физика

Гравитация берётся из space, и высота прыжка измеряется относительно неё. Сцена с игровыми контролами включает физику, даже если в space она была выключена, — иначе ничего бы не двигалось.

Камера-преследователь

НастройкаЧем управляет
Камеракакая камера следует; оставьте пустым для встроенной
Ориентациявсё время смотреть на персонажа или держать фиксированный угол
Задержка позиции · прицеланасколько камера отстаёт, в секундах
Вверх-вниз · влево-вправосвободно, зафиксировано или ограничено
Пределынасколько можно подниматься и отклоняться, в градусах
Кадрируйте, а не вводите числа

На первом кадре риг запоминает расстояние и углы между вашей камерой и персонажем и держит их дальше. Никаких чисел расстояния и высоты угадывать не надо — поставьте камеру туда, где она выглядит правильно во вьюпорте, и она там останется.

Несколько поведений сделаны намеренно, и их стоит ожидать:

  • Камера поворачивается к персонажу, а не гонится за ним. Есть небольшой боковой люфт; внутри него камера стоит и вращается и сдвигается только тогда, когда персонаж доходит до края. Камера, приваренная к объекту, читается как штатив, а не как камера.
  • Задержка применяется к кадрированию, а не к дистанции. Камера не отъезжает назад, когда персонаж разгоняется, — это читалось бы как незапрошенный зум и именно от этого мягкое следование начинает подташнивать.
  • Кадр плавно заходит персонажу за спину, пока тот движется, а вы сами вид не крутите. Фиксация влево-вправо или вид сверху это отключают.
  • Камера отказывается быть перекрытой. Если между ней и персонажем что-то встаёт, она подъезжает вплотную, а потом плавно отходит. Ближе полуметра она не подходит никогда.
  • Колесо приближает — примерно от трети до двух с половиной раз от той дистанции, которую вы скадрировали.

Пока риг управляет камерой, собственные управления этой камеры (orbit, fly) игнорируются — иначе они дрались бы каждый кадр.

Сенсор и геймпад

Экранные элементы управления рисуются только на сенсорных экранах, так что их можно смело оставить включёнными.

НастройкаЧем управляет
Экранное управлениепоказывать стик и кнопку прыжка
Чем поворачивать видсвайпом по сцене или вторым стиком
Угол стика · угол кнопкив какой ячейке сетки 3×3 они находятся
Отступ · размер кнопкиотступ от края, размер в пикселях
Видимостьскрыть графику — свайп для поворота всё равно работает

Геймпад работает вместе со всем остальным вообще без настройки: левый стик двигает, правый осматривается, A прыгает, бамперы и триггеры бегут.

Как реагировать на то, что делает персонаж

Та же смена состояния, что запускает ветвь, доходит и до скриптов с патчами: скрипт может её слушать, а у патчей есть нода с выходами pulse и state.

Все трое слышат её в один и тот же момент, так что можно вести звук шагов из скрипта, пока ветви занимаются анимацией, и они останутся в такт.

Следование без контроллера

Для чего-то попроще (враг за игроком, питомец, цель камеры) есть шаги follow, look at target и stop following.

Они двигают объект напрямую, поэтому не сработают на том, чем уже управляет физика. Для такого используйте импульсы из скрипта.


Дальше: Карточки интерфейса — кнопки, меню и счёт.