iWant小部件

作者 DaemonPrime·版本 v1.0·更新於 2020-05-26

一個標準化的,以小部件爲中心的庫,可簡化使用Papyrus進行Skyrim用戶界面(UI)的編程使用。 允許輕鬆訪問UI中的任意文本和圖形顯示。 提供控制庫和Skyrim本機UI元素的功能。 刪除Adobe Flash作爲有效的UI修改的要求。

截圖 共 1 張

模組介紹 作者原文

一個標準化的,以小部件爲中心的庫,可簡化使用Papyrus進行Skyrim用戶界面(UI)的編程使用。 允許輕鬆訪問UI中的任意文本和圖形顯示。 提供控制庫和Skyrim本機UI元素的功能。 刪除Adobe Flash作爲有效的UI修改的要求。

什麼?

一個標準化的,以小部件爲中心的庫,可簡化使用Papyrus進行Skyrim用戶界面(UI)的編程使用。允許輕鬆訪問UI中的任意文本和圖形顯示。提供控制庫和Skyrim本機UI元素的功能。刪除Adobe Flash作爲有效的UI修改的要求。

怎麼樣?

設計理念

擴展了SkyUI小部件的概念,可以更輕鬆地將其合併到Skyrim mod中。該庫僅使用可供Skyrim特別版所有者免費使用的工具即可使用。

在遊戲中

圖書館本身不會產生任何結果。它旨在用作支持庫,以允許修改者通過彌合一些其他複雜的技術差距來輕鬆擴展其功能。

加載順序

插件可以在任何地方加載。

兼容性

就其本身而言,沒有已知的兼容性問題。 SkyUI的小部件總數最多爲128。出廠時,此mod消耗了其中的1個斑點,並允許任意數量(非常大)的iWant控制的小部件。

爲什麼?

因爲天際UI模組太難了!真的,真的太難了。對於擁有正確工具和知識的遊戲開發者而言,他們並不難,但是它們遠遠超出了大多數modder的技術和/或財務範圍(如開發此mod時他們相對稀缺所證明)。作爲愛好者,我想以一種簡單的方式來獲得有趣的圖形。當我一無所獲時,我便着手進行逆向工程,以解決現有的那幾個小部件,以爲我可以找到一種模式,允許自己和社區輕鬆地在沒有Flash的新項目中重用現有的小部件。最初看起來很有希望的東西變成了一個非常深的兔子洞。最終我瞭解到,由於Scaleform(Flash)的工作方式,將現有SWF文件與新圖形一起重用是死路一條,因爲它們彼此衝突(我現在知道是因爲它們全部都位於一個全局命名空間中)。

自從走上這條路以來,我已經瞭解到SkyUI(和SKSE)在標準化Skyrim UI訪問(尤其是小部件)方面做了一些很棒的事情。 SkyUI中有一個相當健壯的庫,可以自我記錄。不幸的是,對於大多數人來說,它仍然有些深奧,而且可能更重要的是,它依賴於商業工具。特別是,SkyUI模型要求訪問Adobe Flash創建工具,在撰寫本文時,這些工具已不再由Adobe出售或免費提供。我相信這個障礙,甚至比複雜性還要嚴重,阻礙了該領域可能的mod開發。您要麼必須是擁有足夠使用該工具和知識才能使用該工具的知識的人,要麼必須是擁有這些功能的人的參與。這大大提高了將簡單的想法轉變爲簡單的mod的工作水平。

當我開始開發我的第一個公共模塊iWant RND Widgets時,除了簡單的開始,我發現我希望能夠輕鬆地將widget添加到其他東西。起初這似乎可行,並非易事,但可行。我花了很多時間對我可以使用的SWF文件進行反向工程。我能夠更改所使用的圖形並充分了解編程,以根據我的意願擴展窗口小部件文件(在限制範圍內)。不幸的是,一旦我基於iWant RND窗口小部件中使用的SWF文件構建了第二個窗口小部件模塊iWant Frostfall窗口小部件,便遇到了意料之外的問題,尤其是令人討厭的問題。無論我可以用JPEXS進行什麼更改,這兩個mod相互交互,即使從外觀上看都是唯一的(新文件名,新的ActionScript類名等)。例如,加載兩個小部件,改變形狀和調整大小(擴展了SkyUI的WidgetBase的小部件的唯一類中的功能)。這發生在多個不同的源窗口小部件上。經過大量的敲打之後,我得出了一個(可能是錯誤的)結論:SWF編譯過程正在將數據嵌入JPEXS不會更改的某個位置,從而使這兩個不同的文件在某個地方使用通用代碼。

毫不畏懼,現在對機器的勝利感到有些惱怒,我決定看看我能做些什麼來改善這種狀況。我尋找了一個古老的,仍然密封的盒裝Adobe Flash Builder 4副本。可能不是該工作的最佳Flash創建工具(不是,請繼續閱讀),但是可以使用。在等待它到達的過程中,我在腦海中勾勒出圖書館爲將來的改裝者更容易解決此問題所需的內容。

我決定必須解決Flash問題。爲了解決這個問題,我創建了100個獨特構建和編譯的SWF文件,每個文件包含10種顏色10個圖標。該軟件包將爲將來的修改者提供我所需的大量原材料,可以輕鬆地使用JPEXS進行修改。僅此一項,就足以使許多以前被Flash擋在軌道上的改裝者前進。我編寫了腳本以生成數千個唯一的SWF,並編寫了一個庫來管理100個SkyUI小部件,每個小部件中有N個小部件。這是一個雜亂無章的解決方案,但效果更好

n現狀。

Flash Builder 4出現了,我安裝了它,並且……迅速瞭解到它無法生成有用的Skyrim SWF所需的一半數據。事實證明,它實際上是用於處理ActionScript(Flash文件中的代碼)的專業集成開發環境(IDE),但是它不具備構建有用的SWF所需的圖形構建功能。在點擊“立即購買”之前進行研究。回到易趣...

我很幸運,找到了一份要出售的Flash CS4 Professional副本(嗚呼!)。這是完成這項工作的正確工具。然後,我花了整整兩週的時間進行正向和反向工程,然後逐步進行自學,最終在過程中自學了Flash設計和ActionScript。一路走來,我終於明白了這一點,並且(基本上)瞭解了實際情況。有了一些實際知識和辛苦的嘗試和錯誤經驗,我認爲我可以做得比最初的想法更好。

通過更清楚地瞭解正在發生的事情,我意識到有一種更簡單,更強大的方法可以使改裝者使用這些功能。我想出的基本上是ActionScript中經過簡化和標準化的API。您只需幾行紙莎草紙就可以開始將硬盤驅動器上的圖像放到屏幕上。再一行或兩行,您可以放置以編程方式生成的文本。再添加幾行,就可以使一些相當複雜的事情發生。最重要的是,您已經需要支付的所有費用(Skyrim SE)。其他所有內容均可免費獲得,即此mod和GIMP。

什麼時候?

該項目最初於2020年5月開發。

潛在的改進

測試!我做了很多,但我是一個,你們很多。請測試並記錄發現的錯誤。

反饋!如果您讓我知道有效的方法,無效的方法以及您希望存在的無效方法,則有可能將其修復或添加。對於新功能,請嘗試解釋爲什麼這裏的內容無法正常工作。我對將所有ActionScript映射到Papyrus並不感興趣,但是我敢肯定有些尚不實用的好東西。

更多圖書館圖片。這些花費時間來尋找和製作,主要是因爲我必須非常小心所涉及的許可證,以確保我可以免費適當地分發此mod(從這個詞的許多意義上來說)。

更多字體。就像圖像一樣,困難的部分是所有許可和歸屬。

工作數組傳輸到ActionScript。即使所有代碼都與工作示例匹配,我也無法使InvokeIntA工作。我放棄了,去了一個窮人的數組(在ActionScript中被分解的字符串)。我還沒有真正介紹過上下文從Papyrus到ActionScript更改實際花費的時間,但是原則上整數加載應該比相同信息的單個字符串加載更快。就目前而言,在我完成的所有庫練習中,字符串加載足夠快。

刪除庫中剩餘的比賽條件。在解決字符串負載之前,有一些地方會寫一個值,然後推送一個調用。我懷疑在紙莎草紙上發生的事情進展得足夠快,但仍然不夠理想。

——————————————————————————————————

What?

A standardized, widget-centric library to ease the programmatic use of Skyrim's user interface(UI) using Papyrus. Allows easy access to arbitrary text and graphics display within the UI. Provides functions to control both library and Skyrim native UI elements. Removes Adobe Flash as a requirement for effective UI modification.

How?

Design philosophy

Extend the concept of SkyUI widgets to allow easier incorporation into Skyrim mods. The library is fully functional using only tools freely available to owners of Skyrim Special Edition.

In Game

By itself, the library will produce nothing. It is intended as a support library to allow modders to easily extend their capabilities by bridging some otherwise complex technical gaps.

Load Order

Plugin can be loaded anywhere.

Compatibility

By itself, there are no known compatibility issues. SkyUI has a 128 total widget maximum. As shipped, th …

安裝與使用 安裝:按包內說明操作

  1. 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
  2. 這類遊戲沒有通用的模組管理器:有的模組直接替換遊戲檔案、有的放進遊戲專屬的 Mods 資料夾、有的要先裝遊戲對應的社群載入器或工具,以包內說明為準。
  3. 嚴格按說明放置檔案;標註「前置依賴」的模組需要把依賴一併裝好。
  4. 啟動遊戲確認載入成功;部分遊戲需要在設定或模組選單裡手動啟用。

不同遊戲、不同模組的安裝位置差異很大,包內說明是最可靠的依據。

檔案與校驗

檔案名稱
iWant小部件
檔案大小
257.6 KiB