
巫师3脚本扩展器 - TW3SE
巫师3脚本扩展器,一个用于模组的工具。新增的WitcherScript函数、带有游戏事件的Lua模组、带有引擎钩子的C++插件、ImGui窗口以及游戏的着色器。运行专为Witcher Native Bridge制作的模组以及每一个.asi模组。在游戏中(F2):每个模组的设置、实时重载、崩溃报告等。适用于5.0和5.01(DX12)以及REDkit。
查看大图[size=5][b]TW3SE[/b][/size]
[i]《巫师3》脚本扩展器[/i]
TW3SE 是面向模组的工具。它为《巫师3》和 REDkit 编辑器添加新的脚本函数和功能。需要它的模组会在其页面上注明。
[b]适用于《巫师3》重制版 5.0 和 5.01(DirectX 12)以及 REDkit。已在 Steam 上测试。[/b]
[size=4][b]安装[/b][/size]
[list=1]
[]将压缩包解压到游戏文件夹(即包含 [b]bin[/b] 和 [b]content[/b] 的那个文件夹),或使用模组管理器安装。[/]
[]照常启动游戏。[/]
[]要检查是否生效,按 F2 或打开 [b]bin\x64_dx12\tw3se\tw3se.log[/b]。第一行显示版本号。[/]
[/list]
[size=4][b]REDkit[/b][/size]
将 [b]bin\x64_dx12\dinput8.dll[/b] 和 [b]bin\x64_dx12\tw3se[/b] 文件夹复制到 REDkit 的 [b]bin\x64_RedKit[/b] 文件夹中。照常启动编辑器。
[size=4][b]新增内容[/b][/size]
[b]游戏内的 TW3SE 菜单(F2)[/b]
[list]
[]所有模组集中在一个列表中,带搜索框:Lua 模组、插件以及 Mods 文件夹中的模组[/]
[]每个模组的设置,包括游戏选项菜单中的设置[/]
[]模组的错误,以及当它每帧耗时超过 1 毫秒时的每帧用时[/]
[]模组添加的标签页[/]
[]新建模组:从模板创建你自己的 Lua 模组,在游戏内编写和测试[/]
[]冲突:多个模组带来的脚本和文件,以及哪一个生效[/]
[]控制台、任意对象的检查器(也包括你在世界中点击的对象)以及性能分析器(Lua 和 WitcherScript)[/]
[]一键将错误报告复制到剪贴板[/]
[]支持手柄(同时按住两个摇杆可打开菜单)[/]
[/list]
[b]游戏修复[/b]
[list]
[]选项 > 模组会打开每个模组的页面(5.0 补丁只打开前 10 个)[/]
[]为选项 > 模组中未翻译的选项提供可读名称[/]
[/list]
[b]WitcherScript 函数[/b]
[list]
[]存档之外的文件和变量[/]
[]玩家可重新绑定的快捷键(在 tw3se.config 中)[/]
[]按 GUID 操作任意已放置对象:隐藏、显示、其效果、模板和外观[/]
[]世界编辑:移除、移动、点燃或重新换肤已放置对象(读取存档后仍保留,并可通过任务事实切换)[/]
[]在世界中放置和移除树木[/]
[]按名称访问任意对象的字段和函数,以及某个类的所有活动对象[/]
[]来自 WAV 和 OGG 文件的声音,也可在实体处进行 3D 播放[/]
[]在游戏运行时挂载 DLC[/]
[]与外部工具之间的行和命令[/]
[/list]
[b]实时重载与调试[/b]
[list]
[]更改后的 WitcherScript 文件在游戏运行时重新加载(你脚本中的对象保留其值)[/]
[]Lua 模组的某个文件保存后重新加载[/]
[]用于 VS Code 的调试器:WitcherScript 和 Lua 中的断点、单步和变量[/]
[]错误报告和日志中每个脚本函数的文件和行号[/]
[]游戏启动时的编译错误,文件和行号记录在 tw3se.log 中[/]
[/list]
[b]Lua 5.4[/b]
[list]
[]读取和写入任意对象的任意字段[/]
[]调用游戏函数,包括原生函数和 WitcherScript 函数,以及潜伏函数[/]
[]对游戏函数和引擎引发的事件进行钩取(修改参数或结果)[/]
[]一行代码即可监听游戏事件:命中、死亡、物品、药水、等级、法印、任务、场景等[/]
[]你自己的物品和能力[/]
[]NPC 作为同伴:它们跟随你并与你并肩作战[/]
[]游戏选项 > 模组中的设置,以及按键绑定菜单中的按键(键盘和手柄)[/]
[]游戏上方的文本、框体和窗口,以及游戏的“是/否”窗口[/]
[]模组文本使用游戏语言[/]
[]每帧、定时器、按键或字段变化时执行代码[/]
[]每个模组的数据,随游戏存档保存或跨所有存档保存[/]
[]每个模组一个文件夹(在其内容文件夹旁的 Mods\<mod>\tw3se\),带有模块和其他 Lua 模组的函数[/]
[]用于时间、天气、摄像机、物品栏、任务、对话、物理、声音和动画的库[/]
[]约 1700 个引擎设置,可在游戏运行时读取和更改[/]
[]HTTP、TCP 和 UDP[/]
[/list]
[b]文件、着色器和网格[/b]
[list]
[]用文件夹中的松散文件替换游戏文件、纹理和声音(TW3SE 会打包它们)[/]
[]用你自己的着色器替换游戏着色器[/]
[]混合变形:通过 Lua 权重移动网格顶点[/]
[/list]
[b]C++ 插件[/b]
[list]
[]自定义脚本函数和控制台命令[/]
[]引擎钩子、调用游戏函数、按名称访问任意字段[/]
[]叠加层(可与 DLSS 帧生成配合使用)[/]
[]姿态钩子:每帧获取人物的骨骼[/]
[]插件在游戏运行时重新加载[/]
[/list]
[b]REDkit 编辑器[/b]
[list]
[]编辑器中的脚本函数、Lua、世界编辑、树木和插件[/]
[]编辑器和游戏并排运行,各自拥有独立的管道[/]
[/list]
[b]工具[/b]
[list]
[]游戏中每个类、字段、枚举和函数的目录[/]
[]供工具使用的管道:向运行中的游戏或编辑器发送命令[/]
[]游戏挂起时的报告(tw3se\out)[/]
[/list]
某个功能出错时会被记录到日志,游戏将继续正常运行。
[size=4][b]兼容性[/b][/size]
[list]
[].asi 模组:可用(TW3SE 会加载它们)[/]
[]为 Witcher Native Bridge 制作的模组:可用,无论是否安装该桥接工具[/]
[]Ultimate ASI Loader(部分模组自带):可用[/]
[]另一个自带 dinput8.dll 的模组:将该模组的文件重命名为 [b]dinput8_chain.dll[/b],然后两者都可正常工作[/]
[/list]
[size=4][b]更新[/b][/size]
将新压缩包解压覆盖旧文件。tw3se.config、vars.txt 和 world.txt 会保留。
游戏打补丁后,TW3SE 可能会停用,直到 TW3SE 更新以支持新版本。游戏启动时会显示一条消息说明这一点,每个游戏版本仅显示一次。
[size=4][b]卸载[/b][/size]
删除 [b]bin\x64_dx12[/b] 中的 [b]dinput8.dll[/b]、[b]!tw3se.asi[/b] 和 [b]tw3se[/b] 文件夹。
[size=4][b]面向模组作者[/b][/size]
[list]
[]从 Lua、C++ 插件或你的 .asi 中提供新的脚本函数,支持 int、float、bool、string 和 name 类型[/]
[]从 Lua 和 C++ 中按名称访问游戏的每个函数和字段;对任意函数进行钩取[/]
[]使用 Dear ImGui 创建你自己的窗口,由 TW3SE 绘制(其叠加层、字体、键盘和鼠标)[/]
[]你的脚本、Lua 和 C++ 之间的消息;游戏状态;随存档保存的值;网络请求[/]
[]来自纯文本文件的文本,支持游戏的每种语言[/]
[]在游戏着色器中注入你自己的数据:根签名参数、游戏绘制时的绑定回调、从内存加载着色器、每帧为你自己的 GPU 工作留出时间(可以移除 ReShade)[/]
[]为 Witcher Native Bridge 制作的模组、.asi 模组及其 ASI 加载器可在其上运行:手册中的“Coming from another tool”页面展示了迁移方法[/]
[][b]tools\to_annotations.py[/b] 将模组替换的游戏脚本转换为注解:两个模组修改同一个文件时,两者的修改都会生效[/]
[]实时重载、VS Code 调试器、性能分析器以及能指明模组的崩溃报告[/]
[/list]
[b]TW3SE-SDK[/b] 文件包含头文件(以及 TW3SE 运行的 ImGui)、四个示例插件(其中包括一个 ImGui 菜单和一个 .asi 模组)、一个可供入门的 Visual Studio 项目、一个示例脚本、管道工具 [b]tools\tw3se.py[/b] 以及手册。对于 Lua 模组,它还包含一个模组模板、供编辑器使用的每个 w3. 函数的类型定义,以及 [b]tools\pack_mod.py[/b](将模组打包为用于 Nexus Mods 的 zip)。请从 docs\manual\index.md 开始。 [b]docs\api.html[/b] 列出了每个 w3. 函数,并带有搜索框。
玩家版文件包含 23 个可供入门的小型 Lua 模组,位于 [b]bin\x64_dx12\tw3se\lua\examples[/b](伤害数字、一只狼同伴、击杀统计、每次击杀获得克朗……)。
[size=4][b]问题反馈[/b][/size]
在 [b]Bugs[/b] 标签页中发布发生了什么,并附上报告:
[list]
[]崩溃后,或游戏自行关闭后:再次启动游戏一次。TW3SE 随后会写入 [b]bin\x64_dx12\tw3se\out\crash_report.txt[/b](模组列表、游戏结束方式以及该会话的日志)。[/]
[]游戏运行期间:打开 TW3SE 菜单(F2),点击 [b]Console[/b] > [b]Copy report[/b],然后将报告粘贴到帖子中。[/]
[/list]要查看是某个 Lua 模组还是 TW3SE 插件导致崩溃,请在游戏启动时按住 Shift(从点击“开始游戏”到出现第一个标志)。TW3SE 随后会以安全模式启动,不加载 Lua 模组和插件。
[size=4][b]致谢[/b][/size]
[list]
[]MaximdeWinter:创意、设计、游戏内测试和指导[/]
[]Tenour:姿态和表情钩子(每帧改变人物的骨骼和面部)以及实时网格变形(混合变形)[/]
[]代码与 Claude 共同编写[/]
[/list]TW3SE 使用了:
[list]
[]MinHook,作者 Tsuda Kageyu,附带 Vyacheslav Patkov 的 Hacker Disassembler Engine(BSD 2-Clause)[/]
[]Lua 5.4,作者 Lua.org, PUC-Rio(MIT)[/]
[]Dear ImGui,作者 Omar Cornut(MIT)[/]
[]stb_vorbis,作者 Sean Barrett(公有领域或 MIT)[/]
[/list]
如果你想支持我的工作:[url=https://buymeacoffee.com/maximdewinter]Buy Me a Coffee[/url]
正在加载版本记录…
正在加载评论…
评论在新手盒子客户端中发表,这里同步展示。