Документация Steamworks
Активаторы
Активаторы представляют собой мощный инструмент для контроля над тем, как, когда и как часто источник ввода реагирует на пользователя.

Пример: повтор команды «Вниз» при зажатии


Приходилось ли вам играть в ролевую игру, основным элементом интерфейса которой является меню? А испытать раздражение из-за того, что для проматывания сотни строк кнопку «вниз» пришлось нажать много-много раз, и при этом всё по одной строке?

Активаторы позволяют задать простой макрос типа «если я зажал "вниз" на 1 секунду, повторяй "вниз" каждые 0,1 секунды, пока не отпущу». Теперь можно прокрутить по списку, просто зажав кнопку, хотя разработчики и не внедряли эту функцию!

И вот мы в меню настройки указанной гипотетической ролевой игры, крестовина уже правильно настроена, но мы хотим добавить активатор для приёма сигнала от кнопки «вниз»:

activator_ddown.png

Тогда мы видим данное меню, где выбираем «Показать активаторы».

show_activators.png

Далее нам показывают меню активаторов, где есть множество настроек:

activator_menu.png

Для начала выберем вид активации «Долгое нажатие». Это та механика, которая вызывает особое поведение.

activator_long_press.png

По умолчанию для действия активатора выбрано начальное значение («Крестовина вниз»), что нас устраивает. Мы также оставим значение настройки «Время долгого нажатия»: по умолчанию 0,15 секунды.

Однако «Повтор при зажатии (турбо-режим)» установим в значение «Вкл.»:

activator_turbo.png

«Частоту повторения» оставим в значении по умолчанию 0,9 секунды. Теперь при нажатии крестовины вниз, которое продолжается более 0,15 секунды, каждые 0,9 секунды оно будет генерировать дополнительное событие «крестовина вниз», пока кнопка не будет отпущена. Временные значения, конечно, можно настроить под себя.

Если необходимо добавить несколько разных активаторов, вы можете сделать это, выбрав «Добавить активатор». Удалить активатор можно, выбрав «Нет — удалить активатор» как вид активатора. Кажется, ограничений на число активаторов нет, но если их будет больше пяти, они не поместятся на экране.

Настройки активатора


Перечислим настройки, доступные в системе активаторов. Сначала охарактеризуем те из них, которые доступны вне зависимости от вида активатора:

НазваниеЗначенияОписание
Вид активации«Обычное нажатие», «Двойное нажатие», «Долгое нажатие», «Начало нажатия», «Завершение нажатия», «Нажатие с активатором», «Нет - удалить активатор»Активатор задаёт, как система приёма сигналов реагирует на пользовательский ввод. Обычное ли это нажатие, долгое нажатие, двойное нажатие? Выберите или удалите нужный вариант.
ДействиеЦифровой ввод/действиеВы можете назначить этому активатору одно или несколько действий, которые могут быть действиями клавиатуры, мыши, геймпадa или одним из системных действий.
ПереключениеВкл., выкл.В этом режиме активатор будет действовать с завершения нажатия кнопки до ее повторного нажатия.
Задержка активации при нажатии0.0-1.0Активатор не будет срабатывать указанное время после нажатия кнопки. Эта задержка сместит всю продолжительность удержания кнопки. Следовательно, если не установлена задержка окончания, длительность нажатия кнопки не изменится, и оно просто будет задержано.
Задержка деактивации после нажатия0.0-1.0Активатор будет работать указанное время после завершения нажатия. Такая задержка увеличит длительность нажатия кнопки.
Уровень тактильной отдачиБез отдачи, слабая, средняя и сильнаяОпределяет силу тактильной отдачи при включении и отключении активатора.
Цикл действийВкл., выкл.Эта настройка позволяет воспроизводить указанный список действий при каждом срабатывании активатора. Очередность действий аналогична тому порядку, в котором они были выбраны при настройке.

Ниже приводятся различные типы активации:

Тип активацииОписание
Обычное нажатиеАктиватор обычного нажатия – это тип по умолчанию. При нажатии кнопки происходит её активация, которая заканчивается, когда нажатие прекращается.
Двойное нажатиеАктиватор двойного нажатия требует быстрого двойного касания для активации. Если кнопка удерживается при втором касании, активатор остаётся в режиме нажатия. Все прерываемые активаторы на той же кнопке не будут действовать, если включено двойное нажатие, и будут приостановлены до его окончания.
Долгое нажатиеАктиватор долгого нажатия требует удержания кнопки для активации. По истечении заданного срока он останется в режиме активации до тех пор, пока вы не отпустите кнопку. Все прерываемые активаторы на той же кнопке не будут действовать, если включено долгое нажатие, и будут приостановлены до его окончания.
Начало нажатияАктиватор начала нажатия включается при нажатии кнопки и немедленно отключается, даже если нажатие кнопки продолжается. Это функция особенно полезна в сочетании с активатором завершения нажатия: к примеру, так можно заменить включение/выключение ходьбы пригнувшись на обычное удержание кнопки.
Завершение нажатияАктиватор завершения нажатия включается и сразу же отключается при завершении нажатия кнопки.
Нажатие с активаторомПохоже на обычное нажатие, но дополнительно необходимо удерживать определённую кнопку одновременно с нажатием ввода обычной активации. Другие настройки при зажатой кнопке продолжат срабатывать.
Нет — удалить активаторЭто действие удалит активатор и все его настройки.

Следующие настройки относятся только к определённым типам активации:

НазваниеЗначенияТип активацииОписание
ПрерываемостьВкл., выкл.«Обычное нажатие», «Завершение нажатия»Если у активатора включена прерываемость, то его действие могут приостановить или прекратить другие активаторы. Например, активатор долгого нажатия может прервать активатор полного нажатия, поэтому полное нажатие сработает, только если долгое нажатие не активировано. Если прерываемость активатора отключена, то он игнорирует другие активаторы.
Время двойного нажатия0.0-1.0«Двойное нажатие»Определяет скорость двойного нажатия, необходимую для срабатывания активатора. Все прерываемые активаторы, связанные с этой кнопкой, не сработают до окончания этого времени.
Время долгого нажатия0.0-1.0«Долгое нажатие»Определяет продолжительность нажатия, необходимую для срабатывания активатора. Связанные с этой кнопкой прерываемые активаторы сработают, только если отпустить её до активации долгого нажатия.
Повтор при зажатии (турборежим)Вкл., выкл.«Обычное нажатие», «Двойное нажатие», «Долгое нажатие»В турборежиме активатор будет включаться и выключаться очень быстро. Этот режим также можно использовать в сочетании с циклом действий.
Частота повторения0.0-1.0«Обычное нажатие», «Двойное нажатие», «Долгое нажатие»Скорость турборежима устанавливается с помощью этого ползунка.