一个 dll 通吃 18 款游戏:开源 Mod 框架 REFramework 实操指南
【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework
想给 RE4 戴上 VR 头显,顺手把视野拉宽、把准星挪个位——过去得翻好几套各管一格的模组。现在只要往游戏目录里丢一个 dll。这就是REFramework:一个开源、免费、本地运行的 RE 引擎模组加载器,把 Lua 脚本、C++ 插件和 VR 支持全塞进了同一个 dll 里。
🎯 REFramework 到底能干什么:核心能力速览
- 一个 dll 通吃全系:RE2/3/4/7/8/9(Requiem)、怪猎 Rise/Wilds/Stories3、街霸6、鬼泣5、DD2 等 18 款 RE 引擎游戏共用同一个
dinput8.dll,运行时自动识别当前是哪款游戏。 - 脚本与插件双入口:Lua 脚本热插热拔,C++ 插件直接按名字钩住游戏方法;想上强度还能用 C# 插件框架。
- VR 支持:全系 6DOF 通用 VR,RE2/3/7/8 额外带体感动作控制,兼容 OpenVR 与 OpenXR。
- 开箱即用的小 Mod:第一人称、手动手电、自由摄像机、场景时间轴、FOV 滑条、超宽屏修正、GUI 隐藏等,装完就能调。
- 带开发者工具箱:开发者模式里内置 GameObjects 显示、Object Explorer,能直接翻游戏内存里的对象。
上图是它内置的节点式可视化界面样式:把游戏里的调用关系当成一个个"插头"连起来,比对着地址表找偏移量友好得多。
🚀 最快上手路径:从下载进游戏目录到跑通 VR
- 只玩平面、不开 VR:下载最新 release 的 zip,只解压出
dinput8.dll到游戏目录。注意只放这一个文件,多放会破坏抗锯齿。 - 要开 VR:先装 SteamVR(或接 OpenXR 头显),再把整个 zip 解压进对应游戏目录。
- Linux / Proton:在 Steam 启动项加
WINEDLLOVERRIDES="dinput8.dll=n,b" %command%即可。 - 多久能跑起来:不编译的话,解压进目录、进游戏,一两分钟就见菜单。系统要求 Windows(或 Proton/Wine),显卡支持 DirectX 11 或 12 都行。
- 要自己编译(可选):需要 Visual Studio 2022(C++23)+ CMake,先拉子模块再编译单个游戏 target,几分钟一个。
git clone https://gitcode.com/GitHub_Trending/re/REFramework git submodule update --init --recursive cmake --build ./build --config Release --target RE2上面三条:拉代码 → 补齐第三方依赖(imgui、minhook、sol2 等都在子模块里)→ 只编你要的那款游戏,省得全量编译。
🔍 拆开看:REFramework 一个 dll 怎么"混进"所有 RE 游戏
它不靠外挂注入,而是伪装成游戏本来就会加载的dinput8.dll(DirectX 输入库)。游戏一启动就去调它,于是"顺理成章"进来了——像混进餐厅后厨的传菜通道,每道菜出锅的瞬间贴张小纸条。
进去之后它做两件事:
- 钩住渲染管线:同时挂上 D3D11 和 D3D12 的
Present,在每帧画面上叠一层 ImGui 菜单,所有滑条、开关都画在这层上。 - 靠反射按名字办事:dll 启动时先探测当前是哪款游戏、哪个 TDB 版本,再分发到对应内存布局。之后你用 Lua 或 C++ 直接按类型名、方法名去调游戏函数,不用手填偏移。仓库里这个 C++ 插件就是典型:
// 人话:按名字找到"武器开火"这个游戏方法,把我们的逻辑挂在它前面 API::get()->tdb()->find_method("snow.player.PlayerWeaponCtrl", "start") ->add_hook(pre_start, post_start, false);它对应的源码在 examples/weapon_stay_big_plugin/weapon_stay_big.cpp:挂上钩子后,每帧把武器大小常量写回 1.0,武器就不再变大。整个 Mod 就几行。
⚖️ 横向对比:REFramework 比单游戏脚本强在哪
| 维度 | REFramework | 单游戏脚本/补丁 | 通用引擎调试器 |
|---|---|---|---|
| 覆盖游戏 | 18 款全系通用 | 通常单款 | 视引擎而定 |
| 脚本语言 | Lua + C++ + C# | 多为单语言 | C++ 为主 |
| VR 支持 | 6DOF 全系 + 体感 | 基本无 | 基本无 |
| 部署 | 一个 dll 拖进目录 | 每游戏一套 | 需配环境 |
| 费用/开源 | 开源免费 | 各异 | 各异 |
真正的差异不在单项,而在"一份 dll 覆盖全系"这件事本身:同一套脚本 API 换个游戏目录就能复用,改 FOV 的脚本不用为 RE2 和 RE4 各写一遍。加上 VR 这条线是内置而非外挂,平面玩家和 VR 玩家共用一个生态。
📦 谁在用、怎么用:三个真实场景速写
- 平面玩家调手感:装完进游戏,菜单里把 FOV 拉到 110、关掉暗角,再开个第一人称,全程不碰内存地址。
- VR 玩家:装 SteamVR,整个 zip 拖进 RE4 目录,戴上头显就能在 6DOF 里走位;RE2/RE3 还能用手柄挥刀。
- 脚本作者:用 Lua 监听
UpdateMotion每帧回调,按名字读写玩家坐标做移动平滑;想深入就写 C++ 插件钩方法,仓库 scripts/re2_smooth_movement.lua 就是现成范本。
生态与参与(简短收尾)
代码全开源,直接改源码、提 PR 就能参与;想写脚本先看项目 Wiki,想碰 C++ 就看 examples/ 里的插件样板。未来值得盯的方向是两个:一是把 TDB 反射层扩展到更多 RE 引擎新作品(RE Requiem、Pragmata 已在路上),二是让 Lua/C++/C# 三种入口的 API 更统一。对想"一套工具玩转整个 RE 引擎宇宙"、又在意开源可控的玩家和开发者来说,REFramework 现在是这条路上最省心的起点。
【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考