Smithbox Havok Editor揭秘:艾尔登法环/黑夜君临HKX物理文件编辑进阶教程
【免费下载链接】SmithboxSmithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demon's Souls.项目地址: https://gitcode.com/gh_mirrors/sm/Smithbox
Smithbox Havok Editor 是一款面向魂系游戏 MOD 制作者的 Havok 物理引擎文件编辑器,让你无需解包游戏即可直接读取和修改艾尔登法环(Elden Ring)与黑夜君临(Nightreign)中的 HKX 物理文件——包括角色行为状态机、动画剪辑生成器、地图碰撞、导航网格等核心数据。本教程将带你从 HKX 文件概念讲起,逐步掌握四窗格界面操作、碰撞生成器与脚本重载器等进阶功能。
1️⃣ 先搞懂:HKX 物理文件到底是什么?
在 FromSoftware 的游戏中,几乎所有"活"的东西都由 Havok 物理引擎驱动,而承载这些数据的文件就是HKX:
| 数据类型 | 作用 |
|---|---|
| 行为文件(Behavior) | 敌人/角色 AI 状态机、技能触发逻辑 |
| 动画文件(Animation) | 动作剪辑(clip)生成器,控制姿势切换 |
| 地图碰撞(Map Collision) | 地形、建筑等碰撞体 |
| 导航网格(Navmesh) | 敌人寻路使用的网格 |
| 角色/布偶(Character) | 骨骼物理、布料模拟 |
这些 HKX 文件通常被打包在Binder(BND 归档)中,一个 binder 下挂着一组 HKX。Smithbox 的 Havok Editor 正是按"分类 → 归档 → 文件 → 属性"这条链路让你逐层下钻编辑,源码入口见 HavokEditorStub.cs。
2️⃣ 界面速览:Havok Editor 四窗格工作流
打开 Havok Editor 后,你会看到可自由停靠(Dock)的四个核心窗格(实现见 HavokEditorView.cs):
| 窗格 | 内容 | 说明 |
|---|---|---|
| 📂 分类列表(Category List) | 9 种 HKX 类型 | Animation、Behavior、Map Collision、Navmesh、Character、Cutscene 等 |
| 🗂 归档列表(Binder List) | 包含对应类型 HKX 的 binder | 按所选分类过滤 |
| 📄 文件列表(File List) | 单个 binder 内的 HKX 文件 | 选中后即可编辑属性 |
| 🔧 属性面板(Properties) | Havok 对象的逐字段编辑器 | 支持修改、增删列表项 |
右侧还有一个可选的工具面板(Tools),通过菜单 View → Tools 开启,里面藏着碰撞生成器和脚本重载器(详见第 4 节)。
3️⃣ HKX 文件编辑实操:从打开到保存
第一步:创建/打开项目。Havok Editor 当前仅对**艾尔登法环(ER)与黑夜君临(NR)**项目启用,其他项目类型会被自动跳过(见 EditorConditions.cs)。
第二步:逐层选择目标文件。
- 在「分类列表」中选择要编辑的 HKX 类型,例如
Behavior; - 在「归档列表」中定位包含该类型文件的 binder;
- 在「文件列表」中选中具体 HKX,右侧属性面板即加载出全部字段。
第三步:编辑属性。在属性面板中直接修改字段值,或使用增/删列表项操作(动作定义见 HavokAddListEntry.cs、HavokRemoveListEntry.cs)。所有修改都走命令队列,支持 Undo/Redo/Undo All,改错了也不怕。
第四步:保存 HKX 文件。按保存快捷键即可写出文件(逻辑见 HavokEditorScreen.cs):
- 保存动作按当前分类分别落盘——Animation、Behavior、Character、Map Collision、Navmesh、Cutscene 等各有独立保存路径;
- 菜单 File → Manual Save Output / Automatic Save Output 可勾选是否连同 HKX 一起输出;
- 小技巧:Havok Editor 保存后会自动清空 Map Editor 的碰撞缓存,让碰撞修改在地图编辑器中即时生效。
💡 提示:编辑地图碰撞时建议同时打开Map Editor预览,两者数据互通,所见即所得。
4️⃣ 进阶功能:碰撞生成器与脚本重载器
Havok Editor 的工具面板(HavokToolView.cs)提供两个实用工具:
- 碰撞生成器(Collision Generator):选中一个 FLVER 模型即可基于其几何体快速生成碰撞体,省去手工搭建碰撞体的繁琐步骤,适合做场景替换类 MOD;
- 脚本重载器(Script Reloader):通过内存扫描 + 内核级调用热重载 Havok 脚本(实现见 Script Reloader/),改完行为逻辑后可快速验证效果。
5️⃣ HKX 版本兼容速查:哪些游戏能编?
不同世代游戏使用不同版本的 Havok 格式,Smithbox 通过内置的 HKLib(hk2019/hk2018 系)与 HKX2 解析器分别处理:
| 游戏 | HKX 格式 | 备注 |
|---|---|---|
| 艾尔登法环 / 黑夜君临 | hk2019(hk2018 兼容) | ✅ 完整支持,Havok Editor 主要面向 ER/NR |
| 装甲核心 6 | hk2019 | 兼容工作中 |
| 只狼 | hk2016 | 兼容工作中 |
| DS1/DS2/DS3/血源/恶魔之魂 | HKX2 | DS3 的行为类已做适配(见 HavokAliasGenerator.cs 中 ER/DS3 双分支) |
各版本的差异与开发计划详见官方笔记 Havok Editor.txt。
6️⃣ 参考资料与常见问题
源码与资料导航:
- Havok Editor 主目录:Havok Editor/
- 碰撞生成器工具:Collision Generator/
- 行为/状态机视图:Behavior View/
- 内存地址文档(ER/NR):ER_1.16.1.txt、NR_1.03.2-1.txt
- HKS 资源说明:Info - HKS.txt
FAQ:
- Q:启动后闪退/看不到视口?你的显卡可能不支持 Vulkan,请改用 OpenGL 后端启动(详见项目 README 的 Troubleshooting 一节)。
- Q:为什么 DS3 项目看不到 Havok Editor?当前仅 ER/NR 项目完整启用该编辑器,其余项目的格式兼容仍在推进中。
- Q:改动保存后游戏里没生效?确认 MOD 启动器(推荐 ME3)已正确加载你的 HKX 输出路径,并检查是否勾选了 HKX 输出选项。
从"读懂 HKX"到"生成碰撞、重载脚本",Havok Editor 已覆盖艾尔登法环与黑夜君临 MOD 中最硬核的物理编辑需求。建议先从一个 Behavior 文件的小改动练手,再逐步挑战地图碰撞与行为状态机修改——进阶之路,由此开始 🎮
【免费下载链接】SmithboxSmithbox is a modding tool for Elden Ring, Armored Core VI, Sekiro, Dark Souls 3, Dark Souls 2, Dark Souls, Bloodborne and Demon's Souls.项目地址: https://gitcode.com/gh_mirrors/sm/Smithbox
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考