Infinity UI - это фреймворк, который позволяет добавлять или заменять отдельные элементы в любом меню пользовательского интерфейса, будь то меню ванильного или добавленного модами.
Функция менеджера виджетов в SkyUI позволяла добавлять виджеты только в HUD и без замены, но в определенных случаях эту функциональность нужно было расширить.

Чтобы сохранить совместимость, моддерам приходилось создавать другие меню и помещать их сверху, добавляя дополнительную логику, чтобы обойти тот факт, что добавленные элементы не принадлежат целевым меню. Infinity UI стремится решить эту проблему удобным для пользователя способом, загружая SWF-файлы из предварительно заданной папки во внутриигровые меню. Все просто.

Все это также означает, что становится возможным перекраивать отдельные элементы пользовательского интерфейса, не затрагивая остальные. Комбинируя альтернативные варианты, соответствующие теме и обладающие хорошим вкусом, пользовательский интерфейс может выглядеть удивительно и уникально.

Compass Navigation Overhaul использует этот фреймворк для расширения функциональности компаса с помощью функций облегчающих жизнь, которые можно увидеть в таких играх, как God of War, Assassin's Creed, Horizon и др. Он также отображает список квестов в худе, когда вы фокусируетесь на маркере квеста в компасе.

Если вы дочитали до этого момента, возможно, вам будет интересно попробовать его в своем мод-листе. Итак... снова возвращаемся в Скайрим?

Address Library for SKSE Plugins

Используйте менеджер модов по своему выбору и установите его как любой другой мод. Для ручной установки скопируйте содержимое файла .RAR в папку Data по пути установки Скайрима.

Этот мод совместим с любыми модами, созданными на сегодняшний день.


Установите этот плагин. Следуйте инструкциям, указанными авторами UI-мода на их страницах.

Создайте папку с именем "InfinityUI" в "Data/Interface". Это будет начальный путь для поиска любой модификации меню.

Внутри этой папки создайте папку с именем меню, которое вы хотите изменить.

Повторите путь к элементу пользовательского интерфейса, который вы хотели добавить/заменить, вложенными папками внутри папки меню. Вы можете проверить путь к каждому вложенному элементу пользовательского интерфейса в FLA/AS файлах из репозитория SkyrimUI SDK, из исходников мода, если автор предоставил их, или вы можете декомпилировать SWF самостоятельно с помощью такого инструмента, как JPEXS Free Flash Decompiler.

С помощью Adobe Flash CS6 создайте SWF-файл, который будет являться патчем. Скопируйте SWF-файл в папку, повторяющую имя родительской папки, в которую вы хотите его вложить.

Если имя файла совпадает с именем существующего дочернего элемента в меню, вместо создания нового файла будет заменен существующий. Например, чтобы заменить компас в меню HUD, сначала нам нужно узнать путь, который нам нужно создать. Открыв файл hudmenu.fla из репозитория SkyrimUI SDK rSDK, мы можем получить его:

Элемент компаса называется Compass, поэтому мы называем SWF-файл "Compass.swf".
Путь - HUDMovieBaseInstance ➡CompassShoutMeterHolder ➡ Compass, поэтому результирующая структура папок-файлов выглядит следующим образом:

*Примечание: По логике, при замене любая ссылка MovieClip на старый элемент пользовательского интерфейса должна быть переназначена на новый элемент, поскольку старый элемент в этом случае не существует. Проверьте код ActionScript меню, чтобы увидеть, где ссылаются на MovieClip, который является целевым элементом пользовательского интерфейса, или на его дочерние элементы.

Когда SWF-файлы находятся в соответствующих путях, модицифицированными элементами пользовательского интерфейса можно управлять как ванильными: с помощью скрипта пользовательского интерфейса papyrus, или C++ Scaleform для плагина SKSE.

В разделе Файлы вы можете найти API для этого фреймворка. Этот API будет посылать события для различных этапов загрузки меню и патчей, чтобы вы могли выполнять действия между каждым этапом (переставлять элементы, присваивать значения и т.д.).

На данный момент API предназначен только для C++. В будущих обновлениях я добавлю больше функциональных возможностей, таких как инспектирование элементов пользовательского интерфейса из вашего кода.

  • distar66 за звонок, который наконец-то побудил меня начать изучать RE и заняться моддингом
  • Fudgyduff (Райан) за его бесценную библиотеку SSE RECommonLibSSE, которая заложила основу для других.
  • CharmedBaryon за улучшение работы Райана с CommonLibSSE-NG
  • meh321 для Address Lbrary for SKSE Plugins
  • Команде SKSE за один из самых (если не самый) полезных вкладов в моддинг SSE: SKSE64
  • Mardoxx за суперполезный SkyrimUI SDK
  • Schlangster и всей команде SkyUI за легендарный SkyUI

Эти люди потрясающие и очень талантливые, так что посмотрите их работы, скачайте их и не забудьте поддержать :)

А также всем патронам, благодаря которым это стало возможным, с особым упоминанием:

Ребята, вы лучшие!

Сурс: https://github.com/alexsylex/InfinityUI

Загрузил:
Liby005
3

Комментарии

Авторизуйтесь, чтобы оставить новый комментарий. Или зарегистрируйтесь.