Unreal Engine 4/5 腳本系統
支持Lua腳本系統平臺,C++ Modding API, SDK生成器, 藍圖模塊加載器, 實時屬性編輯器以及其他UE4/5遊戲的丟棄功能。
模組介紹 作者原文
Unreal Engine 4/5 腳本系統
支持Lua腳本系統平臺,C++ Modding API, SDK生成器, 藍圖模塊加載器, 實時屬性編輯器以及其他UE4/5遊戲的丟棄功能。
主要特徵
- Lua Scripting API:基於UE對象系統編寫lua mods
- Blueprint Modloading:自動加載藍圖模塊,無需編輯/替換遊戲文件
- C++ Modding API:基於UE對象系統編寫C++ mods
- Live Property Viewer and Editor:搜索、查看、編輯可加載對象的屬性,並觀察在運行時如何修改值,非常適合debug mods或找出值如何在運行時修改
- UHT Dumper: 爲您的遊戲生成兼容Unreal Header Tool的C++頭文件,創建一個鏡像.uproject
- C++ Header Dumper:從反射類和blueprints生成標準C++ headers,含有偏移
- Universal UE Mods:解鎖遊戲控制台和其他通用mods
- Dumpers for File Parsing:生成 `.usmap` 映射文件用於無版本屬性
- UMAP Recreation Dumper:將所有加載的actors轉儲至文件生成 `.umaps` in-editor
- 其他特性,包括有時的實驗性 功能
針對的UE版次:從4.12 到 5.2
UE4SS的目標並不是成爲一個總是能和每一款遊戲工作的即插即用解決方案。
目標是擁有一個能對大部分遊戲有效的基礎系統。
您可能需要自行更新AOBs,下面有一份指南。
基本安裝
最簡單的安裝方式是通過下載xinput版本 的最新非實驗構建版本,並將zip內容提取到 `/{Gameroot}/GameName/Binaries/Win64/`。
如果你的遊戲在自定配置列表中,也將相關文件夾的內容提取到 `Win64`。
鏈接
完整安裝指南
修復兼容性問題
Lua API - 概述
生成UHT兼容頭文件
自定義遊戲配置
創建兼容藍圖模塊
UE4SS Discord服務器邀請
Unreal Engine Modding Discord服務器邀請
構建要求
- 須使用Windows操作系統的電腦。
- Linux支持可能會在未來的某些時候發生,但不會很快。
- 可支持C++20(包括std::format)的MSVC版本。
- Visual Studio 2019(近期版本),和Visual Studio 2022都可。
- 期待能支持更多的編譯器。
構建指導
- 克隆該倉庫。
- 執行以下命令: `git submodule update --init --recursive`
確保你的Github賬號已和你的Epic Games賬號鏈接,獲得對UE源碼的訪問權限。
切勿使用 `--remote` 選擇,因爲它會強制執行第三方依賴項的更新到最新commit,而這可能會破壞事情。
你需要把你的github賬號鏈接到一個Epic games賬號裏以拉取Unreal僞代碼子模塊。
- 你可以通過以下三種方法之一構建UE4SS。
- 執行以下命令::`build_auto.bat `,例如:`build_auto.bat Release ue4ss`
有效的Build模式爲 `Release` 和 `Debug`,有效目標爲 `ue4ss` 和 `xinput1_3`。
支持並行編譯。
- 打開CLion中的根UE4SS目錄,在目標列表中選擇`ue4ss`或`xinput1_3`然後點擊構建按鈕。
並行編譯在這種方法中是**不支持**的。
- 執行 `VS_Solution/generate_vs_solution.bat`生成 Visual Studio解決方案文件。
使用 Visual Studio 2019 或者 Visual Studio 2022 打開解決方案,選擇構建類型並構建 `ue4ss` 項目。
並行編譯在這種方法中是支持的。
更新依賴項
如果你要更新依賴項,可以用以下三種方式之一:
- 可以執行 `remote_update_first_party_submodules.bat` 更新所有第一方依賴項。
- 你也可以選擇一次更新一個依賴項,通過執行 `git submodule update --init --recursive vendor//`。
記着不要使用 `--remote` 選項,除非你實際上想更新到最新的提交。
- 如果你更願意選擇一個特定的提交或分支來更新某個依賴項,首先 `cd` 進入那個依賴項的子模塊目錄,然後執行 `git checkout `。
注意,如果你更新的原因並非是別人推送了更新,並且你只是跟進,那麼你應該提交併推送你已經更新的子模塊。
鳴謝
所有自從項目開源以來的貢獻者:
- **原始創建者** 原始創建者不再希望參與或與此項目有關。請尊重他們的意願,並避免在與此項目有關的內容中使用他們過去的用戶名。
- **Archengius**
- UHT兼容頭文件生成器
- **CasualGamer**
- 注入器代碼和aob掃描器主要基於他的工作,90%的代碼是他的。
- **SunBeam**
- 額外簽名用於函數 'GetFullName' for UE4.25.
- 檢查ini載入的合適簽名格式的正則表達式。
- 在簽名問題上的大量工作
- **tomsa**
- const char * 轉 vector 轉換器
- tomsa: 主意和大部分代碼
- 原始創建者: Nibblet支持
- **boop** / **usize**
- 新的UFunction掛鉤方法
- **RussellJ**
- 藍圖模塊加載器靈感來源
- **Narknon**
- 特定功能以及維護/重組項目
- **DeadMor0z**
- 特定功能以及Lua更新/維護
- **OutTheShade**
- Unreal Mappings (USMAP) 生成器
- **DmgVol**
- 地圖dumper的靈感來源
- **Buckminsterfullerene**
- 重寫文檔,各種修復
- **trumank**
- Lua bindings生成器,各種修復,自動化&改進
- **localcc**
- C++ API
感謝所有幫助測試的人
- GreenHouse
- Otis_Inf
- SunBeam
- Motoson
- hooter
- Synopis
- Buckminsterfullerene
安裝與使用 安裝:按包內說明操作
- 解壓本站下載的壓縮包,先讀包內的 readme / 說明檔案。
- 這類遊戲沒有通用的模組管理器:有的模組直接替換遊戲檔案、有的放進遊戲專屬的 Mods 資料夾、有的要先裝遊戲對應的社群載入器或工具,以包內說明為準。
- 嚴格按說明放置檔案;標註「前置依賴」的模組需要把依賴一併裝好。
- 啟動遊戲確認載入成功;部分遊戲需要在設定或模組選單裡手動啟用。
不同遊戲、不同模組的安裝位置差異很大,包內說明是最可靠的依據。