Infinity UI 2.0.2
Infinity UI - это фреймворк, который позволяет добавлять или заменять отдельные элементы в любом меню пользовательского интерфейса, будь то меню ванильного или добавленного модами.
Функция менеджера виджетов в SkyUI позволяла добавлять виджеты только в HUD и без замены, но в определенных случаях эту функциональность нужно было расширить.
Чтобы сохранить совместимость, моддерам приходилось создавать другие меню и помещать их сверху, добавляя дополнительную логику, чтобы обойти тот факт, что добавленные элементы не принадлежат целевым меню. Infinity UI стремится решить эту проблему удобным для пользователя способом, загружая SWF-файлы из предварительно заданной папки во внутриигровые меню. Все просто.
Все это также означает, что становится возможным перекраивать отдельные элементы пользовательского интерфейса, не затрагивая остальные. Комбинируя альтернативные варианты, соответствующие теме и обладающие хорошим вкусом, пользовательский интерфейс может выглядеть удивительно и уникально.
Compass Navigation Overhaul использует этот фреймворк для расширения функциональности компаса с помощью функций облегчающих жизнь, которые можно увидеть в таких играх, как God of War, Assassin's Creed, Horizon и др. Он также отображает список квестов в худе, когда вы фокусируетесь на маркере квеста в компасе.
Если вы дочитали до этого момента, возможно, вам будет интересно попробовать его в своем мод-листе. Итак... снова возвращаемся в Скайрим?
- Address Library for SKSE Plugins для вашей версии игры;
- SKSE для вашей версии игры
Используйте менеджер модов по своему выбору и установите его как любой другой мод. Для ручной установкискачайте оригинальны файл на Nexus и скопируйте содержимое архива в папку Data по пути установки Скайрима. С заменой файла установите перевод с Tesall.
Этот мод совместим с любыми модами, созданными на сегодняшний день.
Установите этот плагин. Следуйте инструкциям, указанными авторами 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
Эти люди потрясающие и очень талантливые, так что посмотрите их работы, скачайте их и не забудьте поддержать :)
А также всем патронам, благодаря которым это стало возможным, с особым упоминанием:
- Євгеній Шевченко
- xaliber
- Joey
- HeathenHipster
- Tee DjY
- Nacalar
- Alex
- Tate Paterson Hughes
- Mason Berry
- Scott Whiting
- Khenta
- Jyakob
- Miss Magpie
- Urukass
- Garrett H.
- VVSCloud
- Brendan Gysbers.
Ребята, вы лучшие!
Сурс: https://github.com/alexsylex/InfinityUI
Комментарии