2026/10/21 1:16:24

REFramework 快速上手指南:30 分钟从 dinput8 注入到编译出你的第一个 C++ 插件

REFramework 快速上手指南:30 分钟从 dinput8 注入到编译出你的第一个 C++ 插件 REFramework 快速上手指南30 分钟从 dinput8 注入到编译出你的第一个 C 插件【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFrameworkREFramework 是面向 RE 引擎游戏 modder 的一体化框架核心是 mod 加载、Lua 脚本与 C 插件。你只需往游戏目录丢一个dinput8.dll就能在游戏里调出菜单并跑起 Lua 脚本——无需反编译游戏也不用动本体文件。我的环境跑得动 REFramework 吗查一下游戏在不在支持列表里《生化危机 2/3/4/7/Village/Requiem》《鬼泣 5》《街霸 6》、怪物猎人 Rise/Wilds/Stories 3、《龙之信条 2》《阿波罗·巴克斯》《鬼武者》等 RE 引擎作品都在覆盖范围内。判断标准只有一条游戏用 RE 引擎。用 G 引擎的老作品如 RE1 原版不在列表里REFramework 注入后不会有菜单。确认渲染与平台条件渲染DirectX 11 / DirectX 12 均可REFramework 自动接管对应钩子平台Windows 原生Linux 走 Proton在 Steam 游戏属性里加启动选项即可开发编译 C 插件需要 C23 编译器推荐 Visual Studio 2022加 CMakeWINEDLLOVERRIDESdinput8.dlln,b %command%Proton 用户把这一行粘进启动选项作用就是让 Wine 优先使用你放进去的dinput8.dll而不是系统自带版本。 你的游戏在上表、系统是 Win 或 Proton 环境环境检查通过。怎样用最小代价把菜单弄出来把 dinput8.dll 放到游戏根目录从 Releases 拿稳定版 zip要新特性看 Nightly 开发版。放置规则按身份分两种你是谁放置动作非 VR 用户只解压dinput8.dll一个文件放游戏根目录和主.exe同级VR 用户先装 SteamVR然后把整个 zip 解压到游戏目录按 Insert 验证注入成功正常进入游戏后按Insert 键默认菜单键之后可改。如果画面里弹出覆盖式窗口分区块列出 Script Runner、内置 mod 与 VR 设置——说明注入和菜单都正常。内置的 Free Camera、FOV 滑块、Scene Timescale 等 mod 现在就能直接勾选使用零脚本。✅ 弹出了菜单窗口说明 dinput8 注入成功这是后面一切操作的入口。如何跑出第一个 Lua 脚本效果从 Script Runner 面板加载任意 .lua菜单里的 Script Runner 区块有三个按钮Run script弹文件选择框选中.lua立即执行Reset scripts卸载全部脚本Spawn Debug Console开一个调试控制台。脚本加载后面板的 Known scripts 里会出现复选框可随时单个启停。注意时机框架会等 Scene 和 SceneManager 就绪后才加载脚本日志出现 Scene and scene manager found. Loading scripts... 才算真正开始跑。写一个每帧回调的最小脚本新建my_first.lua放游戏目录内容是每帧取一次主相机并打印-- 每帧回调取主相机并打印验证链路 local get_go sdk.find_type_definition(via.Component):get_method(get_GameObject) re.on_frame(function() local cam sdk.get_primary_camera() if cam then re.msg(tostring(get_go(cam))) end end)用Run script加载。sdk表是操作游戏托管对象的统一入口find_type_definition拿类型:get_method拿方法方法指针在脚本顶部取一次并缓存别在每帧回调里重复find_type_definition。仓库 scripts/ 里全是实战参考比如 scripts/re2_smooth_movement.lua 演示了怎么取玩家 Transform 和 Joint 做移动平滑。✅ 菜单里每帧滚动打印 GameObject 信息即表示类型 → 方法 → 对象整条链路已打通。怎么从用脚本走到自己编译 C 插件拉仓库并只编译你需要的游戏目标开发环境按 COMPILING.md 准备VS2022 CMake。git clone https://gitcode.com/GitHub_Trending/re/REFramework git submodule update --init --recursive cmake -S . -B build -G Visual Studio 2022 -A x64 -DCMAKE_BUILD_TYPERelease cmake --build build --config Release --target RE2--target指定单个游戏目标很关键——不带 target 会全量编译所有游戏白花几十分钟。把产物丢进 reframework/plugins 完成闭环游戏启动时REFramework 会扫描持久目录reframework/plugins/并LoadLibrary其中每一个.dll文件名即插件名。所以流程是编译出 DLL → 放进游戏目录下reframework/plugins/→ 重启游戏。仓库里的 examples/example_plugin/ 是最完整的骨架Plugin.hpp声明生命周期回调Plugin.cpp演示 ImGui UI 初始化、D3D11/D3D12 双后端接入以及用create_script_state创建独立 Lua 沙箱的写法通读一遍比看文档直接。上图是 REFramework 同源的 ImGui 渲染风格你在菜单和插件 UI 里看到的就是这套界面。✅ 重启后菜单正常出现且日志无[Plugin] error即表示你的 DLL 已被框架加载成功。不工作时该找哪里脚本报错看哪里Script Runner 面板常驻显示 Last Script Error 和红字详情。勾上Log Lua Errors to Disk让错误落盘再配合 Debug Console 实时看输出基本能定位所有脚本问题。没生效先排查两个高频原因⚠️ 现象脚本突然整体失效面板有明确提示。原因在线匹配下框架会卸载全部脚本设计行为不是 bug。正确做法回单机模式再验证⚠️ 现象VR 功能看起来没生效。原因只放了dinput8.dll却期望整套 VR 运行时。正确做法VR 场景必须解压整个 zip 包脚本跑得越久越卡怎么办看面板里的 GC Stats当前 MB 占用和 GC Handler / Mode / Budget 参数。经验法则re.on_frame里只做增量计算方法指针顶部缓存。观察 Stats 数值稳定不再上涨即说明回收策略已调好。✅ 按报错看面板 → 没生效查模式与文件位置 → 卡顿查 GC排查完仍有异常把 Last Script Error 全文记下来对照 scripts/ 里的写法多数问题能自行收敛。怎么把作品打包给别人分发物就是文件本身C 插件 一个 DLL有资源文件就随附放reframework/plugins/Lua 脚本 一个.lua丢游戏目录若require了工具库把scripts/utility/一并附上去哪查 API 与更多示例C 插件 API 以仓库include/reframework/头文件为准Lua API 与用法查官方 Wikirefdocsexamples/ 看插件骨架scripts/ 看各游戏脚本实战。✅ 接收方按你附的放哪个目录、重启游戏一句话操作后能跑即算分发闭环完成。动手验收清单用Run script加载scripts/re2_smooth_movement.lua操控角色走一段路再用Reset scripts卸载对比画面差异——脚本生效与卸载都符合预期说明你已掌握加载-卸载全流程照本文最小脚本改一版把相机换成玩家对象用计数器每 60 帧打印一次坐标——日志从刷屏变成间歇输出说明回调 节流写法已掌握编译examples/example_plugin/把产物放进reframework/plugins/重启游戏——菜单正常且日志无[Plugin] error你就完成了从源码到可分发插件的完整闭环【免费下载链接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games项目地址: https://gitcode.com/GitHub_Trending/re/REFramework创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考