Nightfall StoriesМеханики
Шкалы состояния
Рассудок, страх и прочие метры: показать, изменить, связать с атмосферой.
Шкала — это флаг, который читатель видит. Рассудок, страх, подозрение, усталость: обычное целое число с границами, у которого есть визуальное представление и, что важнее, отклик атмосферы.
Основа
Шкала объявляется в схеме флагов как int с min и max — этого достаточно, чтобы движок держал
границы:
sanity int 0…100 по умолчанию 100Дальше она меняется как любой флаг, а @meter_show выводит её на экран:
@set sanity = 0
@meter_show sanity
@set sanity -= 15
narrator: Отражение моргнуло на полсекунды позже.
@meter_hide убирает. Показывать шкалу постоянно — не обязанность: часто сильнее, когда индикатор
появляется только в тот момент, когда стало плохо.
Отклик атмосферы
Самое ценное — не полоска, а то, что при низком значении меняется сама подача. @sanity_distort
искажает восприятие; тем же способом можно связать шкалу со звуком, виньеткой, скоростью текста.
Читатель видит своё состояние, не глядя ни на какой индикатор, — и это на порядок сильнее полоски. Хорошая практика: шкала, у которой есть отклик, вообще может не показываться числом.
⚑ Но эффект не может быть единственным способом это сказать. @sanity_distort —
фоточувствительный: у читателя, включившего мягкие эффекты, он не сыграет вообще, и тот увидит
ровный обычный текст. Если падение рассудка показано только искажением, для него ничего не
произошло.
Поэтому рядом с эффектом должна стоять строка, которая говорит то же самое словами:
@set sanity = 0
@set sanity -= 20
@sanity_distort 0.6
narrator: Руки не слушались, и буквы в записке расползались, как будто их писали не для него.
Эффект здесь усиливает то, что уже сказано в тексте. Уберите его — сцена останется понятной; уберите строку — половина читателей не заметит ничего. Подробнее: интенсивность и фоточувствительность.
Как проектировать шкалу
Шкала должна входить хотя бы в одно условие. Число, которое растёт всю историю и нигде не сравнивается, механики не создаёт.
Порог должен быть и достижим, и избегаем. sanity < 20, не берущийся ни на одном маршруте, даёт
мёртвую ветку (бот-обход это найдёт); берущийся на всех — обычную сцену.
Считайте потолок накопления. Классическая ошибка: порог >= 5 при том, что за всю главу флаг
поднимается максимум до трёх. Граф выглядит связным, а концовка недостижима арифметически.
Двусторонняя шкала работает лучше односторонней. Рассудок, который только падает, — таймер; рассудок, который можно восстановить ценой чего-то другого, — решение.
Сколько шкал
Одна, редко две. Три читатель не удерживает и начинает оптимизировать ту, что показана, игнорируя остальные.
Если кажется, что нужны три, две из них обычно выражаются флагами без индикатора: bool has_seen_it
часто работает сильнее ещё одной полоски.
Связка с другими механиками
Шкала даёт порог для проверки навыка — тогда бросок становится следствием прошлых решений.
Она же может входить в отношения: доверие персонажа зависит от того, в каком состоянии герой был при разговоре.
Директивы этой темы
Собрано из реестра движка: каждая директива этих категорий ведёт сюда из справочника.
@meter_hideСкрыть шкалу состояния@meter_showПоказать шкалу состояния в HUD@sanity_distortИскажение восприятия при низком рассудке