1. Друзья, в это тяжёлое и непонятное для всех нас время мы просим вас воздержаться от любых упоминаний политики на форуме, - этим ситуации не поможешь, а только возникнут ненужные ссоры и обиды. Это касается также шуток и юмора на тему конфликта. Пусть войны будут только виртуальными, а политики решают разногласия дипломатическим путём. С уважением, администрация Old-Games.RU.

    Скрыть объявление
  2. Пожалуйста, внимательно прочитайте правила раздела.
  3. Если Вы видите это сообщение, значит, вы ещё не зарегистрировались на нашем форуме.

    Зарегистрируйтесь, если вы хотите принять участие в обсуждениях. Перед регистрацией примите к сведению:
    1. Не регистрируйтесь с никами типа asdfdadhgd, 354621 и тому подобными, не несущими смысловой нагрузки (ник должен быть читаемым!): такие пользователи будут сразу заблокированы!
    2. Не регистрируйте больше одной учётной записи. Если у вас возникли проблемы при регистрации, то вы можете воспользоваться формой обратной связи внизу страницы.
    3. Регистрируйтесь с реально существующими E-mail адресами, иначе вы не сможете завершить регистрацию.
    4. Обязательно ознакомьтесь с правилами поведения на нашем форуме, чтобы избежать дальнейших конфликтов и непонимания.
    С уважением, администрация форума Old-Games.RU
    Скрыть объявление

Blade of Darkness - прикрутка экранного диктора

Тема в разделе "Мастерская", создана пользователем Pingvena, 4 июн 2020.

  1. Pingvena

    Pingvena

    Регистрация:
    9 окт 2010
    Сообщения:
    265
    Привет, уважаемые форумчане!
    Очень нужна консультация моддера-программиста или того, кто готов им стать.

    Есть на сайте любимая многими и по-своему уникальная Action-игра - Severance: Blade of Darkness. Она написана на Python 1.5, поэтому немалая часть её ресурсов и кода лежит на поверхности. Благодаря хорошему звуку и «автозахвату» цели, игра гипотетически доступна слепым и слабовидящим игрокам.

    Чтобы сделать её доступнее, я пытаюсь прикрутить к ней одну готовую DLL, которая позволит читать текст меню, названия предметов и другой критически важный текст с помощью программ экранного доступа (и синтезаторов речи).
    У меня есть заготовка кода для привязки нужной DLL с API-клиентом экранного диктора, но мне пока не удаётся грамотно встроить её, чтоб ничего не поломалось.

    Просмотрела все открытые скрипты игры: примеров привязки именно .dll там нигде нет - только .pyd. Хотя игра использует множество dll-ок (это всё вызывается из скомпилированной части, видимо).

    Ищу героя, который поможет разобраться, как скормить игре нужную библиотеку (дальше я сама) или объяснит, почему это невозможно.

    О той самой библиотеке подробно

    Знаю, что в Python 1.5 ещё не было встроенной ctypes, а была только dl (если это сопоставимо). Но через dl.open('\...dll') ничего не сработало.

    P.S. Обращалась с тем же вопросом к фанатам и моддерам игры в VK, но, к сожалению, там не могут помочь, потому что там в основном спецы по ресурсам и репаку, которые не занимаются кодом.

    P.P.S. Добавила ссылку на эту тему в кодерский уголок.
     
    Последнее редактирование: 4 июн 2020
    Neitan нравится это.
  2.  
  3. ZaRR

    ZaRR

    Регистрация:
    18 ноя 2015
    Сообщения:
    1.645
    Может этот парень знает, он декомпильнул игруху smartblade/BldMystery
     
    Meiner и Pingvena нравится это.
  4. Pingvena

    Pingvena

    Регистрация:
    9 окт 2010
    Сообщения:
    265
    @ZaRR, спасибо. Попробую связаться.
     
  5. Pingvena

    Pingvena

    Регистрация:
    9 окт 2010
    Сообщения:
    265
    Написала автору BldMystery, но ответит ли, неизвестно.
    Тем временем, один человек подсказал, что программы типа SweetFX и ReShade позволяют авторам репаков цеплять .dll практически в любую игру.
    Как это работает, не представляю, но там это делается для улучшения графики.
    Если у кого есть идеи, пожалуйста, пишите...
     
    Последнее редактирование: 7 июн 2020
    ZaRR нравится это.
  6. Pingvena

    Pingvena

    Регистрация:
    9 окт 2010
    Сообщения:
    265
    Достигнут важный прогресс! Упомянутый выше замечательный автор создал расширение, которое проговаривает текст в игре с помощью NVDA! В том числе в оригинальной версии, которую можно взять здесь на сайте.

    Теперь вся работа сводится к редактированию обычных игровых скриптов (из папок Scripts и Lib).
    Ищу лучшие точки для перехвата игрового текста.
    Главные подозреваемые:
    • /Lib/MenuText.py
    • /Lib/Widgets/MenuWidget.py
    • /Lib/GameText.py
    • /Scripts/Menu.py
     
    Последнее редактирование: 9 июн 2020
    Grongy, Dimouse и ZaRR нравится это.
  7. Pingvena

    Pingvena

    Регистрация:
    9 окт 2010
    Сообщения:
    265
    Удалось сделать игровое меню читаемым! По нему теперь можно ориентироваться без зрения.

    Чтобы так же озвучить внутриигровой текст, важно сначала убрать постоянно обновляющeeся значение (что-то типа FPS?) из заголовка окна. Даже в полноэкранном режиме оно забивает весь буфер экранного диктора, так что больше ничего читать невозможно. Вероятно, искать надо в скриптах BODLoader'а. Но пока не нахожу...

    Аудиозапись навигации по меню и выхода в игру (с последующим спамом из заголовка окна)

    BoD_screen2.jpg
     
    Последнее редактирование: 14 июн 2020
    Grongy, Dimouse, SAS и 2 другим нравится это.
  8. ZaRR

    ZaRR

    Регистрация:
    18 ноя 2015
    Сообщения:
    1.645
    @Pingvena, по ссылке на github проект что я указал, автор добавил discord группу в описании. Присоединяйся! :drink:
     
  1. На этом сайте используются файлы cookie, чтобы персонализировать содержимое, хранить Ваши предпочтения и держать Вас авторизованным в системе, если Вы зарегистрировались.
    Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie.
    Скрыть объявление