Nightfall StoriesРемесло
Жест читателя
Удержание, отдача и задержка вариантов: усилие руки под стать усилию в истории.
Выбор — это то, что читатель решает. Жест — это то, что он делает пальцем. Обычно они совпадают: человек касается варианта, история идёт дальше. Директивы этой страницы разводят их: они меняют не смысл выбора, а ощущение от него.
Мерило у них одно — усилие руки должно совпадать с усилием в истории. Тяжёлое решение, которое отдаётся лёгким касанием, читается легче, чем задумано; лёгкое, ради которого пришлось удерживать палец пять секунд, — как придирка интерфейса.
Удержание
@hold_to_act останавливает сцену, пока читатель не удержит нажатие.
narrator: Рычаг холодный. Пути назад после него не будет.
@hold_to_act duration_ms 2000 label "Держать"
narrator: Механизм пошёл.
duration_ms — от 200 до 10000. Два ориентира: до 800 мс это «нажатие с характером», от 2000 —
физическое усилие, которое читатель ощущает как сопротивление.
⚑ Рядом всегда стоит обычное касание. Часть читателей физически не может удерживать нажатие, и альтернатива включена по умолчанию. Выключить её можно, но валидатор отметит это как риск — и правильно сделает: приём, из-за которого человек не может дочитать историю, стоит дороже, чем даёт (интенсивность и доступность).
Используйте на решение, которое нельзя отменить: спустить курок, открыть дверь, произнести имя.
Отдача
@haptic — короткая вибрация. На устройстве без вибромотора не делает ничего, поэтому смысл на неё
вешать нельзя: она подчёркивает событие, но не сообщает о нём.
Хорошо работает на удар, на щелчок замка, на момент, когда что-то коснулось персонажа. Плохо — как метроном: вибрация на каждой реплике перестаёт замечаться за минуту.
Как появляются варианты
@choices_fade <секунд> заставляет опции проступить с задержкой: реплика уже прочитана, а выбирать
ещё нечего.
narrator: Он ждал ответа. И ждал.
@choices_fade 2.5
* choice "Сказать правду"
-> truth
* choice "Промолчать"
-> silence
Эта задержка — единственный способ заставить читателя побыть в моменте, не отнимая у него выбор. Но она же — самый заметный способ его разозлить: секунда читается как дыхание, пять — как зависший экран. Выше трёх не поднимайтесь без причины, которую видно на экране.
@choice_shake <0..1> — дрожащая кнопка: вариант, который сам боится, что его выберут. Работает,
когда дрожит один из вариантов; дрожащие все — это шум.
Практика
Жест — про необратимость. Удержание на выборе, который можно переиграть через сцену, тратит приём впустую.
Никогда — на выход и на паузу. Всё, чем читатель прекращает происходящее, должно нажиматься сразу.
Проверьте пальцем, а не мышью. Задержка, которая в предпросмотре читается как пауза, на телефоне читается как «не нажимается» — это разные вещи, и вторую вам напишут в отзыве.
Ничего из этого не заменяет текст. Если необратимость решения понятна только по тому, что кнопку надо держать, — она не написана.
Директивы этой темы
Собрано из реестра движка: каждая директива этих категорий ведёт сюда из справочника.
@choice_shakeДрожащая кнопка выбора@choices_fadeОпции проступают с задержкой@hapticТактильная отдача@hold_to_actУдержание для действия — блокирующий жест (§17: с доступной альтернативой)