Игровые контролы
Игровые контролы превращают объект в то, чем управляет посетитель: ходьба, полёт или перемещение по карте с видом сверху.
Добавляются они как триггер, а не как шаг. Поставьте триггер игрового управления на объект — и весь контроллер окажется в его настройках, а его ветви (простой, движение, прыжок, бег) позволят реагировать на то, что делает персонаж.
Контроллер живёт столько же, сколько объект. Выключите объект — и его нет; включите снова — и он вернулся.
Управляемый объект (этот триггер), что-то твёрдое, на чём стоять (пол с rigid body и коллайдером) и камера — или ничего, и она будет предоставлена.
Движение
| Настройка | Чем управляет |
|---|---|
| Режим | ходьба, полёт или вид сверху |
| Где «вперёд» | куда смотрит камера или собственные оси сцены |
| Скорость · множитель бега | метры в секунду и насколько быстрее с зажатым Shift |
| Ускорение · торможение | сколько времени уходит на разгон и на сброс скорости |
| Поворот по движению | разворачивается ли объект лицом туда, куда идёт, и как быстро |
| Раскладка клавиш | WASD, стрелки или и то и другое |
| Высота прыжка | в метрах — ноль означает, что прыжка нет |
| Управление в воздухе | сколько управляемости сохраняется в прыжке |
| Высота сброса | падение ниже этой отметки возвращает персонажа на старт |
| Идти по клику | идти к точке, по которой нажали |
| Чем поворачивать вид | мышью, клавишами или и тем и другим |
«Полсекунды» означает, что контроллер прикладывает усилие, закрывающее разницу за полсекунды. Склоны, толчки и масса спорят с этим усилием, и именно поэтому движение ощущается физическим.
Ноль означает как можно быстрее — что не совсем мгновенно, потому что у персонажа всё равно есть масса.
Тело
Контроллер даёт вашему объекту капсулу и двигает его силами, так что он нормально сталкивается с миром, а не проскальзывает сквозь него.
| Настройка | Чем управляет |
|---|---|
| Форма | капсула или сфера |
| Радиус · высота | в метрах |
| Смещение | двигает капсулу относительно объекта |
| Масса | и насколько сильно он толкает, и насколько его трудно сдвинуть |
| Показать помощник | рисует капсулу в редакторе |
Уже сделали своё rigid body? Контроллер не трогает его, а просто управляет им, беря его массу. В противном случае он создаст тело за вас.
Ваши полы и стены останавливают персонажа, когда у них есть rigid body и коллайдер. Обычная декоративная геометрия — это декорация, и персонаж проходит сквозь неё. → Физика
Гравитация берётся из space, и высота прыжка измеряется относительно неё. Сцена с игровыми контролами включает физику, даже если в space она была выключена, — иначе ничего бы не двигалось.
Камера-преследователь
| Настройка | Чем управляет |
|---|---|
| Камера | какая камера следует; оставьте пустым для встроенной |
| Ориентация | всё время смотреть на персонажа или держать фиксированный угол |
| Задержка позиции · прицела | насколько камера отстаёт, в секундах |
| Вверх-вниз · влево-вправо | свободно, зафиксировано или ограничено |
| Пределы | насколько можно подниматься и отклоняться, в градусах |
На первом кадре риг запоминает расстояние и углы между вашей камерой и персонажем и держит их дальше. Никаких чисел расстояния и высоты угадывать не надо — поставьте камеру туда, где она выглядит правильно во вьюпорте, и она там останется.
Несколько поведений сделаны намеренно, и их стоит ожидать:
- Камера поворачивается к персонажу, а не гонится за ним. Есть небольшой боковой люфт; внутри него камера стоит и вращается и сдвигается только тогда, когда персонаж доходит до края. Камера, приваренная к объекту, читается как штатив, а не как камера.
- Задержка применяется к кадрированию, а не к дистанции. Камера не отъезжает назад, когда персонаж разгоняется, — это читалось бы как незапрошенный зум и именно от этого мягкое следование начинает подташнивать.
- Кадр плавно заходит персонажу за спину, пока тот движется, а вы сами вид не крутите. Фиксация влево-вправо или вид сверху это отключают.
- Камера отказывается быть перекрытой. Если между ней и персонажем что-то встаёт, она подъезжает вплотную, а потом плавно отходит. Ближе полуметра она не подходит никогда.
- Колесо приближает — примерно от трети до двух с половиной раз от той дистанции, которую вы скадрировали.
Пока риг управляет камерой, собственные управления этой камеры (orbit, fly) игнорируются — иначе они дрались бы каждый кадр.
Сенсор и геймпад
Экранные элементы управления рисуются только на сенсорных экранах, так что их можно смело оставить включёнными.
| Настройка | Чем управляет |
|---|---|
| Экранное управление | показывать стик и кнопку прыжка |
| Чем поворачивать вид | свайпом по сцене или вторым стиком |
| Угол стика · угол кнопки | в какой ячейке сетки 3×3 они находятся |
| Отступ · размер кнопки | отступ от края, размер в пикселях |
| Видимость | скрыть графику — свайп для поворота всё равно работает |
Геймпад работает вместе со всем остальным вообще без настройки: левый стик двигает, правый осматривается, A прыгает, бамперы и триггеры бегут.
Как реагировать на то, что делает персонаж
Та же смена состояния, что запускает ветвь, доходит и до скриптов с патчами: скрипт может её
слушать, а у патчей есть нода с выходами pulse и state.
Все трое слышат её в один и тот же момент, так что можно вести звук шагов из скрипта, пока ветви занимаются анимацией, и они останутся в такт.
Следование без контроллера
Для чего-то попроще (враг за игроком, питомец, цель камеры) есть шаги follow, look at target и stop following.
Они двигают объект напрямую, поэтому не сработают на том, чем уже управляет физика. Для такого используйте импульсы из скрипта.
Дальше: Карточки интерфейса — кнопки, меню и счёт.