Перейти к содержанию
  • Моддинг Oblivion на подъеме: моддеры добавили режим ESL для модификаций


    Все знают, что плагины для игр Бесезды делятся на два лагеря: ESP и ESM. ESP - это классический мод, так сказать, патрон в патроннике, отдельная боевая единица со всем своим содержимым, готовым к использованию. ESM - это в каком-то смысле не сам мод, а патронник, вместилище для модификаций. ESM хранит в себе набор функций, обьектов, рас, чего-угодно, что будет использоваться отдельными модами типа ESP, которые будут к нему привязаны и без родительского ESM-файла не заработают. Именно поэтому такие моды как COBL дублируются в ESM и ESP виде, и сами добавляют какие-то предметы в мир, и другим моддерам позволяют сослаться на свой функционал.

    Всё бы ничего, но вся эта конструкция ограничивалась 255 модами максимум, а фактически в 254 дополнительных подключаемых модуля (plug-in, то что под-ключается). Бурный моддинг Скайрима породил необходимость создать еще одно расширение, чтобы вместить в игру еще больше модов, несмотря на техническое ограничение в 255 модов одновременно*.

    Для того, чтобы расширить возможности моддинга в Skyrim Special Edition было создано расширение ESL, так называемые "Легкие Плагины" (Light Plugins), позволяя тем самым загрузить в игру до 4096 модов типа ESL. Этот тип плагинов занимает специальный динамический диапазон (FE), как объединяя ESL-ифицированные моды под одним номером. Но недаром этот тип плагинов назван "легким". Единственное ограничение у него: не более 2096 записей (records) внутри мода, которого будут ESL-ифицировать. Под записью подразумеваются любые изменения, исправления и добавления. Предметы, локации, правки лиц и снаряжения, работа с массивами земли и т.д.

    Цитата

    Почему именно 255 модов (ESP и ESM) - тот максимум, который можно подключить в игре?

    Потому что так работает математика... Движок присваивает модификациям определенный номер (FormID) в 8 знаков в 16-ричной системе счисления. Первые два знака этого числа отвечают за номер мода в Порядке Загрузки. Именно эти два знака будут одинаковыми у объектов из одного и того же мода. Меч или лук  из мода Example.esp, имеющий порядковый номер 6А в Порядке Загрузки, оба будут начинаться с цифр 6А.

    Эти цифры могут принимать значения от 00 до FF в шестнадцатеричной системе, что дает ровно 256 возможных вариантов. Слот 00 занят базовой игрой, а слот FF зарезервирован под временные объекты, которые создаются прямо во время игрового процесса. Поэтому наш максимум: 254 мода + сама игра (Oblivion.esm).

    Эти два знака, определяющие место мода в Порядке Загрузки, называют индексом. У ESL-модов используется предпоследний слот для модов (255 слот) с индексом FE.

    В игре практически всё имеет FormID, то есть уникальный номер из 8 знаков, кроме Игровых Настроек (Game Settings или GMST).

    Моддер GOOGLEPOX, известный предыдущим достижением в создании фреймворка для кастомных анимаций (его более хардкорным аналогом является мод от DaggerfallTeam), создал на днях фреймворк для ESL-ификации модов в Oblivion. Почему это революция, объяснять не надо: этого не могли сделать десять лет, а теперь мы можем встать вровень со своими более молодыми сверстниками и наслаждаться возможностями, доступными в моддинге и им самим. Осталось только отреверс-инжинирить фишки Creation Engine, например, в создании сценок, и моддинг-сцена оригинального Oblivion сможет жить еще очень и очень долго.

    Как происходит ESL-ификация?

    Используем кастомный билд (TES4Edit Custom Build) из опциональных файлов.

    Выбираем нужный мод.

    Идем по пути: 'File HeaderRecord HeaderRecord Flags', кликаем правой кнопкой и выбираем Edit . В окне 'Edit Value' , выбираем 'ESL', после чего сохраняем плагин.

    Ограничения на данный момент

    Скрипты OBSE, содержащие следующие функции, не смогут обратиться к еслифицированному моду, поскольку все ESL-моды имеют одинаковый выделенный под них индекс:
    GetModindex/GetSourceModIndex
    GetNumLoadedMods 
    IsModLoaded 
    GetNthModName 
    ResolveModIndex 

    Base Object Swapper/Spell Faction Item Distributor - модификации, зависимые от привычных FormID, не будут работать с ESL.

    Моды с озвучкой - запись озвучки привязана к конкретным строкам диалога, а точнее к их FormID.

    TES4LODGEN и slowLODGen - оба приложения для генерации земных массивов и LOD'ов не поддерживают более 255 модов в Порядке Загрузки.

    Wrye Bash - на данный момент не даст подключить больше 255 плагинов, несмотря на ESL-ификацию.  Можно вручную вписать еслифицированные плагины в Plugins.txt, но без создания Bashed Patch и включение игры осуществлять не через Wrye Bash.

    Исходник мода можно найти здесь.

     

    • Нравится 5

    Обратная связь

    Рекомендуемые комментарии

    Комментариев нет



    Для публикации сообщений создайте учётную запись или авторизуйтесь

    Вы должны быть пользователем, чтобы оставить комментарий

    Создать аккаунт

    Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!

    Регистрация нового пользователя

    Войти

    Уже есть аккаунт? Войти в систему.

    Войти

×
×
  • Создать...