戰(zhàn)指南:5 分鐘跑通游戲內(nèi)菜單 + 第一個(gè) Lua 腳本與 C++ 插件)
REFramework 實(shí)戰(zhàn)指南5 分鐘跑通游戲內(nèi)菜單 第一個(gè) Lua 腳本與 C 插件【免費(fèi)下載鏈接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games項(xiàng)目地址: https://gitcode.com/GitHub_Trending/re/REFrameworkREFramework 是面向 RE 引擎游戲的 Mod 框架集 mod 加載、Lua 腳本、C 插件與 VR 支持于一體。讀完本文你能按 Insert 呼出游戲內(nèi)菜單、跑通第一個(gè) Lua 腳本并編譯加載自己的 C 插件。唯一前提是 Windows 游戲客戶端。它到底是什么RE 引擎游戲的一體化 Mod 加載器dinput8.dll 注入本體是一個(gè)偽裝成 DirectInput 的 DLL丟進(jìn)游戲目錄即注入DX11/DX12 均支持ImGui 游戲內(nèi)菜單注入后接管渲染鉤子所有內(nèi)置 mod、腳本面板、插件都掛在同一菜單下Lua 腳本平臺(tái)內(nèi)置 sol2 沙箱re回調(diào)表 sdk對(duì)象表直接操作游戲托管對(duì)象C 插件與 VR啟動(dòng)時(shí)掃描目錄自動(dòng)LoadLibrary插件 DLLVR 用戶解壓整包即可用支持范圍覆蓋《生化危機(jī) 2/3/4/7/Village/Requiem》《鬼泣 5》《街霸 6》《怪物獵人 Rise/Wilds/Stories 3》《龍之信條 2》等完整列表見 README.md。動(dòng)手之前dinput8.dll 該放哪運(yùn)行環(huán)境Windows Steam 游戲客戶端無(wú)需反編譯、不修改游戲本體文件。獲取從 Releases 頁(yè)下載穩(wěn)定版 zip想要新特性用 Nightly 開發(fā)版。非 VR 用戶只解壓dinput8.dll一個(gè)文件放到游戲根目錄與主.exe同級(jí)VR 用戶先裝 SteamVROpenXR 設(shè)備除外整個(gè) zip 解壓到對(duì)應(yīng)游戲目錄確認(rèn)裝好進(jìn)游戲按Insert默認(rèn)菜單鍵可在菜單里改彈出覆蓋窗口即成功。Linux/Proton 用戶在 Steam 啟動(dòng)選項(xiàng)加WINEDLLOVERRIDESdinput8.dlln,b。5 分鐘跑通游戲內(nèi)菜單最小可行體驗(yàn)dinput8.dll放進(jìn)游戲根目錄正常啟動(dòng)游戲進(jìn)入主界面后按Insert觀察彈出的覆蓋窗口成功判定窗口分區(qū)列出 Script Runner、各內(nèi)置 modFree Camera、Scene Timescale、FOV、First Person 等與 VR 設(shè)置??吹郊醋⑷氤晒@是后續(xù)一切操作的入口。內(nèi)置 mod 即裝即用Free Camera 全游戲通用First Person、Manual Flashlight 限特定作品開發(fā)者構(gòu)建下還有 Game Objects Display 和 Object Explorer 兩個(gè)工具。核心工作流從加載腳本到拿到游戲?qū)ο笈芡ǖ谝粋€(gè) Lua 腳本打開菜單里的 Script Runner 區(qū)塊Run script彈出文件選擇框選中任意.lua立即執(zhí)行Reset scripts卸載全部Spawn Debug Console彈調(diào)試控制臺(tái)。加載后 Known scripts 區(qū)列出復(fù)選框可隨時(shí)單獨(dú)開關(guān)。判定標(biāo)準(zhǔn)面板 Last Script Error 為空腳本出現(xiàn)在 Known scripts 勾選列表中。倉(cāng)庫(kù) scripts/ 是現(xiàn)成參考按re2_xxx.lua、re4_xxx.lua區(qū)分游戲。注意腳本有加載時(shí)機(jī)框架等場(chǎng)景就緒才加載日志出現(xiàn)Scene and scene manager found. Loading scripts...才算真正開始。寫一個(gè)自己的 re.on_frame 回調(diào)re.on_frame注冊(cè)每幀執(zhí)行的函數(shù)re.msg輸出會(huì)顯示在菜單里。新建my_first.lua放進(jìn)reframework/autorun/持久目錄或手動(dòng)Run script加載-- 頂部緩存方法指針別在每幀里重復(fù)查找 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(找到主相機(jī): .. tostring(get_go(cam))) end end)判定標(biāo)準(zhǔn)菜單里每幀刷出相機(jī)信息說(shuō)明回調(diào)鏈路已掛上。用 sdk 拿到游戲?qū)ο髎dk表是操作游戲托管對(duì)象的統(tǒng)一入口find_type_definition(類型全名)拿類型:get_method(方法名)拿方法再調(diào)用sdk.game_namespace幫你補(bǔ)全游戲命名空間。scripts/re2_smooth_movement.lua 是完整范例——它獲取角色 Transform 與 Joint 并改寫實(shí)現(xiàn)平滑移動(dòng)local re2 require(utility/RE2) -- 倉(cāng)庫(kù)自帶工具庫(kù)直接拿玩家對(duì)象 local get_transform sdk.find_type_definition(via.GameObject):get_method(get_Transform) local get_position sdk.find_type_definition(via.Transform):get_method(get_Position) re.msg(玩家位置: .. tostring(get_position(get_transform(re2.player))))require能解析utility/RE2這類相對(duì)路徑工具庫(kù)在 scripts/utility/跨游戲通用。判定標(biāo)準(zhǔn)日志打出三維坐標(biāo)類型 → 方法 → 對(duì)象整條鏈路即通。進(jìn)階編譯并加載你的第一個(gè) C 插件想做 Lua 之外的事自定義 hook、直連渲染后端、獨(dú)立 Lua 沙箱就寫 C 插件。裝 Visual Studio 2022C23 CMake完整細(xì)節(jié)見 COMPILING.md拉取倉(cāng)庫(kù)與依賴git clone https://gitcode.com/GitHub_Trending/re/REFramework cd REFramework git submodule update --init --recursive只構(gòu)建你玩的游戲目標(biāo)避免全量編譯幾十分鐘cmake --build build --config Release --target RE2通讀 examples/example_plugin/Plugin.hpp聲明版本與生命周期回調(diào)Plugin.cpp實(shí)現(xiàn) ImGui 初始化、D3D11/D3D12 雙后端接入并用API::get()-param()-functions-create_script_state()創(chuàng)建獨(dú)立 Lua state 沙箱把編譯出的 DLL 丟進(jìn)持久目錄下reframework/plugins/文件名即插件名重啟游戲——啟動(dòng)時(shí)框架自動(dòng)掃描該目錄加載每一個(gè).dll判定標(biāo)準(zhǔn)重啟后菜單正常日志無(wú)[Plugin] error插件區(qū)列出 Loaded plugins。C 插件 API 的準(zhǔn)確定義看 include/reframework/ 頭文件另有一個(gè)更小的實(shí)戰(zhàn)示例 examples/weapon_stay_big_plugin/ 可參考。避坑REFramework 腳本常見坑與性能調(diào)優(yōu)在線匹配下腳本整體卸載面板提示Online match detected單機(jī)模式才生效這是設(shè)計(jì)行為不是 bugDLL 放錯(cuò)位置dinput8.dll必須與主程序同級(jí)VR 用戶只放一個(gè) dll 也會(huì)看起來(lái)沒生效os庫(kù)被沙箱裁剪os.remove / execute / getenv等全部置空刪文件、跑命令改用fs綁定誤判腳本沒生效先看日志是否出現(xiàn)Loading scripts...場(chǎng)景沒就緒前腳本根本沒跑性能re.on_frame回調(diào)只做增量計(jì)算get_method方法指針在腳本頂部取一次并緩存別每幀find_type_definition。Script Runner 面板的 Garbage Collection Stats 實(shí)時(shí)顯示 MB 占用數(shù)值穩(wěn)定不再上漲說(shuō)明回收策略已調(diào)好。資源索引與你的下一步C 插件骨架examples/example_plugin/Lua 實(shí)戰(zhàn)腳本scripts/跨游戲工具庫(kù)scripts/utility/編譯指南COMPILING.md插件 API 頭文件include/reframework/下一步動(dòng)手用 Script Runner 把 scripts/re2_smooth_movement.lua 加載進(jìn) RE2移動(dòng)角色觀察畫面再Reset scripts卸載對(duì)比兩者差異照re.on_frame例子改一版把主相機(jī)換成玩家對(duì)象用計(jì)數(shù)器控制每 60 幀打印一次位置體會(huì)回調(diào) 節(jié)流寫法編譯 examples/example_plugin/產(chǎn)物丟進(jìn)reframework/plugins/重啟確認(rèn)菜單正?!憔屯瓿闪藦脑创a到插件的完整閉環(huán)【免費(fèi)下載鏈接】REFrameworkMod loader, scripting platform, and VR support for all RE Engine games項(xiàng)目地址: https://gitcode.com/GitHub_Trending/re/REFramework創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考