Мод доступности для фентезийного фермерского симулятора Moonlight Peaks получил большое обновление.
Производительность
Значительно улучшена производительность мода. Ранее в главном меню мод занимал 172 из 183 миллисекунд времени кадра — это снижало частоту кадров примерно до 5 FPS и делало запуск медленным, а каждое нажатие в меню сопровождалось задержкой. Теперь главное меню работает на уровне примерно 160 FPS, а доля мода в одном кадре составляет менее четверти миллисекунды.
Ускорен запуск и работа с меню: мод раньше запрашивал у игры информацию об экране примерно 40 раз за кадр. Если запрашивался экран, который в данный момент не открыт, игра выполняла полный перебор всех объектов в сцене. В главном меню почти нет открытых игровых экранов, поэтому почти каждый такой запрос приводил к полному поиску — это сильно нагружало систему. Все 63 места, где мод делал такие запросы, были переработаны.
Также ускорен старт, а размер лог‑файла существенно уменьшен: подробный лог теперь отключён по умолчанию (ранее он записывал около 2900 строк за одну игровую сессию для всех пользователей).
В лог теперь явно записывается, если именно мод замедляет игру, и указывается, какая именно часть ответственна за это. Раньше такие измерения фиксировались только при включённом подробном логировании — то есть как раз тогда, когда его почти никто не включал.
Теперь мод отслеживает не только среднее замедление, но и отдельные медленные кадры. Один кадр, занимающий 40 миллисекунд среди трёхсот быстрых, в среднем почти не влияет на показатели, но вызывает слышимую задержку в озвучке. Теперь худший отдельный кадр в каждом окне измеряется и фиксируется в отчётах.
Совместимость
Мод собран для версии игры Moonlight Peaks 1.1.45. В этом обновлении игры были переименованы три элемента, с которыми взаимодействует мод (хуки для мини‑игр приготовления пищи и крафта, а также один поиск ввода), поэтому эти части пришлось пересобрать.
Звуковые подсказки для ориентации: тона стен (Wall tones, по умолчанию отключены)
Добавлена новая система звуковых подсказок, позволяющая «ощущать» форму комнаты, не натыкаясь на препятствия. Если включить тона стен в разделе звуковых подсказок, то все объекты рядом, через которые нельзя пройти, будут издавать звук. По умолчанию функция отключена: она добавляет в игру много звуков, и решение об использовании остаётся за игроком.
Направление передаётся двумя способами одновременно, чтобы звук не приходилось определять только по высоте тона или только на слух: самый низкий тон — стена на юге, самый высокий — на севере, средний тон, звучащий в одном ухе, — запад или восток. Если звучат сразу несколько тонов (например, в углу), слышны именно два разных звука, а не один сбивающий с толку.
Доступно два режима подачи информации на выбор:
* Непрерывный тон: мягкий звук, который нарастает по мере приближения — он отвечает на вопрос «как далеко».
* Одиночные сигналы (пинг): короткий звук в момент, когда проход закрывается, и другой — когда открывается; это отвечает на вопрос «что только что изменилось» и в остальное время остаётся тихим.
Звуки «препятствие» и «проход открыт» — это два совершенно разных инструмента: у каждого свой тембр, три высоты тона, громкость, длительность и мягкость. Они изначально настроены так, чтобы быть различимыми даже без дополнительных настроек.
Есть восемь переключателей, определяющих, какие объекты должны издавать звук: рельеф и стены, мебель, механизмы, деревья, камни, обломки, растения, существа. Если какой‑то тип отключён, мод будет просто пропускать эти объекты, а не останавливаться возле них: например, отключение звуков для культур не скроет забор позади них.
Непрерывные тона имеют «мерцание» (второй голос, мягко пульсирующий относительно первого), скорость мерцания, а также слой реального шума воздуха со своей громкостью и яркостью — так звук, который можно слышать несколько минут, остаётся живым, а не превращается в электронный гул.
Правило определения «стены» простое и точное: если при столкновении с объектом игра воспроизводит звук удара, мод тоже издаёт звук; если нет — остаётся тихим. Эти два источника не могут противоречить друг другу, потому что мод опрашивает коллизию самого персонажа (то, что реально останавливает игрока), а не навигационную карту игры, которая имеет отступы вокруг препятствий и помечает участки как непроходимые даже для объектов, которые никого не останавливают (например, трава вокруг посаженной культуры).
Карта в журнале
Теперь карту можно воспринимать двумя способами одновременно — они отвечают на разные вопросы и не заменяют друг друга.
- Список — это полный перечень: всё, что есть на карте, ничего не пропущено, в фиксированном порядке. Это удобный инструмент, чтобы найти нужное место.
- Указатель — пространственный: он сообщает, где находятся объекты относительно друг друга.
Список использует те же клавиши, что и сканер мира: Page Down и Page Up переключают маркеры, Ctrl в сочетании с ними — категории (Локации, Люди, Районы), Home повторяет текущий элемент, Shift с Page Up и Page Down переключает региональную карту.
Указатель теперь озвучивает то, над чем проходит: раньше он был полностью беззвучным. Он называет объекты по мере перемещения стрелками, поэтому места появляются в том порядке и направлении, в котором они реально расположены. Указатель реагирует только на маркеры (места и людей): дороги, мосты и открытые пространства нарисованы на картинке карты и не являются объектами, на которые указатель реагирует и для зрячего игрока, поэтому над ними он молчит.
У указателя есть собственные звуки:
* Тик каждый раз, когда он пересекает фиксированный сегмент карты — частота тиков показывает скорость движения, а подсчёт тиков между двумя точками даёт расстояние между ними.
* Высота тона указывает направление, используя ту же систему, что и тона стен, чтобы не учить ничего нового: север — высокий тон, юг — низкий, восток и запад — в середине и звучат в соответствующем ухе. При смене направления тик происходит сразу, поэтому любое нажатие получает мгновенный отклик.
* Аккорд звучит в тот момент, когда указатель попадает на место или персонажа — так игрок сразу слышит, что там что‑то есть, и узнаёт, что именно, когда останавливается.
* Колокольчик и фраза «Вы вернулись в исходную позицию» звучат, когда указатель возвращается в точку, где он был при открытии карты.
* Свист — когда указатель достигает края видимой области и сама карта начинает сдвигаться.
* Указатель сообщает, в какой зоне игрок находится ближе всего (город, свой участок фермы, Moonlit Pines).
Клавиши совпадают с теми, что используются в сканере, — нужно запомнить только один набор. В мире Home повторяет выбор сканера, Ctrl+Home даёт направление, Alt+Home — координаты, Shift+Home перемещает туда, Z называет текущую зону. На карте те же клавиши задают те же вопросы про указатель: Ctrl+Home сообщает, в каком направлении и на каком расстоянии находится стартовая позиция (в тиках), Alt+Home — где находится указатель относительно всей карты, Shift+Home возвращает его в стартовую позицию, Z сообщает, на какой карте игрок и какая зона ближе всего.
Можно замедлить движение указателя: в самой игре такой настройки нет, мод устанавливает скорость напрямую. Если указатель «пролетает» мимо мест, уменьшите скорость указателя на карте. Параметр «Радиус перемещения указателя» — его дополнение: игра удерживает указатель в небольшой рамке и прокручивает карту, когда он достигает её края, поэтому большая часть длинного перемещения — это движение карты, а не указателя; увеличение рамки даёт больше пространства под прямым контролем.
Параметр «Дистанция захвата указателя» определяет, насколько близко нужно подойти к месту, чтобы оно считалось выбранным. Игра реагирует только на точное попадание внутрь небольшой области маркера — это легко для зрячего игрока, который видит, куда целиться, и сложно, когда приходится управлять точкой, которую не видно. Установите значение в ноль, чтобы реакция совпадала с поведением игры.
Каждый звук указателя полностью настраивается (тип тембра, высота, громкость, длительность и др.) в новом разделе настроек карты, включая то, как долго указатель должен оставаться на объекте, прежде чем тот будет назван.
События сердец (Heart events)
Теперь событие сердца сообщает, чьё оно и где произойдёт. Игра показывает это тремя способами, ни один из которых не является текстовым, а две части мода раньше не согласовывались: журнал сообщал «КТО» без «ГДЕ», а карта — «ГДЕ» без «КТО». Теперь карта говорит «Событие сердца с Сабриной» на месте, где оно произойдёт, и на персонаже, вместо «здесь что‑то нужно сделать».
Сканер также сообщает об этом, когда игрок проходит мимо персонажа, — так информация появляется благодаря нахождению рядом, а не из‑за того, что игрок заранее решил открыть журнал.
Если игрок ещё не знаком с этим персонажем, будет сказано просто «Готово событие сердца». Ожидание сцены — это важная информация; имя персонажа игрок должен узнать от него самого.
Настройка звуков
Каждый одноразовый звук в моде теперь можно настроить четырьмя способами:
* Атака — насколько звук нарастает: при нуле он начинается на полной громкости, как резкий удар.
* Затухание — насколько он спадает: при нуле звук обрывается мгновенно.
* Мягкость — насколько он «звенит» по всей длине, а не только в конце.
* Разнесение по нотам превращает любой звук в аккорд — его гораздо сложнее спутать с другим сигналом, чем просто другой высотой тона.
Эти параметры применяются к звуку прибытия маяка, удару при столкновении, свисту при повороте, звукам поклёвки и пригодной для ловли воды, сигналам «красный свет», «стоп», звукам блокировки и открытия прохода, а также ко всем четырём звуковым подсказкам указателя карты. Они не применяются к непрерывным звукам (тонам стен, индикатору готовки, тонам наведения звезды и метлы), потому что у них нет чёткого начала и конца для настройки.
Добавлены четыре новых типа тембра, доступные для каждого звука мода:
* Дерево — полый и сухой звук.
* Тростник — гнусавый, как у деревянных духовых.
* Латунь — яркий и жужжащий, остаётся слышимым даже под музыку игры, в отличие от простого синуса.
* Полый — металлический и слегка зловещий, чтобы такой сигнал невозможно было спутать с другим.
Звук прибытия теперь — это удар колокола и имеет тип тембра, как и любой другой звук.
Тоны стен больше не «обрезаются»: раньше каждое направление могло играть до трёх голосов, и каждый получал полную громкость, суммируясь, поэтому «максимальная громкость 50» фактически означала около 150. Теперь они делят один «бюджет» громкости: настройка означает именно то, что написано, а изменение параметров мерцания или шума воздуха меняет баланс, а не общую громкость.
Удар при столкновении теперь достигает полной громкости корректно: его форма задаёт характер, а настройка — уровень, вместо того чтобы эти параметры конфликтовали.
Тоны стен больше не меняют громкость самостоятельно: это была реальная ошибка, заслуживающая отдельного упоминания — громкость этого звука передаёт информацию о расстоянии, поэтому её самопроизвольное изменение могло создать впечатление, что стена, к которой игрок идёт прямо, отдаляется.
Меню настроек
- Повтор клавиш при удержании: все клавиши теперь повторяют действие при удержании (вверх/вниз по настройкам, влево/вправо для изменения значения, Q и E для переключения разделов) — так же, как при удержании направления в собственных меню игры. Два параметра управляют этим: задержка перед началом повтора и интервал между шагами после него. Второй параметр стоит подобрать под скорость озвучки, поскольку каждый шаг озвучивается, и каждая следующая строка прерывает предыдущую.
- В каждом разделе есть строка «Сбросить этот раздел к значениям по умолчанию» в конце. Это именно строка, а не комбинация клавиш: сочетание, о котором нужно специально узнать, никто никогда не обнаружит самостоятельно.
- Отвязка клавиши выполняется клавишей Delete на соответствующей строке и сначала запрашивает подтверждение: «Отвязать F6 от настроек Moonlight Access? Нажмите Y для подтверждения, N или Esc для отмены». Любое другое нажатие повторно озвучивает вопрос. Такой же запрос появляется на собственном экране управления игрой. Клавиша для отвязки сама настраивается.
- Собственную клавишу настроек мода можно переназначить прямо из меню настроек. Мод откажется это сделать, только если отключён и пункт в меню паузы — это закрыло бы обе двери одновременно, и мод сообщит причину.
- Строки, которые применимы только к режиму, в котором игрок сейчас не находится, скрыты, а не просто выделены серым. Меню, читаемое вслух, не имеет «серых» строк: неактивная строка звучит точно так же, как активная, пока игрок не изменит её и не услышит, что ничего не происходит.
- Настройки звука предварительно прослушиваются при изменении, чтобы можно было настроить их на слух, не выходя из меню. Прослушивание всегда идёт по центру, даже для сигналов, которые в игре панорамируются влево или вправо: в меню нет «справа» от чего‑либо, поэтому движущаяся стереопозиция только мешает сравнивать высоту и громкость.
- Тоны стен больше не издают короткий «чирик» на долю секунды, когда игрок выходит из настроек мода обратно в меню паузы.
Озвучка и чтение текста
- Исправлена ошибка, из‑за которой крик жителя (например, «Хооо!») многократно повторялся в городе.
- Добавлена настройка «Читать реплики других персонажей» в разделе «Речь», включена по умолчанию.
- Больше не озвучивается слово «Речь» перед каждым разговором.
- Повторяющаяся строка, которая ничего не вводит, больше не произносится дважды. Это также касается табличек и других элементов, которые первый раз читались дважды, а потом — один раз.
- Переносы строк внутри текста читаются как пауза, а не как посторонние символы посреди предложения.
- Строка меню больше не читается дважды, если другой мод уже описал её.
- При выходе из меню теперь сообщается: «Настройки закрыты», «Журнал закрыт».
- Перед первым вариантом ответа в разговоре озвучивается «3 варианта ответа», чтобы игрок знал, что ждёт вопрос, а не узнавал об этом, нажав что‑то.
- Подсказки взаимодействия больше не звучат поверх кат‑сцены: камера во время сцены проплывает мимо дверей, а игра оставляет подсказку активной под ней, поэтому раньше вступление озвучивало «Дверь в ратушу» поверх сюжета — дверь, которую всё равно нельзя было открыть.
- Названия предметов читаются в естественном порядке: например, «Conchshell Small White» теперь читается как «Маленькая белая ракушка».
- Комнаты без письменного названия читаются как места, а не как имена файлов; информация о том, находится ли игрок в помещении или на улице, берётся из собственных записей игры о комнате, а не угадывается по её названию.
- Числа со слэшем (/) между ними, обозначающие количество из общего числа (например, «0/35»), везде читаются как «0 из 35».
- Отрицательные числа теперь озвучиваются: координаты вроде «−12» раньше произносились как просто «12» — тем же словом, что и позиция на противоположной стороне карты, без указания знака. Теперь перед числом произносится слово «минус» или «отрицательное». В настройках мода можно выбрать: «минус», «отрицательное» или отключить озвучку знака.
- Текст обучающих материалов и подсказок теперь озвучивает названия клавиш: игра рисует подсказки в виде картинок, поэтому та часть предложения, которая говорила, какую клавишу нажать, оставалась беззвучной.
Магазины, деньги и механизмы
- Строки магазинов с одинаковыми названиями больше не становятся беззвучными после первой.
- Цены, встроенные в предложение, раньше читались как «400x» вместо «400 монет».
- «400 x Монет» теперь читается как «400 Монет».
- При взаимодействии с котлом или его закрытии теперь говорится «Котел», а не «Приготовление».
- При выходе из механизма называется сам механизм, а не экран: раньше, например, говорилось «Очередь преобразователя ресурсов».
- Экстрактор маны был полностью беззвучным — теперь он озвучивается.
- Полинатор светлячков и пугало раньше просто говорили «0 35». Теперь они сообщают, что именно содержат, а при пустом состоянии — «Вмещает до 35», вместо того чтобы заявлять, что ничего не содержат.
- Покупка и присвоение имени новому животному теперь озвучиваются.
Ввод текста и текстовые поля
- Каждое текстовое поле теперь озвучивает оба аспекта при входе: как начать ввод и как его завершить. Раньше мод сообщал, как покинуть поле, но никогда не говорил, как в него войти.
- Фраза «Нажмите Enter, когда закончите» больше не отключается настройкой подсказок управления.
- Называние готовой вышивки раньше описывало три шага как один; теперь шаги озвучиваются по отдельности.
Сканер и перемещение
- Добавлена новая категория сканера: «Помощники фермы» — убежище светлячков, улей, пугало и опылитель, а также любые другие объекты этого типа.
- Категория «Мусор» теперь называется «Декор». Содержимое не изменилось.
- Автоперемещение теперь может пересекать лестницу, которую планировщик пути не видит.
- Автоперемещение не могло вывести игрока из подвала: попытка дойти до двери выше просто не срабатывала.
- Сообщение «Нет проходимого маршрута» теперь действительно означает, что маршрута нет, а не звучит так же, когда мод просто запутался.
- Автоперемещение сообщает, когда для цели требуется другая форма, вместо того чтобы просто отказывать.
- Автоперемещение больше нельзя запустить, когда тело игрока не принадлежит ему для перемещения — например, во время заклинания.
- Клавиши мода не работали во время рыбалки. Теперь, когда леска в воде, маяк, сканер и остальные функции работают так же, как везде.
- Клавиша деталей могла описывать не тот объект после того, как игрок что‑то подобрал.
- Теперь озвучивается «Помидор полит», когда культура действительно поливается. Лейка распыляет конус без цели, поэтому результат был единственным подтверждением, и он был беззвучным.
Настройки и отчёты об ошибках
- Раздел настроек «Устранение неполадок» существовал, но был невидим в меню.
- Комбинации клавиш Shift, Ctrl и Alt мода отсутствовали в собственном списке клавиш.
- Добавлен подробный лог, который можно включить для отчётов об ошибках, в разделе «Устранение неполадок». Включайте его ДО воспроизведения проблемы и забирайте лог перед перезапуском игры.
- Один повреждённый патч мог молча отключать все остальные. Теперь патчи применяются по одному,
Добавить комментарий
Для отправки комментария вам необходимо авторизоваться.