☰
REFramework 上手三条路线:dinput8.dll 注入、Lua 脚本与 C++ 插件
2026/10/17 2:36:41 网站建设 项目流程

REFramework 上手三条路线:dinput8.dll 注入、Lua 脚本与 C++ 插件

【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework

想让生化危机、鬼泣这类 RE 引擎游戏的角色移动更顺滑、多一个 HUD 面板、甚至整个人进 VR 打怪,又不想动游戏本体文件?把 REFramework 编译出的dinput8.dll放进游戏目录就行,Lua 游戏脚本和 C++ 插件两条路线都能走通,本文按"只写 Lua / 写 C++ / 只开 VR"三种身份各走一遍。

开工前的公共底座:把 dinput8.dll 编译出来

先花 30 秒搞懂注入原理:dinput8.dll是 DirectInput 库的替身。RE 引擎游戏启动时会按惯例加载 DirectInput 的dinput8.dll,而游戏目录里放的这个文件其实是 REFramework 本体,于是整个框架就在游戏进程里跑了起来——游戏本体一个字节都没改。

从 clone 仓库到 build64_all 产出 dinput8.dll

环境要求全是 Windows 侧工具链:Visual Studio 2022(带 C++ 桌面开发工作负载,需要 C++23 支持)、CMake 3.15 以上、Git,系统 Windows 10/11 64 位。咱们先拿源码,顺手把第三方依赖拉齐:

git clone https://gitcode.com/GitHub_Trending/re/REFramework cd REFramework git submodule update --init --recursive

git submodule那条会把 ImGui、Lua、sol2 等依赖拉进dependencies目录,完成后该目录不再空着。接着配置并编译,DEVELOPER_MODE=ON打开开发者模式,后面查类型名会用上:

mkdir build64_all cd build64_all cmake .. -G "Visual Studio 17 2022" -A x64 -DDEVELOPER_MODE=ON cmake --build . --config Release

编译跑完后,build64_all/bin/REFramework目录下就是产物,dinput8.dll在其中。嫌敲命令麻烦,直接双击根目录的build_vs2022.bat,它把这几步打包好了。

如果卡住了:CMake 配置阶段报生成器错误,多半是 VS 没装 C++ 桌面开发工作负载;dependencies目录是空的,就单独重跑一次git submodule update --init --recursive。

游戏启动后看哪里确认注入成功

把dinput8.dll复制进游戏安装目录,正常启动游戏。画面右下角会出现 REFramework 的悬浮入口,点开是一排内置 mod 开关:FOV 滑块、自由相机、第一人称、场景时间缩放、宽屏修正都在菜单里。菜单能弹出来,就说明注入成功了。

如果卡住了:菜单没出现时,先确认 dll 和游戏主程序.exe在同一目录、游戏没有反作弊机制拦截注入,再怀疑框架版本与游戏版本不匹配。

路线一:只写 Lua 的轻度 modder

Lua 脚本放哪个目录、第一份脚本从哪抄

游戏目录下的scripts文件夹就是脚本入口,放进去的.lua文件启动时自动加载。第一份脚本建议照抄仓库现成的:scripts/re2_smooth_movement.lua 演示了如何通过via.Transform读写玩家位置实现移动平滑,RE2 的 VR 准星、RE8 的 VR 适配脚本也是同一思路。脚本里能读游戏对象、调引擎方法,比如用sdk.find_type_definition按名字查类型。

写法上建议拆小步:先打印一个字段确认读到了,再改一个行为,最后才挂 UI,别一口气写完再回头找 bug。

-- 思路示意(具体字段名以官方教程为准): -- 1. 拿到玩家对应的 GameObject -- 2. 读取 via.Transform 组件的平移字段 -- 3. 每帧把目标位置与当前位置做插值再写回

怎么找到脚本要读写的类型名

via.Transform这类类型名有两处来源:官方教程 reframework-book 里的 Lua API 文档,以及开发者模式自带的调试工具。DEVELOPER_MODE构建出来的版本,游戏内菜单里有 Object Explorer 和 Game Objects Display,能直接浏览当前场景的 GameObject 和组件,不开 IDA 就能看到运行时对象图。

动手前顺手翻翻 scripts/utility/,里面的RE2.lua、RE4.lua等按游戏分类的工具函数能省掉大量重复代码。

路线二:想写 C++ 原生插件的进阶者

C++ 插件开发前,先熟悉这几个头文件

Lua 碰到平台限制、想要更深的控制时,就轮到原生插件出场了。起点直接抄 examples/example_plugin/:完整可编译的模板,演示了 ImGui 初始化、DirectX 11/12 渲染绑定和 Lua 沙箱注册;嫌它结构大,examples/weapon_stay_big_plugin是单文件小例子。

类型定义主要和 shared/sdk/ 打交道,regenny/子目录按游戏(re4、re9、sf6 等)分好;想深挖引擎行为,src下的Hooks.cpp、D3D11Hook.cpp展示了钩子怎么挂;要逆向新游戏,reversing/里还有 IDA 命名脚本和 dump 工具,初学可以先跳过这块。

插件画界面走的是 ImGui 这套栈,在 REFramework 里被封装得很彻底,基本不用碰底层。上面这张图来自 ImGui 生态的节点编辑器组件,给你个直观印象:插件能做的可视化远不止滑条和开关。

路线三:只想开 VR 不写代码的玩家

VR 怎么开:菜单里的开关和手柄动作

REFramework 给所有 RE 引擎游戏提供通用 6DOF VR,底层接 OpenVR 和 OpenXR 两套运行时,部分游戏还有专门的手柄动作适配(比如 RE8 的 VR 脚本)。流程就是四步:注入成功 → 打开菜单 → 找到 VR 开关 → 戴上头显,全程不用写代码。

头显识别不到的话,先在系统层面确认 SteamVR 或对应运行时能认出设备,再回游戏里重试。

今晚就能跑通的最小闭环:clone 仓库、编译,把re2_smooth_movement.lua复制到 RE2 安装目录的scripts文件夹,启动游戏看角色移动是否变顺——变顺了,整条链路就通了,剩下的事就是换脚本、换游戏。

【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询